이제 인공지능과 함께 코딩하세요!

마이크로소프트의 연례 기술 컨퍼런스 Ignite 2019에서 인공지능 기반의 코딩 지원 기능인 Visual Studio IntelliCode (이하 IntelliCode)의 확장 버전이 공개되었습니다. 지난 4월에 IntelliCode의 초기 버전이 공개되었던 바 있으며, 해당 버전의 경우 코딩 시에 구문 단위로 자동완성 추천을 하는 기능이었습니다. 아래 그림에서와 같이 코딩을 하는 동안 인공지능이 다음에 쓸 구문을 별표로 추천해주는 방식입니다. 인공지능 기반의 추천이 아니더라도, 개발용 프로그램들에는 사용 가능한 구문 혹은 현재 쓰여진 알파벳이 들어간 구문을 추천하는 기능이 이미 있습니다. IntelliCode가 이러한 기존의 자동완성 기능과 차별화되는 점은, 단순히 이름을 매칭하는 것이 아니라 인공지능을 통해 현재 코딩하는 상황에 따라 쓸 확률이 높은 구문을 추천해준다는 것입니다. 여기에서 한 차원 더 나아가 이번 확장 버전에서는 코드 라인 전체 자동완성 기능 및 코드 리팩토링(refactoring) 기능이 추가되었습니다. 하나씩 차례로 살펴보도록 하겠습니다. 먼저 코드 라인 전체 자동완성 기능은 아래 그림에서와 같이 첫 구문만 입력하면 라인 전체를 자동완성하여 추천해주는 방식으로 작동합니다. 해당 기능은 자동 문장생성 인공지능 모델로 유명한 Open AI의 GPT-2를 기반으로 구현하였다고 합니다. GPT-2는 단어 혹은 문장을 입력하면 그 뒤에 올만한 문장들을 자동으로 생성하는 모델입니다. 학습을 위해서는 많은 양의 글을 모아놓은 데이터셋이 필요하며, 학습에 쓰인 글의 스타일대로 문장을 생성하게 됩니다. 즉, 소설을 학습시키면 소설에서 쓰이는 스타일의 문장을 생성하게 되며 기사를 학습시키면 기사에서 쓰이는 스타일의 문장을 생성합니다. IntelliCode 연구개발팀에서는 이러한 특성에 착안하여 오픈소스 공유 플랫폼인 GitHub의 코드를 이용하여 GPT-2 기반의 모델을 학습시켰습니다. 코드를 입력받은...