남영광 교수팀, 코드 패턴 분석 시스템 개발
2017년 KCSE에서 최우수논문상 수상
프로그래밍 코드 기반 패턴 추출
남영광 교수
KCSE 최우수논문 상장
남영광 교수(좌하단)와 연구원들
남영광 교수(원주캠퍼스 컴퓨터정보통신공학부) 연구팀은 소프트웨어의 소스 코드로부터 다양한 프로그래밍 패턴을 분석하는 기술과 소프트웨어 개발 시 현재 작업 중인 코드에 적 합한 프로그래밍 코드 예시를 제시하고 추천해주는 S/W 재사용 기술을 활용하여 소프트웨어 개발 시 생산성을 향상시키기 위한 기술에 필요한 시스템을 개발했다.
소프트웨어는 다양한 프로그래밍 기법과 명령어들의 조합으로 제작되며, 이러한 명령어(API, Application Programming Interface)들의 모든 사용방법을 이해하여 소프트웨어 개발을 진행한다는 것은 쉽지 않은 일이다. 특히 소프트웨어 개발 시 특정 명령어의 사용 방법이 나 예시를 검색하기 위해 명령어의 공식 홈페이지를 방문했을 때, 사용자가 원하는 내용을 해당 홈페이지에서 제공하지 않거나 일부만 제공하는 경우가 많다. 또한 검색 엔진을 사용하여 검색할 경우 해당 명령어를 포함하는 예시는 검색해 주지만 정확한 사용 방법에 대해서는 제공하지 않는 경우도 많다. 이와 같은 상황은 개발자로 하여금 많은 시간 비용을 소모하게 만들고, 궁극적으로는 소프트웨어의 생산성과 품질을 저하시키는 요인이 된다.
남 교수 연구팀은 이러한 소프트웨어 개발 과정에서 발생하는 문제점을 해결하기 위해 개발 시 필요한 적절한 프로그래밍 기법 및 명령어를 검색하는 코드 패턴 분석 및 검색 시스템 JACE를 개발했다. 이 시스템은 인터넷상에 존재하는 다양한 공개 소스 저장소(OSS, Open Source Storage)의 수많은 소프트웨어 프로젝트를 분석하여 소스 코드 사용 패턴을 분석한다. 대부분의 프로그래밍 명령어들은 정형화 된 사용 방법이 존재하기 때문에 많은 개발자들이 작성한 코드를 분석하면 명령어들의 사용 패턴을 파악할 수 있다.
이렇게 다수에 의해 검증된 사용 패턴을 수집하면 신뢰도 높은 빈발 사용 패턴을 구성할 수 있으며, 수집된 패턴은 사용자의 검색 요청에 따 라 소프트웨어 통합 개발 환경(IDE)에서 추천 및 제시된다. 본 연구에서는 소스 코드 사용 패턴을 분석하기 위해 언어학적 관점의 연어(連語, Collocation) 관계 분석 방법을 활용하여 소프트웨어의 소스 코드를 분석하였다. 해당 분석 자료를 기반으로 JACE는 개발 진행 시 사용자의 질의 요청에 따라 타 검색 시스템보다 정확하고 적절한 코드 패턴을 제시했다.
해당 시스템은 소프트웨어를 개발할 때 필요한 수많은 명령어들의 사용 및 활용 방법을 실시간으로 검색할 수 있게 해주며, 검색 엔진을 활용하여 검색할 때 소모되는 불필요한 검색 시간을 줄여준다. 그리고 향후 많은 공개 저장소의 소스 코드에 대한 지속적인 분석을 통하여 정확도와 신뢰도가 향상된 소스 코드 패턴 정보 및 예제를 제공한다면 소프트웨어 개발 환경 개선에 더욱 많은 기여를 할 것으로 기대된다.
본 연구결과는 2017년 한국정보과학회와 한국정보처리학회에서 주최한 KCSE(한국 소프트웨어 공학 학술대회)에서 최우수논문으로 선정됐다.
연세소식 신청방법
아래 신청서를 작성 후 news@yonsei.ac.kr로 보내주세요