devlog.md

[로컬llm과 api 검토] 로컬 LLM vs API 손익분기점 직접 계산기_03

「로컬 LLM 증설기」 3부작
1편: 24GB의 벽 — 무엇이 왜 깨졌나
2편: 하드웨어 견적 전수 조사 — 그 메모리, 대체 어디서 사나
3편: API 손익분기점 — 사는 게 정말 나은가 (현재 글)

하드웨어 견적을 다 뽑고 나니 300만원이 넘는 숫자가 남았다. 그 앞에서 당연한 질문이 떠올랐다. 이 돈이면 API를 몇 달이나 쓸 수 있지? 2026년 8월 기준 단가를 전부 긁어모아 손익분기점을 계산해봤고, 결과는 내 예상보다 훨씬 API 쪽에 유리했다.

1단계: 판단 기준부터 못 박았다

모델을 고르기 전에 조건 세 개를 순서대로 정했다.

첫째, 미국 원산지 프로바이더 우선. 개인 자동화 파이프라인에 데이터를 흘리는 이상 관할권과 데이터 처리 정책을 따지는 게 맞다고 봤다. 성능이 조금 나아도 이 조건에서 걸리면 후보에서 뺐다.

둘째, agentic·tool-calling 호환성. Hermes는 MCP 기반 툴 호출이 핵심이라 함수 호출이 부정확하면 나머지가 아무 소용이 없다. 앞선 로컬 모델 테스트에서 이미 배운 교훈이다. "글을 잘 쓰는 모델"이 아니라 "JSON을 정확히 뱉는 모델"이 필요했다.

셋째, 비용 대비 성능비. 이건 마지막 필터다. 앞의 두 조건을 통과한 뒤에야 가격을 봤다.

2단계: 2026년 8월 토큰 단가표

백만 토큰당 입력/출력 기준으로 정리했다. Gemini 3.1 Pro가 2달러/12달러, Gemini 3.6 Flash가 1.50달러/7.50달러, Gemini 3.5 Flash-Lite가 0.30달러/2.50달러다. 플래그십 기준으로 Gemini 3.1 Pro는 GPT-5.6 Sol(5달러/30달러)과 Claude Opus 4.8(5달러/25달러)의 절반 이하에 위치한다.

모델입력 (100만 토큰)출력 (100만 토큰)비고
GPT-5.6 Sol$5.00$30.00최상위
GPT-5.6 Terra$2.00$12.00중간
GPT-5.6 Luna$0.20$1.20경량
Gemini 3.1 Pro$2.00$12.00200K 초과 시 $4/$18
Gemini 3.6 Flash$1.50$7.50주력 후보
Gemini 3.5 Flash-Lite$0.30$2.50대량 처리용
Claude Opus 4.8$5.00$25.00참고
Claude Sonnet 5$3.00$15.00참고

여기서 두 가지 함정을 확인했다. 하나는 Pro 등급의 장문 컨텍스트 할증이다. Gemini 3.1 Pro는 200K 토큰을 넘으면 4달러/18달러로 뛴다. 다른 하나는 추론(thinking) 토큰이 출력 토큰으로 계산되어 출력 단가로 청구된다는 점. 즉 실제 청구서는 단가표보다 항상 높게 나온다. 추론 모델을 쓸수록 이 격차가 커진다.

3단계: 할인 수단을 먼저 파악했다

단가표만 보면 안 되고, 깎을 수 있는 구간을 먼저 알아야 계산이 정확해진다. 세 가지가 있었다.

배치 API는 반값이다. Gemini 3.1 Pro는 배치 처리 시 1.00달러/6.00달러로 떨어진다. 24시간 내 비동기 처리 조건이다. 블로그 자동 포스팅처럼 즉시성이 필요 없는 작업은 전부 여기로 보내면 절반이 절약된다.

프롬프트 캐싱도 크다. 캐시 읽기는 기본 입력 가격의 10%만 청구된다. 에이전트는 매 턴마다 동일한 시스템 프롬프트와 툴 정의를 반복 전송하는 구조라, 이 부분을 캐싱하면 입력 비용의 상당 부분이 날아간다. Hermes처럼 컨텍스트가 무거운 프레임워크에서는 효과가 특히 크다.

무료 할당량도 있다. Gemini 3.x 계열은 구글 검색 그라운딩을 월 5,000회까지 무료 제공한다. 뉴스 수집 파이프라인에서 이 정도면 개인 용도로는 충분하다.

다만 한 가지 주의할 점. Gemini 2.0 계열은 2026년 6월 1일 종료됐고, 2.5 계열도 2026년 10월 16일 종료 예정이다. 싸다고 구형 모델에 코드를 고정해두면 몇 달 뒤 마이그레이션 비용을 치른다.

4단계: 한국어 토큰 효율이라는 숨은 변수

이건 한국어 사용자만 겪는 문제다. 이전 작업에서 확인한 바로는 한국어는 글자당 대략 1.5~2.5 토큰이 소모된다. 영어는 단어당 약 0.75토큰 수준이니 체감 차이가 크다.

구체적으로 계산해보면 이렇다. 한글 2,000자짜리 문서 하나를 처리한다면 토큰 수는 대략 3,000~5,000토큰이다. 같은 정보량의 영어 문서라면 1,500~2,000토큰 선에서 끝난다. 즉 한국어 파이프라인은 같은 작업에 2배 이상의 토큰을 쓴다고 봐야 한다.

이 때문에 배치 크기 설계도 달라진다. 토큰 한도에 맞춰 문서를 밀어넣을 때, 한국어는 안전 마진을 크게 잡아야 한다. 실무적으로는 토큰 한도의 70~80% 선에서 끊는 걸 기준으로 삼았다. 이 마진을 안 두면 배치 중간에 잘려서 전체를 다시 돌리게 된다.

5단계: 손익분기점 계산

기준 장비는 스트릭스 헤일로 128GB 미니PC, 약 2,200달러로 잡았다. 2026년 8월 기준 원달러 환율은 1,417원 수준이니 약 312만원이다. 전기료는 55W급 TDP 기준 하루 6시간 사용 시 월 2천원 안팎이라 계산에 큰 영향을 주지 않았다.

월 API 지출 시나리오원화 환산312만원 회수까지판단
가벼운 사용 ($10)약 1.4만원약 223개월 (18.6년)구입 비합리
일상 자동화 ($50)약 7만원약 45개월 (3.7년)애매
본격 에이전트 ($200)약 28만원약 11개월구입 합리
대량 처리 ($500)약 71만원약 4.4개월즉시 구입

숫자를 보고 조금 허탈했다. 내 실제 사용 패턴은 두 번째 줄에 가깝다. 4년 가까이 써야 본전이라는 뜻인데, 그 사이 모델도 하드웨어도 두세 세대는 바뀐다. 4년 뒤 이 미니PC의 잔존가치를 생각하면 실질 회수 기간은 더 길어진다.

여기에 앞서 정리한 할인 수단을 적용하면 API 쪽이 더 유리해진다. 배치 API로 절반, 프롬프트 캐싱으로 입력 비용을 더 깎으면 월 50달러 시나리오가 실질 25~30달러 수준까지 내려간다. 그러면 회수 기간은 6~7년으로 늘어난다. 순수 경제성만 놓고 보면 로컬 장비 구입은 합리적 선택이 아니었다.

6단계: 그래도 로컬을 완전히 못 버린 이유

계산 결과가 API 쪽으로 기울었는데도 로컬을 남겨둔 이유가 넷 있다.

첫째, 데이터가 밖으로 안 나간다. 회사 관련 문서를 다루는 파이프라인은 애초에 API 대상이 아니다. 폐쇄망 환경에서 돌아가야 하는 작업은 비용 계산 자체가 무의미하다. 이건 돈으로 환산되지 않는 조건이다.

둘째, 과금 미터가 안 돌아간다. 프롬프트를 다듬느라 같은 요청을 백 번 돌려볼 때, 금액을 신경 안 써도 되는 건 생각보다 큰 자유다. 실험 단계에서는 이 심리적 비용이 실제 비용보다 클 때가 있다.

셋째, 레이턴시가 예측 가능하다. API는 프로바이더 사정에 따라 응답 시간이 출렁이고, 간혹 장애도 난다. 로컬은 느리더라도 일정하다.

넷째, 오프라인에서도 돈다. 자주 있는 상황은 아니지만 있으면 좋은 조건이다.

7단계: 그래서 역할 분담으로 갔다

결론은 이분법이 아니라 라우팅 설계가 됐다. 작업 성격에 따라 목적지를 나눴다.

작업 유형목적지이유
복잡한 추론, 정확한 툴 호출API (Gemini 3.x Pro / GPT-5.6 Terra)로컬 소형 모델로는 신뢰도 부족
대량 반복, 단순 분류·요약API 경량 등급 + 배치단가가 로컬 전기료 수준
회사 문서, 폐쇄망 작업로컬 (맥북 Ollama)외부 전송 불가
프롬프트 실험, 반복 테스트로컬과금 부담 없음
한국어 전용 처리로컬 (EXAONE 스킬 호출)특화 모델이 효율적

Trouble Shooting

증상원인해결 방법
단가표대로 계산했는데 실제 비용이 더 나옴추론(thinking) 토큰이 출력 토큰으로 청구됨추론 모델은 출력 단가 기준으로 여유 있게 추정
한국어 작업 비용이 예상보다 큼한국어 글자당 1.5~2.5 토큰 소모영어 기준 추정치에 2배 계수 적용, 배치는 한도의 70~80%로 제한
배치 중간에 잘려 전체 재실행토큰 한도 산정 시 안전 마진 부족보수적 배치 크기 + 실패 시 재시도 로직 분리
장문 처리 시 비용 급증Pro 등급 200K 초과 구간 할증200K 이하로 청크 분할, 배치 API 병용
구형 모델에 코드를 고정해뒀다 종료 통보Gemini 2.0 종료, 2.5도 10월 종료 예정모델명을 설정값으로 분리해 교체 가능하게 구성
에이전트 출력에 위조된 시스템 에러 문구가 등장외부 웹 콘텐츠를 통한 프롬프트 인젝션이전 작업 로그 전수 검토, 쓰기 동작 승인 설정 강화

3편 결산: 시리즈를 마치며

내용
확정 #11월 50달러 사용 기준, 312만원 회수까지 3.7년(할인 적용 시 6~7년)
확정 #12한국어 파이프라인은 영어 기준 추정치 대비 약 2배 토큰 소모
확정 #13배치(~50% 할인)+캐싱(입력가 10%)이 모델 간 단가 차이보다 크다
최종 결론하드웨어 구매는 보류, 로컬/API 라우팅으로 운용
다음 작업프롬프트 인젝션 사고 대응 — 쓰기 동작 승인 규칙 재설계

느낀 점 / 다음에 할 일

이 세 편을 쓰면서 가장 크게 바뀐 건 질문 자체였다. 처음엔 "어떤 장비를 사야 하나"였는데, 끝나고 보니 "이 작업에 이 정도 지능이 정말 필요한가"가 됐다. 46B 모델이 필요하다고 믿었던 작업 중 상당수는 Flash 등급이나 그보다 작은 모델로 충분했다. 요구사항을 부풀린 건 나 자신이었다.

두 번째 교훈은 비용 계산에서 단가는 절반이라는 것이다. 배치, 캐싱, 무료 할당량, 그리고 한국어 토큰 효율까지 다 넣어야 실제 숫자가 나온다. 단가표만 보고 "비싸다/싸다"를 판단했다면 완전히 틀린 결론에 갔을 것이다.

당분간은 하드웨어 구매를 보류하기로 했다. 메모리 대란이 진정될 때까지 기다리는 게 낫고, 그동안은 API 하이브리드로 버틴다. 대신 라우팅 규칙을 코드로 명시해두려 한다. 지금은 그때그때 감으로 나누고 있는데, 이러면 비용 추적이 안 된다.

그리고 진짜 급한 건 따로 있다. 프롬프트 인젝션 사고 대응으로 쓰기 동작 승인 규칙을 다시 짜는 일이다. 외부 웹 콘텐츠를 읽는 에이전트에게 파일 쓰기나 전송 권한을 준다는 게 어떤 의미인지, 이번에 제대로 알았다. 계산기보다 그게 먼저다.

이전 글: 로컬 LLM 하드웨어 전수 검토

댓글