MS, C# 코딩 돕는 AI 도구 공개

학생부터 전문가까지 모두 겨냥

컴퓨팅입력 :2018/05/18 14:06    수정: 2018/05/18 15:42

마이크로소프트(MS)가 닷넷 프레임워크 C# 프로그래밍을 돕는 인공지능(AI) 도구를 공개했다. 비주얼스튜디오 통합개발환경(IDE)에 설치해 쓸 수 있는 확장기능 '인텔리코드(IntelliCode)'다. 프로그래밍을 익히기 시작한 학생부터 전문 개발자까지 모두 겨냥한 생산성 기술이다.

인텔리코드는 개발자가 IDE 에디터에 코드를 쳐넣고 있는 그 줄(line)에 가장 알맞은 애플리케이션 프로그래밍 인터페이스(API)를 추천한다. 이미 입력된 코드를 보고, 이어질 코드에 들어갈만한 API 후보를 제안한다. 스마트폰 키보드 앱의 자동완성 단어 추천기능과 비슷하다.

마이크로소프트 데브랩스(DevLabs)가 비주얼스튜디오 IDE의 프로그래밍을 돕는 인공지능 기반 확장기능 '인텔리코드'를 만들어 내놨다.

18일 현재 비주얼스튜디오 마켓플레이스 웹사이트에서 인텔리코드 시험판이 배포되고 있다. 인텔리코드가 API를 추천하는 동작은 기존 비주얼스튜디오 코드 자동완성 기능인 '인텔리센스(IntelliSense)'에 적용된다. 비주얼스튜디오2017 15.7 버전 이상 환경에서만 된다. [☞바로가기]

인텔리코드는 이달초 미국에서 진행된 MS 컨퍼런스 '빌드' 현장에서 첫선을 보였다. 최근 빌드 현장에서 발표된 본사의 주요 신기술과 전략을 소개한 한국MS 테크에반젤리스트 김영욱 부장은 "인텔리코드를 써 보니 입력될 코드를 정말 적절하게 찾아 준다"고 평했다.

비주얼스튜디오 인텔리코드 사용화면 예시1. 에디터에 코드를 타이핑하는 동안 나타나는 '인텔리센스' 자동완성 팝업창에 인텔리코드의 AI기반 추천 코드 후보가 표시된다.

개발자가 제대로 작동하는 인텔리코드를 쓴다면 낯선 API를 습득하고 개별 코드를 일일이 타이핑할 때 걸리는 시간을 단축할 수 있을 것으로 보인다. 이는 막 프로그래밍을 시작한 학생이나 초보 개발자의 학습부담을 덜거나 현업 개발자의 생산성을 높이는 효과로 이어질 수 있다.

하지만 모든 개발자가 언제나 인텔리코드의 AI기반 API 추천기능에 도움을 받을 수는 없다. 인텔리코드는 비주얼스튜디오 IDE로 C# 프로그래밍 언어와 닷넷 관련 API를 다루는 프로젝트만을 지원하기 때문이다. MS는 향후 C# 외에 다른 언어도 지원하겠다고 예고했다.

MS는 인텔리코드를 어떻게 만들었을까. 설명에 따르면 MS는 온라인 소스코드 저장소 깃허브(Github)에 공개된 2천여개 프로젝트의 코드베이스를 교재삼아 인텔리코드 AI를 가르쳤다. 각 프로젝트는 깃허브에서 '별(stars)'을 100개 이상 받은 것들이라고 MS 측은 밝혔다.

깃허브 프로젝트의 별은 그 수가 많을수록 해당 프로젝트가 많은 개발자에게 알려지고 호평받았음을 시사한다. 어떤 프로젝트에 많이 모인 별이 반드시 코드의 품질이 뛰어나다고 단정할 근거는 아니지만, MS는 이를 일종의 모범(best practices) 코드 지표로 삼았다는 뜻이다.

비주얼스튜디오 인텔리코드 사용화면 예시2. 초벌 코드리뷰를 자동화해 입력된 변수의 오류를 찾아내고 이를 수정하는 방향도 제안한다.

인텔리코드는 학습한 깃허브의 '모범 코드'를 활용해 사용자가 개발 중인 프로젝트에 알맞은 '.editorconfig' 파일도 자동 생성한다. 이는 비주얼스튜디오 프로젝트에 적용될 코드 스타일과 포맷 규칙을 구성하는 파일이다. 협업 개발시 중요한 코드의 일관성 유지를 돕는 역할을 한다.

MS 측은 이를 통해 인텔리코드가 모든 개발자의 코드리뷰 작업 부담도 덜어줄 것이라고 강조했다. 스타일 및 포맷 규칙으로 자동 초벌 검수를 지원하고, 코드에 잘못 사용된 변수 등을 더 빨리 찾도록 돕고, 추가 검토가 필요한 파일을 동료 개발자에게 추천할 수 있다는 설명이다.

관련기사

이달초 공식블로그에 인텔리코드를 소개한 MS의 아만다 실버 디렉터는 "인텔리코드의 추천은 파일 이력, 의존성, 코드 복잡성과 이력을 활용한 머신러닝 추정(heuristics)에 기반한다"며 "이는 지속통합(CI) 분석서비스나 다른 리뷰 과정에 적용될 수 있다"고 썼다. [☞원문보기]

실버 디렉터는 이어 "인텔리코드의 분석기 일부는 공개된 코드베이스 기반 머신러닝을 사용하고, 그다음 이를 사용하는 개발자의 자체 저장소에 특화된다"며 "이 분석이 가능해지면 분석기는 가입 및 등록 절차를 요구할 것"이라고 덧붙였다.