AI가 만든 코드, AI가 검사한다

AI기반 코드검토 자동화 도구 ‘직소’ 공개

컴퓨팅입력 :2022/04/17 15:04    수정: 2022/04/18 10:34

인공지능(AI)이 작성한 프로그래밍 코드는 완벽할까?

최근 데이터를 잘못 학습하거나 오류로 잘못된 결과를 내는 AI로 인해 이런 우려가 늘고 있다.

마이크로소프트(MS)는 사용자의 우려를 줄이기 위해 AI가 작성한 코드를 자동으로 검토하는 개발도구를 선보인다.

AI 코드검토 자동화 도구 '직소'의 처리 과정(이미지=마이크로소프트)

11일(현지시간) 미국 지디넷에 따르면 마이크로소프트(MS)는 인공지능(AI) 기반 코드검토 자동화도구인 ‘직소(Jigsaw)’를 공개했다.

직소는 프로그래밍 코드 작성 프로세스를 자동화하는 지원도구다. 작성한 프로그래밍 코드의 컴파일 여부를 비롯해 오류 메시지를 해결하며 코드를 통해 원하는 결과물을 생성하는지 테스트까지 통합 지원한다.

마이크로소프트에서 직소를 개발한 이유는 AI가 작성한 코드가 완벽하지 않기 때문이다.

최근 GPT-3 같은 AI 언어모델을 활용해 자연어를 이해하고, 소스코드로 전환하는 서비스가 연달아 공개되고 있다. 코덱스, 파워FX 등이 대표적이다.

이런 서비스를 사용하면 대화하듯 자연어로 AI에 명령해 애플리케이션을 개발할 수 있다. 비 개발자도 개발에 참여할 수 있으며, 전문개발자도 번거로운 코딩 작업을 줄여 생산성을 높일 수 있는 것이 장점이다.

하지만 사용자가 모호하게 말해 AI가 내용을 잘못 이해하거나, 말을 듣고 전환하는 과정에서 의도와 다르게 옮겨져 제대로 작동하지 않을 우려가 있다.

코딩 과정에서 오류가 발생할 수도 있다. AI는 확률을 기반으로 하는 만큼 실수가 발생할 여지가 있으며, 학습 과정에서 잘못된 데이터가 포함될 수 있기 때문이다.

마이크로소프트는 AI가 만든 코드의 품질을 보장하기 위해 입출력 값 비교 기능을 도입했다. 입력값과 출력값을 연결해 의도한 대로 출력됐는지 확인하는 기능이다.

사용자가 코드에서 의도하는 내용 대한 설명을 자연어로 입력하고, 예시 입출력 데이터를 제시하면, 직소는 해당 내용을 바탕으로 자동으로 코드를 검토한다.

또한 검토 후 출력 내용은 확인 및 편집의 최종 확인을 위해 담당자에게 전송한다. 출력결과에 오류가 있다는 피드백이 발생하면 복구 프로세스를 통해 자동으로 코드를 개선한다.

마이크로소프트 리서치팀은 직소를 통해 출력 정확도를 60% 이상으로 개선했으며 사용자 피드백을 도입하면 정확도를 80% 이상으로 끌어올릴 수 있다고 밝혔다.

관련기사

현재 직소는 GPT-3, 코덱스, 코파일럿 등에서 활용할 수 있으며 언어는 파이썬만 지원한다.

마이크로소프트의 라울 샤르만 수석 연구원은 “직소를 통해 개발자의 생산성을 향상시키는 데 많은 도움을 줄 수 있다고 믿는다”며 “다른 API 및 다른 언어에서도 작동할 수 있도록 계속 노력하고 있다”고 밝혔다.