Transcript 제안서 보기
nforge 코드 검색 고도화
NHN / 개발지원센터 / 생산성 혁신랩
2011.09
…
에필로그
From 이동진
2 Hudson
1
개발 개요
동기
동일한 조직에서 작성되는 코드는 대부분 유사 기술 기반 기반
개발자 능력별로 기반 기술의 활용 효율차가 큼
개발 코드에 대한 검색 시스템을 제공하여, 개발 생산성 향상
개발 목표
소프트웨어 협업 개발 플렛폼 (nforge) 차기 버전에 코드 검색 기술 구현
http://dev.naver.com/projects/nforge
참고
구글 코드 서치(http://www.google.com/codesearch)
Krugle (http://opensearch.krugle.org/)
GitHub (http://github.com/)
3 Hudson
2
Background
Subversion
Version Control System
Lucene
Open Source Search Engine
4 Hudson
3
Use Case
검색 키워드 입력
검색 결과 리턴
5 Hudson
4
개발 범위
아키텍쳐
Code Indexer
=
SCM Crawler
+
Code Analyzer
+
Duplicated
Document
Removal
6 Hudson
4
개발 범위
동작 Step
1. 형상관리 시스템(SVN / GIT / Mercurial)을 주기적으로 스캔하여
변경된 소스 코드 파일 셋 검출
지원 저장소 추가 + 크라울링 성능 최적화
2. 변경된 파일에 대해 코드별 분석기(Java / C++ / Objective C / Python)
사용하여 코드 내 Sematic 정보 추출
지원 언어 확장 및 의미 분석기 개발
3. 유사 코드를 분석하여 문서 중복 제외
유사 문서 분석 알고리즘 개선
4. 오픈 소스 검색 엔진인 Lucene에 분석결과를 전달하여 Index 구축
인덱스 최적화
5. 단순한 UI를 사용하여, 코드 검색 결과를 가시화
7 Hudson
4
개발 후 얻을 수 있는 것.
기술적 측면
검색의 고급 지식 획득
현업 엔지니어의 기술 지도
당신은 실무 프로그래밍 방법을 마스터하게 됩니다.
인간적인 측면
국내 최대 오픈 소스 프로젝트 중 하나인 nforge 에 코드 기여
이력서에 커다란 족적을 남기게 됨.
2회의 스테이크/안창살 파티 + Secret 선물
일주일에 8시간 이상 개발할 수 있는 학생의 참여 바람
8 Hudson