인텔-MIT-조지아공대, '기계 유추 코드 유사성(MISIM)' 시스템 개발
서로 다른 구조와 알고리즘 사용해도 코드 조각들의 특성 분류 가능

기계 프로그래밍 필수 3요소./자료=인텔

인텔은 매사추세츠 공과대학교(MIT) 및 조지아 공과대학교와 개발한 기계 프로그래밍 시스템 ‘기계 유추 코드 유사성(MISIM)’ 시스템을 선보였다고 30일 밝혔다.

이 시스템은 코드의 구조를 연구하고 코드의 유사한 동작에 기반해 다른 코드의 문법적 차이를 자동으로 분석, 소프트웨어가 의도하는 바를 학습하기 위해 개발됐다.

최근 이기종 컴퓨팅이 부상하면서 하드웨어 및 소프트웨어 시스템 복잡성은 증가하고 있다. 하지만 여러 아키텍처에 걸쳐 전문가 수준의 코딩 능력을 갖춘 프로그래머의 수는 절대적으로 부족하다. 이에 새로운 개발 접근 방식에 대한 필요성이 커지고 있다.

‘기계 프로그래밍’은 자동화 도구를 활용해 개발 생산성을 높이는 것을 목표로 한다. 인텔 랩(Intel Labs)과 MIT가 공동 발표한 '기계 프로그래밍 필수 3요소' 논문에서 처음 언급됐다.

코드 유사성은 기계 프로그래밍이 제공하는 일부 자동화 도구의 핵심 기술이다. 하지만 정확한 코드 유사성 시스템을 구축하는 것은 쉽지 않다. 이같은 시스템은 두 개의 코드 스니핏(조각)이 유사한 특성을 보이는지 또는 유사한 목표 달성을 위한 코드인지 판단하며, 이러한 작업은 단순한 학습 코드 만으로는 실행하기 벅차다.

인텔이 MIT와 조지아 공과대학교와 협력해 개발한 MISIM은 두 개의 코드 조각이 서로 다른 데이터 구조와 알고리즘을 사용하는 경우에도 유사한 연산을 수행하는 시기를 정확하게 판단할 수 있다. 인텔은 이번 연구 결과가 기계 프로그래밍의 거대한 비전을 달성하기 위한 중요한 단계라고 설명했다.

기존 코드 유사성 시스템과 MISIM의 가장 큰 차이는 코드가 실제로 하는 것이 무엇인지 드러내는 맥락 인식 의미 구조(CASS)다. CASS는 코드의 실제 작동 원리를 확인하기 위한 여타 시스템과는 달리 특정 문맥으로 구성할 수 있어 더 높은 수준에서 코드를 설명하는 정보를 알아낼 수 있다.

CASS는 코드가 어떤 식으로 작동하는지가 아닌 코드가 무엇을 하는지에 대한 보다 구체적인 인사이트를 제공한다. 게다가 MISIM은 컴파일러(사람이 읽을 수 있는 소스 코드를 컴퓨터에서 실행 가능한 형태의 코드로 변환하는 프로그램)를 사용하지 않고도 이러한 작업을 수행할 수 있다. 이는 추천 시스템이나 자동화 버그 수정을 위한 중요한 특성 파악 등에서 기존 시스템 대비 다양한 이점을 제공한다.

일단 CASS에 코드 구조를 통합하면 신경 네트워크 시스템이 수행을 위해 설계된 작업에 근거해 코드의 조각에 유사성 점수를 부여한다. 즉, 두 개의 코드 조각이 구조상 매우 다르게 보이지만 동일한 기능을 수행한다면, 이러한 신경 네트워크 시스템이 코드 조각들을 대체로 유사한 것으로 평가한다.

연구진은 이러한 원칙을 통일된 시스템에 통합, MISIM이 이전의 최첨단 시스템보다 최대 40배 더 정확하게 유사한 코드 조각을 식별할 수 있게 했다.

인텔은 꾸준히 MISIM의 기능을 확장하면서 동시에 모든 소프트웨어 개발자들이 인텔의 다양한 이기종 아키텍처에서 프로그램이 가능하도록 지원하는 코드 추천 엔진을 개발할 계획이다. 현재 연구 단계를 거쳐 실증 개발 단계 과정에 있다.

기계 프로그래밍 연구소는 인텔과 협력해 MISIM이 어떻게 일상적인 개발에 활용될 수 있는지 알아보기 위한 연구를 진행하고 있다.

저스틴 고트슐리히(Justin Gottschlich), 인텔 기계 프로그래밍 연구소 설립자 및 수석 과학자 겸 소장은 “기계 프로그래밍에 대한 인텔의 궁극적인 목표는 소프트웨어 개발의 보편화"라며 "완전한 소프트웨어 개발 보편화가 실현된다면, 모든 사람들이 기계 프로그래밍을 통해 코드나, 자연어를 비롯한 다른 어떤 것도 가장 선호하는 방법으로 자신들의 의도를 표현하며 소프트웨어를 개발할 수 있게 될 것”이라고 말했다.

저작권자 © KIPOST(키포스트) 무단전재 및 재배포 금지