Junie에서 커스텀 모델 설정의 함정
요약
IntelliJ 환경에서 Junie 플러그인을 사용할 때 커스텀 모델 설정에 제한이 발생하는 문제를 해결한 방법을 설명합니다. 핵심은 IntelliJ의 Junie가 BaseURL이 localhost인 모델만 인식한다는 점을 파악하고, netsh 명령어를 이용해 포트 포워딩(9080 -> 8080)을 설정하여 정상적으로 커스텀 모델을 사용할 수 있게 된 과정입니다.
핵심 포인트
- IntelliJ의 Junie는 BaseURL이 localhost인 모델만 인식합니다.
- 커스텀 모델 사용 시, netsh 명령어로 포트 포워딩이 필요할 수 있습니다.
- 포트 포워딩은 9080(로컬)을 8080(대상)으로 연결하는 방식으로 설정했습니다.
지난주에 IntelliJ + AIR 플러그인 + Junie 플러그인을 사용하여, IntelliJ 상에서 AI 에이전트로서 Junie가 EVO-X2 위의 Strata를 이용하는 환경을 만들었습니다.
이 과정에서 여러 가지 궁금했던 점은, Junie CLI에서는 인식되는 커스텀 모델이, IntelliJ 상의 Junie에서는 인식되지 않는다는 것이었습니다.
여러 설정을 변경하며 시도해 본 결과, IntelliJ 상의 Junie에서도 계정을 새로 만들지 않고 커스텀 모델을 설정하여 EVO-X2 위의 Strata를 사용할 수 있게 되었으므로, 그 방법을 설명하겠습니다.
Junie CLI에서는 커스텀 모델의 JSON 형식 설정 파일을 C:\\{사용자 이름}\.junieolders에 배치하고, /model 명령을 실행함으로써 참조하여 설정할 수 있습니다.
이 모델 선택을 통해 지정한 모델이 Junie CLI에서 이용 가능하게 됩니다.
이 동작 자체는 특별히 문제가 없습니다.
Junie CLI에서는 .junie\models 폴더에 설정용 JSON 파일을 배치하면 모델로 선택할 수 있었지만, IntelliJ + AIR + Junie에서는 같은 폴더를 참조함에도 불구하고 여기서 사용할 수 있는 모델에 제한이 있었습니다.
이 화면에서 알 수 있듯이, 3개의 모델 파일 중 하나만 선택 화면에 표시되고 있습니다.
이에 대해 매뉴얼을 읽거나 조사해 보았지만 이유를 알 수 없었습니다.
그래서 설정 파일의 내용을 확인한 결과, 다음과 같은 차이가 있었습니다.
| 파일명 | BaseURL의 호스트 | 목록에 표시 | :--- |
| gemma4-12B-QAT | localhost | 있음 |
| ... | | |
여기서 알 수 있는 것은 대상 모델의 호스트가 localhost가 아니면 목록에 표시되지 않는다는 가설이 세워졌습니다.
그래서 qwen3.8-flash-next-iq3_xxs.json을 다음과 같이 수정해 보았습니다.
{
"id": "qwen3.8-flash-next-iq3_xxs",
"displayName": "EVO-X2 Strata Qwen3.8-Flash-Next",
...
}
주: 포트 번호를 9080으로 설정한 것은 개발용 PC라서 포트 8080이 다른 프로그램(SpringBoot 등)에 사용되기 때문에 변경했기 때문입니다.
즉, IntelliJ + AIR + Junie 환경에서는 .junie\models 폴더의 모델 파일 중 BaseURL이 localhost인 것만 목록에 표시되는 것입니다.
이렇게 localhost만 표시된다는 조건을 알게 되었으므로, 이제 localhost:9080을 EVO-X2의 Strata 포트인 8080으로 포트 포워딩(port forwarding) 해주면, 이전처럼 새로운 프로바이더를 설정하지 않아도 된다는 결론이 나왔습니다.
Windows PC를 사용하고 있으므로, 다음 명령어를 사용하여 포트 포워딩을 설정합니다.
netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=9080 connectaddress=<EVO-X2의 IP> connectport=8080
netsh interface portproxy show all
netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=9080
위와 같은 설정을 함으로써, EVO-X2의 Strata를 사용하여 Junie가 동작하게 되었습니다.
또한, 이전에 프로바이더를 추가했던 경우에는 모델의 컨텍스트 길이가 올바르게 가져와지지 않아, Junie가 기대하는 컨텍스트 길이인 400,000이 Strata 측의 컨텍스트 길이 설정인 256K를 초과하는 프롬프트를 보내 에러가 발생하는 경우가 있었습니다.
하지만 이번 설정에서는 모델 정의 파일에 컨텍스트 길이가 기재되어 있고, Junie 역시 이 값을 사용하고 있는 것을 확인할 수 있었으므로, 컨텍스트 길이와 관련된 에러는 회피할 수 있게 된 것으로 보입니다.
Juine CLI와 Junie 플러그인에서 모델을 다루는 방식에 미묘한 차이가 있었지만, 이번에 여러 가지를 조사하여 회피책(?)을 알게 되었습니다.
이로써 또 하나 똑똑해졌습니다.
11월에는 AIR 플러그인이 IntelliJ 본체에 통합된다는 정보가 있으므로, 앞으로는 IntelliJ만으로도 여러 가지를 할 수 있게 될 것 같습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기