NAVER DEVIEW DAY 2에 참가하여 12시즈음부터 총 4개를 들었다.
그 중에 Scavenger가 제일 흥미로웠던 세션이었고 동시에 가장 많은 인원이 들어온 세션이었다.
시작 전 10분전부터 만석이었고 자리를 찾는 사람들이 많았는데, 이전 세션부터 계속 앉아 있었기 때문에 다행히 편하게 들을 수 있었다.
어떻게 죽은 코드를 발견해줄까?
라는 컨셉부터가 듣지 않아도 너무 흥미로웠다.
이제는 NAVER 사내에서만 사용되던 Scavenger를 세션 마지막에 Private에서 Public으로 전환해서 모두가 이용 가능하다.
실행 방법
Scavenger는 아래의 3개가 모두 작동이 되어야만 실행이 된다.
Agent - 자바 애플리케이션 동작 정보 수집
API - Agent가 수집한 데이터를 데이터베이스에 처리하고 저장해줌
Collector - 저장된 데이터를 수집해서 분석 도구에 전달하는 역할
일단은 Collector를 먼저 실행한 후 API 서버를 실행해야 한다. 만약 API 서버를 먼저 실행한 후 Collector를 실행한다면, API 서버는 Collector와 통신할 수 없기 때문에 정상적으로 동작하지 않는듯 하다.
기존에 만든 은행 서버 시스템에 Scavenger를 적용해보았다.
Collector 시작
java -Darmeria.port=9090 -Dspring.profiles.active=h2 -jar scavenger-collector-boot-1.0.3.jar
API 시작
java -Dscavenger.collector-server-url=http://localhost:9090 -Dspring.profiles.active=h2 -jar scavenger-api-boot-1.0.3.jar
Agent와 함께 어플리케이션 실행
java -javaagent:scavenger-agent-java-1.0.3.jar -jar banking-server.jar
실행화면
localhost:8081/scavenger 로 접속하면 아래 화면이 나온다.
워크스페이스 만들고 Conf 파일 만들기
아래에서 package만 설정해서 저장을 했다. 저장된 conf 파일로 앞으로 프로젝트를 실행하면 코드를 검사할 수 있다.
서버 재시작
java -Dscavenger.configuration=scavenger.conf -javaagent:scavenger-agent-java-1.0.3.jar -jar banking-server.jar
API 호출 후 스냅샷 생성
아래와 같이 실행된 서비스와 실행되지 않은 서비스를 확인하여 죽은 코드를 확인할 수 있다.
후기
죽은 코드를 발견해주는 것만으로도 엄청나게 흥미로웠지만 또 하나 흥미로웠던건 이 오픈소스를 만든 과정 또한 신기했다. "어떻게 클래스 파일을 뜯어볼 생각을 할 수 있지"라는 생각에 입을 다물지 못했다.
실행해보니 아직은 UI나 자잘한 버그가 존재하는 것 같지만 지속적으로 발전하게 될 것 같고 강의 또한 명확하고 쉽게 강연해서 듣는 내가 정말 신날 정도였다.
아무튼 정말 좋았다.
'🗂️ Etc' 카테고리의 다른 글
도메인 네임 구매에 대한 ChatGpt와의 대화 (0) | 2023.03.11 |
---|---|
[Java] 원본 값의 길이와 암호화 된 값의 길이가 같은 암호화 방식 (0) | 2023.03.08 |
ChatGPT로 공룡 그려 달라고 하기 (0) | 2023.01.10 |
안드로이드 웹뷰 카카오 공유하기 기능 멈춤 현상 (0) | 2023.01.08 |
웹 개발자를 위한 안드로이드 웹뷰 만들기 (2) | 2023.01.05 |