아이패드(iPad)를 들고 다니면서 출퇴근 길에 오픈소스 분석을 해보고 싶어서 툴을 찾아봤다. 오픈소스 코드의 경우 깃허브(Github)에 공개되어 브라우저를 통해서 얼마든지 볼 수 있다. 하지만 정말 필요한 기능은 소스코드에서 심볼을 따라 갈 수 있는 기능이었다. 메소드를 어디서 호출하는지, 메소드의 정의는 어디있는지를 따라 갈 수 있어야 편하게 소스코드 분석이 가능하다. 깃허브 웹 사이트는 그런 기능이 없다.
이런 주제로 팀내 스터디에서 좋은 툴이 없냐고 얘기를 나누다가 '소스그래프(SourceGraph)'라는 도구를 동료 개발자분이 추천해주셨다. 웹 브라우저에서 동작하는 "Sourcegraph(소스 그래프)"는 제한적이나마 심볼을 따라다닐 수 있는 기능을 제공한다.
소스그래프(SourceGraph) 사용해보기
https://sourcegraph.com/search 를 들어가면 소스코드를 검색할 수 있는 창이 뜬다.
다양한 검색창이 있는데 아래쪽에 있는 'Search scope'라는 섹션의 'Repositories'에다가 분석하고 싶은 깃허브 주소를 입력하고, 검색창에다가 찾고 싶은 대상을 입력하면 된다.
예제로 아파치 카프카의 깃허브 리파지토리를 검색해보겠다. 'github.com/apache/kafka' 를 입력해본다.
두 개의 검색 결과를 확인할 수 있다. 첫 번째 항목인 'github.com/apache/kafka' 를 선택해보자.
아파치 카프카의 소스코드와 각종 문서 내용을 볼 수 있는 항목이 있다. 화면의 왼쪽 섹션을 보면 디렉토리들이 있다.
디렉토리를 따라들어가서 KafkaConsumer.java 파일을 선택하면 해당 파일의 내용을 화면으로 볼 수 있다. 마치 개발 환경에서 소스코드를 보듯이 어느정도 하이라이트도 되어 있다.
중요한건 심볼을 선택하면, "Go to definition" 버튼과 "Find reference" 버튼이 나오는데 각각 심볼의 정의와 사용되는 곳을 찾아 갈 수 있다. 물론 IDE 들이 제공하는 소스 탐색 기능을 모두 지원하지는 않지만 출퇴근 길에 잠깐씩 소스코드 분석하기에는 충분한 기능인 것 같다.
댓글