Anthropic 공식 요금 페이지 (2026-08 확인)
0 조회
Ollama로 로컬 모델을 돌렸더니 응답이 1.2초 만에 왔습니다. API는 2.8초였어요. "역시 로컬이 빠르네"라고 생각했는데, 같은 스크립트를 10분 돌렸더니 브라우저가 멈춰 있더군요. 추론 시간만 재면 이기지만, 엔드-투-엔드 체감과 다른 작업 블로킹까지 보면 이야기가 달라집니다. 간단한 분류 작업이고 하루 요청이 적다면 API, 대량 배치이고 정확도를 타협할 수 있다면 로컬이라는 게 제 결론입니다.
무엇을 어떻게 측정했나요?
제가 쓴 환경은 WSL2에서 돌아가는 자동화 스크립트입니다. 호스트는 Intel i7-12700, RAM 32GB, GPU 없음이에요. Ollama는 llama3.2:3b(3.2B 파라미터, 제 한국어 분류 실측 기준 정확도 82%)를 썼고, Claude는 claude-3-5-haiku-20241022를 비교 대상으로 잡았습니다.
측정한 건 세 가지였어요. 첫째, 요청부터 응답까지 걸린 시간(엔드-투-엔드 레이턴시). 둘째, 추론 중 다른 프로세스가 얼마나 느려지는지(CPU 점유). 셋째, 한국어 감정 분류 100건과 뉴스 요약 50건의 정확도 차이. 정확도는 제가 수동으로 라벨링한 테스트 세트 기준입니다.
같은 100건 요청을 돌려보니 체감이 이렇게 달랐다
한국어 감정 분류 작업(긍정/부정/중립)을 100건 돌렸어요. 각 요청은 50~200자 텍스트를 입력받아 클래스 하나를 리턴하는 간단한 작업입니다.
Ollama 로컬 모델은 건당 평균 1.4초가 걸렸습니다. 네트워크 왕복이 없으니 안정적이었어요. 그런데 추론이 시작되면 CPU 사용률이 80%까지 튀더군요. 크롬에서 구글 독스 타이핑 반응이 1초씩 밀리는 게 체감됐습니다. 100건 전체는 약 2분 20초(140초)가 걸렸고, 그동안 다른 작업은 거의 못 했어요.
Claude API는 건당 평균 2.9초였습니다. 네트워크 I/O가 포함돼서 느린데, 응답 시간이 들쭉날쭉했어요(빠를 땐 2.3초, 느릴 땐 4.1초). 하지만 CPU는 거의 안 먹더군요(5% 미만). 100건 전체는 약 4분 50초(290초)에 끝났고, 그 사이 브라우저 작업은 지장 없었습니다. 병렬로 10개씩 동시 요청을 보내면 전체 시간을 30초로 줄일 수 있었는데, Ollama는 CPU 점유 때문에 병렬로 돌리면 오히려 느려졌어요.
뉴스 요약 작업(300자 입력 → 50자 요약)에서도 비슷했습니다. Ollama는 건당 3.2초로 빨랐지만, API는 5.8초였어요. 하지만 50건을 돌리는 동안 제 작업 흐름이 막히는 건 Ollama 쪽이었습니다.
정확도는 어땠냐면, 감정 분류에서 API가 96%를 맞췄고 로컬 모델은 82%였어요. 요약은 주관적이라 ROUGE 점수로 재봤는데, API가 0.68, 로컬이 0.51이었습니다. 정확도 차이가 생각보다 컸어요. 특히 한국어 조사 처리나 미묘한 뉘앙스 구분에서 로컬 모델이 자주 틀렸습니다.
비용 함정도 있었습니다
Anthropic 공식 요금 페이지 기준(2026년 8월 확인) Claude API haiku는 입력 토큰 백만 개당 $0.25, 출력은 $1.25예요. 감정 분류 100건이 약 $0.006였고, 천 건 돌려도 6센트입니다.
Ollama는 무료지만 전기료가 있어요. 하지만 시간 비용이 더 컸습니다. 하루 요청을 5분(API 병렬) vs 2분(로컬 직렬)로 끝내는 건 별 차이 없지만, 그 사이 제가 다른 작업을 못 하느냐 마느냐가 실제 비용 차이였어요.
정확도가 낮아서 재작업이 생기는 것도 숨은 비용입니다. 로컬로 분류를 돌렸는데 18%가 틀려서 수동으로 고쳐야 했다면, 그 시간이 API 비용보다 훨씬 비쌉니다. 제 경우엔 분류 결과를 바로 다음 단계에 넘기는 자동화였기 때문에, 정확도가 낮으면 파이프라인 전체가 무너졌어요.
언제 뭘 쓸지는 이렇게 결정했습니다
저는 두 달 동안 두 방식을 번갈아 썼어요. 처음엔 "로컬이 공짜니까 무조건 이득"이라고 생각했는데, 실제로는 작업 성격에 따라 답이 달랐습니다.
로컬을 선택한 경우는 배치 작업이 메인일 때였어요. 밤에 크롤링한 데이터를 새벽에 분류하는 작업이라면, 제가 자는 동안 CPU를 독점해도 상관없거든요. 하루 천 건 이상 돌려야 하는데 정확도가 80% 정도로 충분하다면(나중에 필터링 단계가 있다거나), 로컬이 비용 면에서 압도적이었어요. 네트워크가 불안정한 환경에서도 유리했습니다.
API를 선택한 이유는 실시간성과 정확도였어요. 사용자 요청에 바로 답해야 하는 서비스라면, 2초 vs 5초 차이는 중요하지 않지만 정확도 82% vs 96%는 치명적이거든요. 하루 요청이 적다면 API 비용이 몇 센트에 불과해서 고민할 이유가 없었고요. 제가 다른 작업을 하면서 백그라운드로 돌리고 싶을 때도 API가 나았습니다.
결정적 순간은 한국어 요약 작업이었어요. 로컬 결과물을 사람이 검수하는 데 걸린 시간이, API 결과를 그냥 쓰는 것보다 3배 더 오래 걸렸습니다. 그때부터 "정확도가 중요한 건 API, 단순 분류나 배치는 로컬"로 기준을 잡았어요.
실측 후 내린 결론
추론 속도만 보면 로컬이 이기지만, 실무에서는 CPU 점유로 인한 작업 블로킹과 정확도 타협이 실제 비용이었습니다. API는 네트워크 왕복이 있어도 병렬 처리가 자유롭고, 정확도에서 확실한 우위가 있었어요. 제 판단 기준은 이렇습니다. 실시간 응답이 필요하거나 정확도가 중요하면 API, 대량 배치이고 80% 정확도로 충분하며 CPU를 독점할 수 있는 시간대라면 로컬입니다. GPU를 추가하면 로컬 속도가 극적으로 개선되는데, 그때 다시 측정해볼 예정입니다.
자주 묻는 질문
Q. GPU 없이 Ollama를 쓰면 너무 느린 거 아닌가요? A. CPU만으로도 3B 파라미터 모델은 건당 1~3초 안에 응답이 와요. 다만 7B 이상 모델은 메모리 스왑 때문에 10초 넘게 걸릴 수 있어서, GPU 없으면 작은 모델로 제한됩니다.
Q. 정확도 차이를 줄이려면 어떻게 하나요? A. 로컬에서 더 큰 모델(llama3:8b 이상)을 쓰거나, 프롬프트에 few-shot 예시를 추가하면 정확도가 올라가요. 다만 추론 시간도 함께 늘어나니 트레이드오프가 있습니다.
Q. 병렬 처리 차이는 어느 정도인가요? A. API는 10개 동시 요청을 보내면 전체 시간이 1/10로 줄어요. 로컬은 CPU 코어 수만큼만 병렬 처리가 되고, 그 이상은 큐에서 대기하거든요. 제 환경(12코어)에서는 4개 이상 동시 실행하면 오히려 느려졌습니다.