|
코딩 중에 어려움에 직면하는 순간, 누구나 한 번쯤 경험해 보았을 것입니다. 이런 상황에 대비해 더 나은 해결책을 찾기 위해 Samsung Research에서는 ‘code.i’를 개발했습니다. code.i는 최신 생성형 AI 코드 모델을 기반으로 하여 코딩 경험을 혁신적으로 바꾸고 있는 서비스입니다. 본 포스트에서는 code.i를 활용하여 더 쉽고 효율적으로 개선된, 즐거운 코딩을 경험하시도록 해당 서비스를 자세히 소개해 드리려고 합니다. |
들어가며
안녕하세요. Samsung Research SW 혁신센터의 윤창식입니다.
2023년 현재, AI 기술을 활용한 개발 지원 도구는 소프트웨어 개발의 중심으로 부상하고 있습니다. [1] 다양한 기업들이 AI를 기반으로 한 소프트웨어 개발 도구를 선보이며 혁신의 선봉에 서고 있으며, 특히 MS Copilot 사용자 중 약 70%가 개발 도구 사용 이후 개발 생산성이 향상되었다고 응답한 결과가 있습니다. 이는 Copilot이 소프트웨어 개발 생태계에 현저한 영향을 미치고 있음을 시사합니다.
아래 그림1은 실제로 Copilot을 사용한 실험에서 동일한 문제를 해결할 때, Copilot을 사용한 경우와 사용하지 않은 경우의 문제 해결 소요 시간을 비교한 결과입니다. Copilot을 활용한 경우, 1시간 11분이면 문제를 해결할 수 있었으나, 사용하지 않은 경우에는 2시간 41분이 소요되어 1시간 30분 정도의 시간이 절약되었습니다.
그림 1: Copilot 지원 도구 사용/미사용 시 문제 해결 소요 시간
ChatGPT와 Bard: 사용자 피드백에 기반한 코드 개선
그뿐만 아니라, OpenAI의 ChatGPT 및 Google의 Bard는 대화형 언어 모델로 사용자의 피드백을 수용하여 코드를 개선하고, 소프트웨어 개발을 지원하고 있습니다. 이러한 모델들은 사용자의 요구에 빠르게 대응하며, 프로그래밍 작업을 더욱 효율적으로 만듭니다. 또한, 이러한 모델의 지속적인 발전은 소프트웨어 개발자들이 더 효율적이고 편리한 환경에서 작업할 수 있도록 돕고 있습니다.
아래 그림2를 보시면, Google의 Bard는 코드 생성 및 리뷰 지원을 통해 사용자에게 코드의 문제점 설명 및 해결 방안을 제시하는 기능을 갖추고 있습니다. 이러한 기능은 프로그래머들에게 코드 작성과 관련된 효율적인 도구로 활용되고 있습니다.
그림 2: Google의 Chat Interface를 통한 코드 생성, 리뷰 지원 예시
code.i 개발 배경, 기능 및 동작 방식
그러나 이러한 상용 도구들은 일부 단점을 가지고 있습니다. 첫째로, 오픈 소스 라이선스 및 보안 취약점 등의 문제가 존재합니다. 두 번째로, 특정 도메인에서는 활용이 어려운 경우가 있습니다. 또한, 가끔은 품질이 떨어지는 코드가 생성되기도 하며 이를 직접 수정하는 데에 제약이 있습니다(그림3).
이러한 단점을 해결하기 위해서는 사내 코드 데이터에 기반한 고품질 추론 서비스를 제공할 수 있는 모델과 서비스 개발이 필요했고, 동시에 학습 기반 서비스를 개선하기 위한 자동화된 피드백 수집 체계 구축이 필요했습니다. 이러한 배경으로 전사적 코딩 지원 서비스인 code.iSR가 탄생한 것이죠.
그림 3: Google의 Chat Interface를 통한 코드 생성, 리뷰 지원 예시
code.iSR는 S/W Code를 의미하는 ‘code’와 ‘Innovation / Intelligence / Integration’의 첫 글자 I를 따와 만든 도구, 소프트웨어 코드의 이해를 기반으로 하는 혁신적인 서비스를 지향합니다. 이는 코드 작성 및 이해에 있어 높은 수준의 혁신과 지능, 통합을 목표로 한다는 의미를 내포하고 있습니다.
code.iSR에서 지원하는 기능은 크게 두 가지로 나뉩니다. 첫 번째는 코드 자동 완성/생성 기능입니다. 이 기능은 VS Code나 IntelliJ와 같은 통합 개발 환경에서 작성 중인 코드의 설명이나 함수의 Signature를 입력한 후 추론 요청 시, 자동으로 그에 맞는 코드를 생성해 주는 형태를 가지고 있습니다. 이는 개발자들이 코드 작성을 보다 신속하고 효율적으로 할 수 있도록 도와주는 핵심 기능입니다.
두 번째는 Chat 모드입니다. 이 모드는 인터랙티브 대화 형식을 통해 사용자들이 개발 과정에서 발생할 수 있는 다양한 상황에 대해 코드 최적화, 분석 요청 등을 자유롭게 질문하고 응답받을 수 있는 기능을 제공합니다. 이는 코드 작성 과정에서 발생하는 의문이나 어려움을 실시간으로 해결할 수 있도록 도와주어, 코드 작성에 대한 부담을 줄여줍니다.
아래 그림4는 code.iSR에서 지원하는 이 두 가지 기능의 동작을 시각적으로 나타낸 것입니다. 이를 통해 사용자들은 코드 자동 완성/생성과 Chat 모드의 작동 방식을 쉽게 이해할 수 있습니다. code.iSR는 이러한 다양한 기능을 통해 사용자들에게 유연하고 효율적인 코드 작성 경험을 제공하며, 소프트웨어 개발에 새로운 차원의 지능을 불어넣고자 합니다.
code.i의 지원 시나리오 및 작성 모드
code.iSR의 다양한 기능은 사용자에게 9가지 다양한 시나리오를 지원하고 있습니다(그림 4). 또한, 아래 표 1에 Use Case별 지원 시나리오가 자세히 나열되어 있습니다.
그림 4: code.iSR 지원 기능
표 1: 주요 Use Case별 지원 방향
앞서 언급한 code.iSR의 주요 기능 2가지(코드 자동 완성/생성 및 Chat)는 사용자 선택에 따라 3가지 작성 모드로 제공되는데요. inline 모드는 개발 중인 앞, 뒤 코드를 모두 참고하여 코드가 완성되는 형태로, Tab 키를 이용하여 제공된 코드를 즉시 적용할 수 있습니다.
Interactive 모드는 코드 작성 중 아무 위치에서나 Ctrl+Enter 키를 누르면 함수 단위의 후보 코드를 최대 5개까지 제공하는 모드로, 사용자는 추천된 후보 코드 중 가장 우수한 코드를 선택하고 편집 창에 반영할 수 있습니다.
마지막으로, Chat 모드는 사용자 Command를 입력받아 실시간으로 사용자 의도를 분석하여 Prompt를 자동 생성하고 추론을 요청하며, 결과는 편집 창에서 즉시 활용할 수 있도록 지원하고 있습니다. 또한 ‘/’ Command를 지원하여 더욱 정확한 추론 요청 및 결과를 제공합니다.
code.i의 현재 및 미래 전망
현재 code.iSR 시스템은 전사 베타 서비스를 진행 중이며, 더 개발해야 할 부분이 남아있지만, AI 기반의 코드 자동 생성/분석 도구를 통해 소프트웨어의 신뢰성과 안정성에 크게 기여할 것으로 예상됩니다. 사용자들은 지속적인 향상을 통해 더 효율적이고 강력한 개발 환경을 경험할 수 있을 것으로 기대됩니다.
Samsung Research SW 혁신센터의 윤창식이었습니다. 감사합니다.
|
|
