먼저, Copilot

Copilot을 출시 시점부터 최근까지 사용했다1. 그러다 Copilot을 구독 해지했다. 이유는

  • 유료 구독중인 ChatGPT와 Copilot의 역할이 많이 겹쳤다.
  • 잘 파악하고 있는 주력 언어에서는 크게 도움이 되지 않았다. 결국 구현의 귀찮음 해소, 그마저도 딱 들어맞는 코드를 제안하는 경우가 그리 많지 않았다.
  • Copilot이 여러 줄 짜리 inline completion을 제안할 때 마다, 이번에는 어떤 변수명을 그럴싸하게, 눈에 띄지 않게 잘못 써놓았을지 신경을 곤두서게 만들었다.

Copilot 대안

가끔씩 유용했던 Copilot을 매 달 구독하는 대신, 적당히 쓸만한 local LLM을 사용해보기로 했다.
Local LLM 구동은 Ollama를 사용했다.

Coding LLM 선택

코딩용 LLM 모델은 AI Coding BATTLE | Which Open Source Model is BEST? 영상에 나온 DeepSeek coder V2 lite, Yi coder, Qwen 2.5 coding 중 골라보기로 했다.
로컬 Open Web UI에서 3개를 동시에 열어놓고 몇 가지 프롬프트2를 넣어보니 다들 조금씩 나사 빠진 답들을 했지만 Qwen2.5 coding 모델이 근소하게나마 나은 것 같아 일단 이걸 써보기로 했다.

IntelliJ용 플러그인

다음으로, local LLM으로 auto-completion을 해주는 IntelliJ용 플러그인들을 찾아봤다.

CodeGPT

검색 결과에 가장 먼저 뜬 플러그인. 사용법 안내 포스트도 검색된다.

참고

잠시 사용해보니 일단, 꽤 잘 만들어진 것 같다.

  • Ollama에 설치된 model을 탐지해준다.
  • Copilot처럼 커서 위치에 “강제”로 자동완성을 요청하는 기능은 찾지 못하겠다.
  • 코드를 입력하고 있으면 백그라운드에서 계속 자동완성을 요청하는 것 같다.
  • 로컬 LLM의 응답 속도가 빠른편이 아니므로 Copilot처럼 빠릿한 느낌은 없다.
  • 커멘트에 기능을 묘사하면 그 아래에 코드를 자동완성 해주는 건 작동한다.

Footnotes

  1. Copilot이 켜놓고 소스 코드 커멘트에 원하는 기능을 써넣고 기다리면 그 밑에 구현한 코드가 나타난다. Multi-line autocompletion도 가끔 쓸모가 있었고. 어설프게 아는 언어로 중급개발자 정도의 코드 작성이 가능하게 해주는 신박한 AI다.

  2. 테스트에 사용한 프롬프트를 ChatGPT 4o에 넣어보면 확실히 ChatGTP가 똘똘한 답을 내놓는다.