Agentic AI JetBrains AI News

Junie: JetBrains AI 코딩 에이전트 정식 출시

Read this post in other languages:

Junie는 하나의 실험으로 시작되었습니다. “AI 코딩 에이전트가 프로젝트의 세부 사항을 추측하는 데 그치지 않고, 개발자가 사용하는 것과 동일한 도구를 실제로 활용한다면 어떨까?”라는 질문에 답하기 위해서였습니다. 지난 1년 동안 이 실험은 IDE는 물론 터미널에서도 개발자가 일상적으로 사용하는 제품으로 성장했습니다. 

이제 JetBrains AI 코딩 에이전트가 베타를 벗어나 정식 출시됩니다. 단순히 이름을 바꾸거나 패키지를 바꾸는 게 아닙니다. Junie의 핵심 기능은 안정성과 연결성을 갖추고 실제 업무에 활용할 수 있는 수준에 도달했습니다. Junie는 코드를 작성하기 전에 계획을 수립하고, 실제 디버거를 활용해 문제를 해결하며, 프로젝트 컨텍스트를 이해한 상태에서 PR을 검토하고, 사용자가 다른 업무에 집중하는 동안 장시간 작업을 수행합니다.

독립적인 에이전트 벤치마크인 SWE-Rebench의 최신 평가에서는 Junie를 최고의 코딩 에이전트로 선정했습니다.

“SWE-Rebench는 평가의 신뢰성을 유지하기 위해 평가를 실행할 때마다 새로운 과제를 사용하므로 결과가 달라질 수 있습니다. 이번 평가에서 Junie는 다른 에이전트보다 앞선 61.6% 해결률과 72.7%의 pass@5를 기록하며 최첨단 모델과도 경쟁할 수 있는 최고의 모델로 선정되었습니다.

Alexander Golubev
Nebius 연구조사 팀장

에이전트에 작업을 위임하는 일은 특별한 경우가 아니라, 일상적으로 부담 없이 활용할 수 있어야 한다고 생각합니다. 그렇기 때문에 Junie는 특정 모델에 종속되지 않고 모든 모델을 지원하며, 이를 통해 사용자는 비용을 직접 제어할 수 있습니다. 최첨단 AI 연구소의 최신 모델을 출시 첫날부터 활용할 수도 있고, 로컬 런타임에 Junie를 사용할 수도 있습니다. Junie는 사용자가 작업별 비용을 결정할 수 있는 제어 장치입니다. 최상위 추론 모델은 강력한 성능을 제공하지만 비싸고, 소형 모델은 빠르고 저렴합니다. Junie는 각 모델이 가장 효과를 발휘할 수 있는 작업에 적절히 활용할 수 있도록 지원합니다. 따라서 도구에 따라 비용 효율성이 결정되는 것이 아니라, 사용자가 직접 비용을 조정할 수 있습니다.

정식 출시와 함께 제공되는 주요 내용은 다음과 같습니다.

고급 Plan(계획) 모드: 코드를 작성하기 전에 먼저 생각하는 에이전트

AI 코딩 에이전트가 저지르는 일반적인 실패 요인 중 하나는 에이전트가 완전히 틀려도 확고한 자신감을 갖는다는 것입니다. 에이전트는 사용자가 작업에 대해 동의하기 전에 구현을 시작해 버립니다. 결국 실제 요구 사항과 맞지 않는 PR을 검토하게 되거나, 검토 초기에 바로 배제했을 경로에 토큰을 소모하게 됩니다.

Plan(계획) 모드는 계획 자체를 핵심 산출물로 만들어 이러한 문제를 해결합니다.

Junie는 코드를 작성하기 전에 제품 요구 사항, 기술 설계, 구현 단계, 그리고 필요 시 테스트 전략까지 포함된 구조화된 문서를 생성합니다. 사용자는 문서를 검토하고 에디터에서 직접 수정한 후 승인합니다. 그리고 그 다음에 Junie가 구현을 시작합니다.

이 접근 방식은 ‘프롬프트를 개선하는 것’보다 더 나은 결과를 제공하며, 그 이유는 다음과 같습니다.

  • 계획은 실제 문서입니다. .junie/plans에 저장되고 사용자는 이를 커밋할 수 있으며, 일회성 대화 기록이 아닌 지속적으로 유지 관리되는 작업 문서로 활용할 수 있습니다.
  • 에이전트는 올바른 질문을 던집니다. 요구 사항이 모호할 때 Junie는 추측에 의존하지 않습니다. 대신 내용을 구체화하기 위해 객관식 질문과 자유 서술형 질문을 제시합니다.
  • Junie는 코딩에 앞서 계획을 수립하므로, 불필요한 토큰 사용을 줄이고 잘못된 PR을 최소화할 수 있습니다. 구현을 잘못 실행할 때마다 지불한 토큰이 낭비되고, 결국 검토 주기를 다시 거쳐야 합니다. 계획은 성능이 뛰어난 모델로 세우고, 구현은 경제적인 모델로 수행하세요. 에이전트가 불필요한 경로로 벗어나지 않기 때문에 비용을 절약할 수 있습니다. 

Shift+Tab을 눌러 Plan 모드로 전환하세요. Ctrl+P로 계획 문서를 열 수 있습니다. 준비가 되었다면 Confirm(확인)을 클릭해 변경 사항을 구현하세요.


에이전틱 디버그: Junie는 println이 아닌 디버거 사용

문제가 발생하면 대부분의 코딩 에이전트는 로그 설명을 추가합니다. Junie는 디버거를 실행합니다.

정식 버전(GA)에서 Junie는 개발자가 직접 사용하는 방식 그대로 IDE의 디버거를 활용할 수 있습니다.

  • 디버그 세션을 시작하거나 참여합니다. Junie는 실행 구성을 시작하고, 테스트를 디버그하거나, 이미 열려 있는 기존 디버그 세션을 이어서 사용할 수 있습니다.
  • 중요한 모든 위치에 중단점을 설정합니다. 프로젝트 코드, 라이브러리 코드, SDK 코드는 물론 디컴파일링된 .class 파일과 JAR 내부의 소스에도 중단점을 설정할 수 있습니다. IDE가 스텝인투할 수 있는 곳이라면, Junie도 거기에 중단점을 설정할 수 있습니다.
  • 실제 런타임 상태를 검사합니다. Junie는 코드 동작에 대해 가정하지 않고 스택 프레임, 스레드 상태, 표현식 평가, 줄까지 실행과 같은 실제 증거를 수집합니다.

이를 통해 Junie는 이전에 개발자가 직접 수행해야 했던 디버그 패턴을 활용할 수 있습니다.

  • “이 테스트가 두 번째 실행에서만 실패하는 이유를 디버그해서 파악해 줘.” 완전 자율 모드로 Junie가 전체 과정을 수행합니다.
  • “디버거를 준비해 줘. 내가 UI 흐름을 트리거할게.” Junie가 중단점을 설정하고 사용자를 기다립니다.
  • “현재 디버그 세션을 이어서 진행하고, 이 값이 왜 null이 되는지 알려줘.” 반복적인 검사 작업은 Junie에게 맡기고, 개발자는 더 중요한 문제 해결에 집중할 수 있습니다.

현재 이 기능은 AI 구독이 있는 경우 JetBrains IDE에서 엔드 투 엔드 방식으로 작동합니다.


원격 제어: 작업 시작 후 어디서든 진행 상황 확인

어떤 작업은 30분짜리 집중 세션 안에 끝나지 않습니다. 예를 들어 Spring Boot 업그레이드, Java 레코드로의 마이그레이션, 또는 기존 서비스에 테스트 커버리지를 추가하는 작업이 그렇습니다. 이는 자율형 에이전트에 가장 적합한 작업입니다. 특히 사용자가 실행 과정을 지속적으로 모니터링할 필요가 없다는 점에서 더 효과적입니다.

노트북에서 작업을 시작하세요. 회의 중에는 휴대폰으로 진행 상황을 확인하세요. 커피를 마시면서 PR을 검토하세요. Junie는 비동기적으로 실행되며, 사용자가 어디에서 로그인해도 세션을 제공합니다.


컨텍스트를 잃지 않는 코드 검토

대부분의 검토 도구는 PR이 열리는 시점에 처음으로 코드베이스를 접합니다. Junie는 코드를 작성할 때 사용하는 것과 동일한 프로젝트 컨텍스트를 바탕으로 검토를 수행합니다. 즉, 빌드, 테스트, 규칙, 과거의 의사결정까지 모두 고려합니다.

  • 세 가지 진입점. GitHub Actions 또는 GitLab(온프레미스 포함)에서 검토를 트리거하거나, CLI 또는 플러그인에서 /review 명령어를 사용해 트리거할 수 있습니다. 사용자의 선택에 따라 검토 범위를 스테이징되지 않거나 스테이징된 변경 사항 또는 메인 브랜치와의 diff로 설정할 수 있습니다.
  • 대화형 검토. Junie는 주요 변경 사항을 강조 표시하고, 해당 변경의 설계 의도를 설명하며, 각 변경에 대해 사용자가 승인 또는 거부할 수 있는 권한을 인라인으로 제공합니다. 잠재적인 문제를 발견하면 해당 위치에 즉시 PR 코멘트를 작성할 수 있습니다.
  • 초점에 맞춰 조정. 후속 질문을 하면 Junie는 파일을 알파벳순으로 순차 검토하는 대신, 사용자가 중요하게 생각하는 사항을 중심으로 나머지 검토의 순서를 재정렬합니다.

긴밀한 IDE 통합: IDE의 도구를 활용하는 AI 코딩 에이전트

Junie는 JetBrains IDE 내에서 항상 작동합니다. 올해 초에는 Junie를 연결하는 방법을 소개해 드렸습니다. Junie의 GA 버전에서는 이러한 통합을 ACP(에이전트의 커뮤니케이션 프로토콜)를 기반으로 새롭게 구축했습니다. ACP는 Junie CLI가 IDE와 통신할 때 사용하는 것과 동일한 프로토콜입니다.

  • 하나의 엔진, 다양한 인터페이스. 이제 AI 채팅, 전용 Junie 도구 창, Junie CLI는 모두 동일한 에이전트를 기반으로 작동합니다. 개선 사항은 한 번 구현되면 모든 인터페이스에 적용됩니다.
  • IDE를 에이전트의 도구 상자로. Junie는 IDE의 시맨틱 색인, 빌드 구성, 테스트 러너, 디버거와 유사한 자체 도구를 사용하는 것이 아니라 IDE 도구를 그대로 사용합니다. 
  • 데이터베이스 통합. Junie는 DataGrip과 JetBrains Database 플러그인을 통해 IDE에 구성된 데이터베이스에 연결합니다. 그런 다음 코드가 처리되는 동일한 세션에서 실제 데이터를 조회하고, SQL을 작성, 수정 및 검증합니다.

이 모든 변화가 만드는 결과

각 기능은 저마다 특정 문제를 해결합니다. 하지만 이러한 기능이 함께 작동하면 에이전트의 역할 자체가 달라집니다.

프로젝트를 이해하고, 작업을 수행하기 전에 승인을 받으며, 사용자가 다른 일을 하는 동안 작업을 실행하고, 문제가 발생하면 제대로 디버그하며, 전체 프로젝트 컨텍스트에서 PR을 검토하고, 실제 데이터를 조회하는 에이전트, 즉 실제로 업무를 위임할 수 있는 에이전트가 됩니다.

이는 베타 단계가 종료되기 위한 기준이기도 합니다.

시작하기

  • Junie는 모든 JetBrains IDE와 터미널의 Junie CLI에서 사용할 수 있습니다. 이미 JetBrains AI 구독을 사용하고 있다면 별도의 설정 없이 바로 사용할 수 있습니다. 
  • Bring Your Own Key(BYOK)도 지원하므로 Anthropic, OpenAI, Google 등을 다양하게 이용할 수 있습니다. 
  • Junie는 로컬 모델 런타임과도 연결됩니다. 에이전트를 LiteLLM, LM Studio, Ollama에 연결하면 사용자의 시스템에 로드된 모델을 사용해 실행할 수 있습니다. 프롬프트와 코드는 외부로 전송되지 않습니다. 

Junie를 설치하고 프로젝트를 연 뒤, 실제 작업에 사용해 보세요. 그동안 미뤄 두었던 작업이라면 더 좋습니다. 

그런 다음 어떤 부분에서 문제가 발생했는지, 어떤 점이 인상적이었는지, 그리고 앞으로 어떤 기능을 보고 싶은지 알려주세요. 위에서 소개한 모든 기능은 이러한 피드백 과정을 통해 탄생했으며, 이는 GA 이후에도 계속됩니다.

게시물 원문 작성자

Dmitry Savelev

Dmitry Savelev

Discover more