⚡ 3줄 요약
- 사내 코드를 외부 AI 서버로 보낼 수 없는 상황이라면, 답은 클라우드 요금제가 아니라 내 GPU에서 모델을 직접 돌리는 것이다.
- 속도를 높이는 speculative decoding은 답을 더 똑똑하게 만들지 않는다 — 같은 결과를 더 빨리 뽑을 뿐이다.
- 실제 시험에서도 빠르게 만든 HTML 게임은 제대로 돌아가지 않았다. 빠름은 완성이 아니다.
사내 코드를 클라우드 AI에 붙여넣는 순간, 그 코드는 내 손을 떠난다. 보안 규정이 빡빡한 팀일수록 이 지점에서 AI 코딩을 통째로 포기한다. 그런데 선택지가 하나 더 있다 — 모델 자체를 내 컴퓨터로 가져오는 것이다. 코드는 이 방에서 한 발짝도 나가지 않는다. 문제는 “그게 되냐”가 아니라 “쓸 만하냐”다. 최근 KDnuggets가 소비자용 GPU 한 장으로 이 구성을 실제로 돌려봤고, 결과는 기대와 경고가 반반이었다.
왜 굳이 로컬인가 — 편의가 아니라 통제 때문이다
클라우드 AI 코딩 도구는 설치가 필요 없다는 게 최대 강점이다. 브라우저만 열면 끝이다. 대신 내가 넣는 코드와 프롬프트가 외부 서버를 거친다. 개인 토이 프로젝트라면 상관없지만, 계약상 외부 반출이 금지된 코드나 유출되면 안 되는 내부 자료라면 이야기가 다르다.
로컬 실행은 이 트레이드오프를 뒤집는다. 편의를 내주는 대신 데이터 통제권을 가져온다. 모델 가중치도, 추론 엔진도, 코드도 전부 내 기기 안에 있다. 구독료도 없고 사용량 제한도 없다. 대신 GPU와 저장 공간, 그리고 설치 시간을 직접 감당해야 한다. 공짜가 아니라 비용의 종류가 바뀌는 것이다.
⚠️ 오해하기 쉬운 지점
“로컬 = 안전”이 자동으로 성립하지는 않는다. 코드가 외부로 안 나가는 것과, 그 코드에 취약점이 없는 것은 별개다. 설정 실수·파일 접근 범위·생성된 코드의 보안 결함은 로컬로 돌린다고 사라지지 않는다. 로컬은 ‘전송 위험’만 줄인다.
세 조각이 역할을 나눠 맡는다
로컬 agentic coding은 한 덩어리가 아니라 세 도구의 조합이다. 각자 하는 일이 다르다.
| 도구 | 역할 | 비유하자면 |
|---|---|---|
| llama.cpp | GPU에 모델을 올리고 API로 노출하는 추론 엔진 | 모델을 돌리는 ‘엔진’ |
| 코딩 모델(본체) | 명령을 읽고 코드를 쓰고 고치는 두뇌 | 실제로 일하는 ‘작업자’ |
| 드래프트 모델 | 본체의 다음 토큰을 미리 제안해 속도를 높이는 보조 | 작업자 옆의 ‘속기사’ |
| CLI 에이전트 | 내 지시를 모델에 전달하고 폴더에서 실제 작업을 시키는 도구 | 지시를 옮기는 ‘중개자’ |
핵심은 마지막 조각이다. CLI 에이전트가 붙으면 모델이 단순히 답만 뱉는 데서 멈추지 않는다. 파일을 만들고, 테스트를 실행하고, 에러를 읽고, 스스로 고친다. 여러 단계를 알아서 밟는 이 흐름을 agentic coding이라 부른다. 채팅창에 코드 스니펫을 복붙하던 방식과는 작업의 층위가 다르다.

speculative decoding — 여기가 가장 오해받는 부분이다
드래프트 모델이 왜 속도를 높이는지 짚고 넘어가야 한다. 작은 드래프트 모델이 다음에 올 토큰 여러 개를 먼저 제안하면, 큰 본체 모델이 그 제안을 한 번에 검증한다. 맞으면 통과, 틀리면 본체가 다시 쓴다. 이걸 speculative decoding이라 한다.
여기서 반드시 알아야 할 사실이 있다. 이 방식은 최종 출력을 바꾸지 않는다. 검증 단계가 본체 모델의 확률 분포를 그대로 따르도록 설계돼 있어서, 결과 토큰은 본체 혼자 생성했을 때와 통계적으로 동일하다. 즉 speculative decoding은 답을 더 똑똑하게 만드는 기술이 아니라, 같은 답을 더 빨리 뽑는 기술이다.
⚠️ 가장 흔한 함정
“드래프트 모델을 붙였더니 빨라졌다”를 “성능이 좋아졌다”로 읽으면 안 된다. 속도와 품질은 다른 축이다. 그리고 소비자용 GPU에서는 모델·양자화 조합에 따라 speculative decoding이 오히려 느려지는 경우도 보고된다. 속도 향상은 보장이 아니라 조건부다.
RTX 3090 한 장으로 어디까지 되나
KDnuggets 시험은 RTX 3090(VRAM 24GB) 한 장에서 진행됐다. 이 급은 소비자용 GPU에서 사실상 상한선으로, 30B급 모델을 양자화(파일 크기를 줄인 GGUF 포맷)해 통째로 VRAM에 올릴 수 있는 ‘스위트 스팟’으로 통한다. 본체 모델 약 17GB, 드래프트 모델 약 1.6GB가 함께 올라갔다.
| 측정 항목 | 보고된 값 | 어떻게 읽을까 |
|---|---|---|
| 초기·짧은 작업 속도 | 약 46토큰/초 | 워밍업 구간의 생성 속도 |
| 긴 코딩 작업 속도 | 약 127토큰/초 | 드래프트 제안이 잘 맞을 때의 속도 |
| FastAPI 프로젝트 완성 | 약 2분 | 구조·DB·검증·테스트까지 한 번에 |
이 숫자들은 KDnuggets가 특정 GPU·특정 환경에서 측정한 값이다. 참고로 RTX 3090에서 30B급 모델은 조건에 따라 초당 100~140토큰대까지도 보고되니, 위 수치는 그 범위 안에 든다. 다만 다른 GPU·다른 모델·다른 프롬프트에서 같은 속도가 재현된다는 보장은 없다. 벤치마크 숫자는 ‘이 환경에서 이랬다’는 사례지, 내 환경의 약속이 아니다.
실제로 시켜보니 — FastAPI는 됐고, 게임은 안 됐다
시험에서 준 지시는 명확했다. FastAPI로 할 일 관리 API를 처음부터 만들되, 엔드포인트 4종(생성·조회·수정·삭제), SQLite 저장, 입력 검증, 에러 처리, pytest 테스트, README까지 넣고, 테스트를 스스로 돌려서 통과할 때까지 고치라는 것. “나한테 파일 만들라거나 명령 치라고 시키지 마라”는 조건까지 붙였다.
모델은 이 요구를 약 2분 만에 처리했다. 파일 작성부터 테스트 실행, 에러 수정까지 이어서 해냈다. 요구사항을 구체적으로 쓸 수 있고 결과를 테스트 코드로 바로 검증할 수 있는 작업 — 여기서는 로컬 agentic coding이 제 몫을 했다.
반대 사례도 있었다. 같은 모델에게 HTML 게임을 시켰더니 파일은 나왔지만 제대로 작동하지 않았다. 저자는 이런 유형의 작업에서는 다른 모델이 눈에 띄게 나았다고 적었다. 파일을 만드는 능력과 작동하는 결과물을 내는 능력은 같지 않다. 브라우저에서 직접 열어 확인하기 전까지는 ‘됐다’고 말할 수 없다. AI 코딩이 빠른데도 결과가 어긋나는 진짜 이유도 결국 여기, 속도와 목표가 다른 축이라는 데서 온다.

🎯 FEEDON의 선택 — 우리라면 이렇게 한다
로컬 AI 코딩은 ‘더 좋은 도구’가 아니라 ‘다른 제약을 가진 도구’다. 외부 반출이 금지된 코드를 다루는 팀에게는 대안이 아니라 유일한 길에 가깝고, 그런 제약이 없는 개인에게는 굳이 GPU를 사서 설치·관리 부담을 질 이유가 약하다. 판단 기준은 속도가 아니라 “내 코드가 밖으로 나가면 안 되는가” 하나다.
그리고 벤치마크의 큰 숫자에 홀리지 마라. 127토큰/초도, speculative decoding도 전부 ‘양과 속도’의 지표지 ‘품질’의 지표가 아니다. 결국 사람이 결과를 열어보고 검증하는 단계는 로컬이든 클라우드든 똑같이 필요하다.
도입 전 확인 순서
- 이 코드가 외부 서버로 나가도 되는지부터 확정한다 — 안 되면 로컬을 검토할 이유가 생긴다
- GPU VRAM과 저장 공간을 점검한다(30B급이면 24GB가 현실적 하한)
- 작은 프로젝트로 설치·실행부터 시험한다 — 여기서 막히면 코딩보다 세팅에 시간을 다 쓴다
- 작업 유형별로 속도와 결과 품질을 따로 기록한다
- 생성된 파일·테스트 결과·수정 내역을 사람이 직접 검토한 뒤 실무에 넣는다
적용 순서
🛠️ 내 PC에서 굴려보기
- 이 코드가 외부 서버로 나가도 되는지부터 확정한다. 나가면 안 되는 코드일 때만 로컬 구성이 의미가 생긴다.
- GPU VRAM과 저장 공간을 재본다 — 30B급을 올리려면 24GB가 현실적 하한이다.
- llama.cpp로 본체·드래프트 모델을 GPU에 올리고 API로 노출한 뒤, CLI 에이전트를 그 서버에 물린다.
- FastAPI 만들기처럼 요구사항이 또렷한 작은 프로젝트부터 시켜 설치·실행이 실제로 도는지 확인한다.
- 작업 유형별로 속도와 결과 품질을 따로 적고, 생성된 파일·테스트를 사람이 열어 검증한 뒤 실무에 넣는다.
출처: KDnuggets 「Run Muse Glimmer for Local Vibe Coding with llama.cpp, DFlash, and Pi」 · 속도·용량 수치는 특정 테스트 환경 기준이며 환경에 따라 달라질 수 있음
이 글은 FEEDON이 공개 1차 자료를 바탕으로 작성·검증했습니다.



