제안서 보기

Download Report

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