← 최신 논문
💻 computer science

Control Models for In-IDE Code Completion

이 논문은 JetBrains IDE에서 추론을 트리거하고 제안을 필터링함으로써 LLM 기반 코드 완성을 최적화하기 위한 제어 모델, 구체적으로는 ML 분류기를 도입하고 평가하며, 오프라인 분석과 프로덕션 A/B 테스트를 통해 효율성과 품질의 향상을 입증한다.

원저자: Aral de Moor, Yana Hrynevich, Hleb Badzeika, Vladyslav Furda, Marko Kojic, Artem Savelev, Kostadin Cvejoski, Darya Rovdo, Ekaterina Garanina

게시일 2026-01-29
📖 3 분 읽기☕ 가벼운 읽기

원저자: Aral de Moor, Yana Hrynevich, Hleb Badzeika, Vladyslav Furda, Marko Kojic, Artem Savelev, Kostadin Cvejoski, Darya Rovdo, Ekaterina Garanina

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

당신이 바쁜 주방(IDE)에서 일하는 요리사(개발자)라고 상상해 보세요. 당신에게는 끊임없이 레시피 아이디어와 식재료 제안을 외쳐대는 초지능적인 부주방장(AI)이 있습니다.

때때로 부주방장은 매우 영리하여 당신의 시간을 아껴주기도 합니다. 하지만 자주 부주방장은 너무 의욕이 앞서곤 합니다:

  • 당신이 수프를 만들고 있는데 디저트를 제안합니다 (잘못된 타이밍).
  • 당신이 이미 가지고 있는 식재료를 제안합니다 (불필요함).
  • 맛이 정말 형편없는 것을 제안합니다 (나쁜 코드).

이 끊임없는 외침은 주의를 산만하게 만듭니다. 이는 당신의 "몰입(flow)"을 깨뜨리고, 주방의 에너지(컴퓨팅 파워)를 낭비하며, 당신을 도움을 받기보다는 짜증 나게 만듭니다.

문제점:
JetBrains 팀(이 논문의 저자들)은 자신들의 AI가 개발자들이 무시하거나 거절하는 제안을 약 70%의 확률로 생성하고 있다는 사실을 발견했습니다. 그들은 아무도 원하지 않는 제안을 만드는 데 많은 돈과 에너지를 낭비하고 있었습니다.

해결책: "제어 모델(Control Models)" (스마트한 문지기)
팀은 AI를 더 똑똑하게 만들어 레시피를 추측하게 하는 대신, **제어 모델(Control Models)**이라는 새로운 지능 계층을 구축했습니다. 이것은 AI와 요리사 사이의 문 앞에 서 있는 스마트한 문지기와 같습니다.

이 문지기는 두 가지 역할을 수행합니다:

  1. 트리거 (The "Wait" Signal - "기다려" 신호): AI가 제안을 만들기 시작하기 전에, 문지기는 요리사의 기분을 확인합니다. 요리사가 빠르게 타이핑 중인가요? 문장의 중간에 있나요? 타이밍이 맞지 않으면 문지기는 "아직 AI를 방해하지 마세요"라고 말합니다.
  2. 필터 (The "Trash" Bin - "쓰레기통"): 만약 AI가 실제로 제안을 만들어냈다면, 문지기는 그것을 먼저 맛봅니다. 만약 그것이 이상해 보이거나 현재 요리와 어울리지 않는다면, 문지기는 요리사가 보기도 전에 그것을 쓰레기통에 던져버립니다.

테스트 방법
팀은 JetBrains 소프트웨어(IntelliJ IDEA 등)를 사용하는 수천 명의 개발자로부터 얻은 실제 데이터를 사용하여 실험을 진행했습니다. 그들은 두 가지 유형의 문지기를 테스트했습니다:

  • "부스팅(Boosting)" 문지기: 단순한 통계(타이핑 속도 및 커서 위치 등)를 살펴보는 빠르고 가벼운 모델입니다. 이는 마치 당신의 신분증을 슥 훑어보고 빠르게 결정하는 문지기와 같습니다.
  • "트랜스포머(Transformer)" 문지기: 실제 코드를 읽고 깊은 맥락을 이해하는 무겁고 복잡한 모델입니다. 이는 마치 문에 들어오기 전에 전체 레시피 북을 읽는 문지기와 같습니다.

결과

  • 비용 절감: "부스팅" 문지기를 사용함으로써, 그들은 약 20%의 불필요한 AI 요청을 차단했습니다. 이는 많은 컴퓨팅 파워(추론 비용)를 절약해 줍니다.
  • 품질 향상: 나쁜 제안들이 걸러졌기 때문에, 개발자에게 도달한 제안들은 훨씬 더 훌륭했습니다. 개발자들은 제안을 더 많이 수용했고 덜 거절했습니다.
  • 트레이드오프(Trade-off): 흥미롭게도, 많은 나쁜 아이디어를 걸러냈음에도 불구하고 개발자가 입력한 총 단어 수는 크게 줄어들지 않았습니다. 이는 개발자들이 나쁜 제안에 의해 방해받지 않을 때, 스스로 더 많은 코드를 작성하여 AI가 도울 수 있는 새로운 기회를 만들어내기 때문입니다.

함정 (왜 화려한 문지기를 사용하지 않는가?)
"트랜스포머" 문지기(코드를 읽는 문지기)는 필터링 능력이 매우 뛰어났지만, 너무 느리고 모든 사람의 노트북에서 실행하기에는 너무 많은 컴퓨팅 파워를 요구했습니다. 또한 결정을 내리기 위해 실제 코드를 읽어야 했기에 개인정보 보호 문제도 제기되었습니다. 그래서 팀은 현재로서는 더 빠르고 가벼운 "부스팅" 문지기를 사용하는 것으로 결정했습니다.

큰 그림
이 논문은 코딩을 위한 AI를 만드는 데 있어, 단순히 코드를 더 잘 쓰는 AI를 만드는 것만이 답이 아니라고 결론짓습니다. 우리는 또한 언제 어떻게 코드를 보여줄지 결정하는 **스마트한 게이트키퍼(Gatekeeper)**를 구축해야 합니다. 이를 통해 AI가 개발자의 몰입을 방해하는 대신 몰입을 돕도록 보장할 수 있습니다.

요약하자면: 그들은 AI가 개발자를 나쁜 아이디어로 짜증 나게 하는 것을 막아주는 스마트한 필터를 구축하여, 비용을 절감하고 코딩 경험을 더 매끄럽게 만들었습니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →