로컬 코딩 보조 모델, 5분 시작 가이드(초보)
요약: 로컬 코딩 보조는 5분이면 에디터에 붙는다. 스택은 VS Code + Ollama + Continue(또는 Cline) + 코딩 모델 넷이고, 초보가 가장 많이 틀리는 핵심은 자동완성과 챗에 '서로 다른 모델 두 개'를 쓰는 것이다. 자동완성은 FIM(중간 채우기) 토큰을 이해하는 작은 모델(예: qwen2.5-coder 1.5B)이 필요하고, 챗·편집은 추론이 좋은 큰 모델(7B~32B)을 쓴다. 일반 'instruct' 챗 모델 하나로 둘 다 쓰면 자동완성이 깨진다.
로컬 코딩 보조는 5분이면 에디터에 붙는다. 스택은 VS Code + Ollama + Continue(또는 Cline) + 코딩 모델 넷이고, 초보가 가장 많이 틀리는 핵심은 자동완성과 챗에 '서로 다른 모델 두 개'를 쓰는 것이다. 자동완성은 FIM(중간 채우기) 토큰을 이해하는 작은 모델(예: qwen2.5-coder 1.5B)이 필요하고, 챗·편집은 추론이 좋은 큰 모델(7B~32B)을 쓴다. 일반 'instruct' 챗 모델 하나로 둘 다 쓰면 자동완성이 깨진다. 그리고 코드는 전부 내 기기에서 돌아 한 줄도 밖으로 안 나간다.
한 줄 요약: 코딩 보조는 주방의 두 칼이다. 자동완성은 빠른 과도(작고 날쌘 FIM 모델), 리팩터·설명은 큰 셰프나이프(추론형 큰 모델) — 칼 하나로 다 하려다 둘 다 어설퍼진다.
왜 모델을 두 개 쓰나? (FIM이 뭐길래)#
자동완성은 '커서 양옆'을 보고 가운데를 채우기 때문이다. 그래서 <fim_prefix>…<fim_suffix>…<fim_middle> 토큰을 학습한 모델(qwen2.5-coder·starcoder2·deepseek-coder)만 깔끔히 완성한다. 일반 챗 모델은 이 토큰을 몰라 쓰레기 출력을 낸다. 흔한 버그 하나 — Continue는 모델 '이름'으로 FIM 템플릿을 추정하니, 모델을 Ollama로 직접 pull하면(이름 보존) 잘못된 템플릿이 끼는 사고를 피한다. 챗 모델은 반대로 instruct(지시형)를 쓴다.
| 역할 | 추천 모델 | 필요 | 핵심 |
|---|---|---|---|
| 자동완성(FIM) | qwen2.5-coder 1.5B | 8GB도 OK | FIM 토큰 필수·저지연 |
| 챗·편집 | qwen2.5-coder 7B(14B) | 8~12GB | 추론·리팩터 |
| 코드 검색 | nomic-embed-text | 작음 | 레포 전체 문맥 |
| 업그레이드 챗 | Qwen3-Coder 30B-A3B | 약 26GB | MoE 3B만 활성·빠름 |
| 에디터 | VS Code + Continue/Cline | - | 로컬 연결·오프라인 |
내 VRAM으론 어디까지 되나?#
8GB면 7B 챗+1.5B 자동완성, 12GB면 14B, 24GB면 32B/30B-A3B다. 14B가 측정상 단맛 구간이고(HumanEval 약 89.9%), 32B나 Qwen3-Coder 30B-A3B(MoE라 3B만 활성)는 워크스테이션급에서 '진짜 리팩터'용 둘째 모델로 쓴다. 속도는 측정상 애플 실리콘(M2 Pro+) 7B Q4가 30~50 tok/s에 자동완성 지연 350ms 미만, CPU만이면 7B는 5~10 tok/s라 답답해 3B가 현실적이다. 어림셈: 디스크+RAM+VRAM ≥ 양자화 크기면 기기에 다 올라 20+ tok/s가 나온다.
초보가 자주 막히는 곳은?#
FIM·문맥·기대치 세 가지가 로컬 코딩 보조에서 가장 자주 막히는 지점이다.
- FIM: 자동완성에 일반 챗 모델을 쓰면 깨진다 → FIM 지원 코더 모델을 쓰고 Ollama로 직접 pull한다.
- 문맥: 컨텍스트 공급자를 켜 레포 전체를 보게 한다(한 파일만 보면 엔진을 차 전체 없이 고치는 격).
- 기대치: 최상단은 아직 호스티드가 앞서지만, =='local=장난감' 시대는 끝났다== — 32B는 진짜 코딩 모델, 7B는 진짜 자동완성이다.
직접 5분 안에 해보려면?#
가장 쉬운 길부터 차례로 밟으면 5분 안에 첫 자동완성을 받아볼 수 있다.
- Ollama로 자동완성(1.5B)·챗(7B)·임베딩(nomic) 셋을 pull하고 Continue를 깐다.
- 역할을 ==자동완성=FIM 모델, 챗=instruct 모델==로 나눠 지정한다(하나로 겸용 금지).
- 같은 작업을 모델 크기만 바꿔 속도/품질을 보고, 무거운 리팩터만 큰 모델로 전환한다.
참고 링크
참고: 점수·속도·VRAM 수치는 2026년 공개 측정·가이드 기준이며 모델·양자화·하드웨어·문맥에 따라 달라진다. 정확한 속도는 본문 방법으로 내 기기에서 직접 측정하라(자동완성 지연이 체감을 좌우한다). 코드는 로컬에 머무니 프라이버시에 유리하고, 모델·확장은 자주 갱신되니 분기별로 다시 본다.
Responses
No responses yet. Be the first to respond.