
로컬 LLM으로 코딩하기 전에 말해두고 싶은 것이 있다
요약
로컬 LLM을 활용한 에이전틱 코딩 시 성능을 극대화하기 위한 실전 가이드를 제공합니다. 태스크 분할, 컨텍스트 압축, MoE 모델 지양, 세션 전환 등 구체적인 운영 전략을 다룹니다.
핵심 포인트
- 태스크를 작게 분할하여 모델의 해상도를 높일 것
- 컨텍스트 길이를 짧게 유지하기 위해 빈번한 압축(compact) 수행
- 코딩 작업 시 성능 벤치마크와 별개로 MoE 모델 사용 지양
- 버그 발생 시 기존 세션을 유지하지 말고 반드시 세션 전환
- 보안 문제는 LLM에 맡기지 말고 인간이 구체적으로 지시
로컬 LLM으로 코딩하기 전에 말해두고 싶은 것이 있다
- 태스크를 분할하라
- 태스크가 끝나면 즉시 compact(압축)하라
- MoE 모델을 사용해서는 안 된다
- 버그가 발생하면 세션을 전환하라
- 보안은 인간이 이해하고 구체적으로 지시하라!!!!!!!!!!!!!!!!!!!!!!!!!
……
LM Studio와 Opencode를 사용하여 로컬 LLM으로 내가 원하는 애플리케이션을 에이전틱 코딩 (Agentic Coding)하고 있습니다. Qwen3.5-27B 정도부터 일반 가정에서 구동 가능한 모델의 코딩 성능이 급격히 향상되었습니다. 지금은 그 마이너 체인지 버전인 Qwen3.6-27B를 사용하고 있습니다.
이 기사에서는 로컬 LLM으로 에이전틱 코딩을 할 때 주의해야 할 점을 작성했습니다.
'AI로 가속'이라는 블로그를 운영하고 있습니다. 여기에 쓰면 좋을까 생각도 했지만, Qiita에 쓰는 것이 공익에 더 도움이 될 것이라고 판단했습니다.
갑자기 큰 태스크를 부여하면 안정되지 않습니다. 어느 정도는 스스로 태스크를 분할할 수도 있고, 개인이 만드는 작은 프로젝트라면 그것으로 충분할지도 모르지만, 만약을 위해 이쪽에서 분할해 둡니다.
스스로 프로젝트를 전부 만들 수 있을 정도의 해상도까지 떨어뜨리는 것이 이상적입니다. '그럼 직접 하는 게 더 빠르잖아'라는 말은 맞습니다.
LLM의 최대 컨텍스트 윈도우 (Context Window)가 크더라도, 그 모델이 윈도우 가득 찬 컨텍스트를 파악할 수 있는 것은 아닙니다. 컨텍스트는 짧을수록 좋습니다. 컨텍스트가 길어지면 정보의 우선순위를 매기지 못하게 되어 파탄이 납니다. 또한 Prefill(토큰을 입력하기 전에 수행되는 처리)에 상당히 많은 시간이 걸리게 되므로, 역시 빈번한 compact가 필요합니다.
compact를 두려워할 필요는 없습니다. 현재로서는 compact 직후에 바보가 되는 듯한 동작은 마주치지 않았습니다. Claude Code와는 다르게 말이죠.
MoE 모델, 끌리시죠. RAM에 모델이나 KV 캐시가 스왑되어도 어느 정도 속도로 돌아가 줍니다. 하지만 안 됩니다. 아무리 벤치마크 테스트 스코어가 좋아도 안 됩니다. 부풀려져 있습니다. 실제로 사용해 보면 실수의 연속입니다. Qwen3.6-27B라면 한 번에 돌아갈 법한 Tauri 코드를 Qwen3.6-35B-A3B에게 쓰게 하면 엉망진창이 됩니다. 화면 전환을 할 때마다 에러가 2~3개 나오는 것은 당연합니다. 화면 전환이 되면 좋겠네요. 대개 멈춥니다. 아무리 태스크를 분할해도 우선 상황을 충분히 파악하지 못합니다.
그러고 보니 GPT-OSS-20B라는 것이 있었습니다. 이것은 Qwen이 버그 해결에 막혔을 때 도움이 되는 모델입니다. 구현력은 높지 않습니다.
에러는 그대로 고치면 됩니다만, 버그가 발생하면 세션을 전환하여 컨텍스트를 완전히 깨끗한 상태로 만들 필요가 있습니다. 그대로의 세션에서 계속 사용하면, 버그를 만들어낸 그 사고방식을 끌고 간 채로 버그 해결에 임하려 하기 때문에, 언제까지고 버그 난 사고방식에서 벗어나지 못합니다. 이것 때문에 10M tokens 정도의 입력을 태워 먹은 적이 있습니다. compact를 해도 안 됩니다. 반드시 세션을 전환합니다.
LLM은 일단 돌아가기만 하면 된다는 정신으로 코드를 작성합니다. 보안 따위는 신경 쓰지 않습니다. 그러므로 전부 이쪽에서 구체적으로 지시하여 구현하게 할 필요가 있습니다.
저는 무서워서 개인정보를 다루는 서비스는 맡길 수 없습니다. 왜냐하면 저 자신조차 잘 이해하고 있다고 말할 수 없으니까요.
LLM은 코드 보완 (Code Completion)을 위해 사용하는 것이 가장 좋을지도 모르겠습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기