글

5월, 2026의 게시물 표시

음성봇을 스텁부터 만든 이유 — 테스트로 설계를 먼저 굳히다

시리즈 · 음성봇 직접 만들기 — 실시간 음성봇의 뼈대를 바닥부터 만든 8편 기록입니다. 1. 끼어들기(barge-in) — 재생 중인 TTS를 실시간으로 끊는 법 2. "말이 끝났다"는 판단 — VAD 엔드포인터 3. 엔진을 코드 수정 없이 바꾸는 인터페이스 설계 4. 로컬 LLM 대화 두뇌와 도구 호출 루프 5. 매 턴 지연시간을 재는 이유 6. 브라우저 마이크에서 서버까지 — 오디오 프로토콜 7. 로컬 Whisper STT 연결하기 8. 스텁부터 만든 이유 — 테스트 우선 설계 (완결) — 지금 보는 글 돌아보며 시작하는 마지막 편 이 시리즈를 시작할 때부터 정해 둔 규칙이 하나 있었습니다. 진짜 음성 인식 모델과 진짜 합성 모델이 준비되기 전까지는, 그 둘을 흉내만 내는 가짜 엔진으로 전체 구조를 먼저 돌려본다는 규칙입니다. 여덟 편을 거치며 끼어들기 처리, 상태 흐름, 프로토콜, 엔진 인터페이스를 하나씩 다뤘는데, 그 모든 것이 사실 이 가짜 엔진 위에서 검증됐습니다. 지금 코드를 다시 열어 보면 그때는 별생각 없이 세운 규칙이 결과적으로 시리즈 전체의 진행 속도를 결정했다는 게 눈에 들어옵니다. 이번 편에서는 왜 굳이 가짜부터 만들었는지, 그리고 그 선택이 시리즈 전체에 어떤 영향을 남겼는지 정리하면서 이 시리즈를 마무리하려 합니다. 실제 모델을 기다리지 않기로 한 이유 음성봇의 핵심 로직은 사실 음성 인식이나 음성 합성 자체가 아닙니다. 사용자가 말을 시작했는지 끝냈는지 판단하는 상태머신, 합성 중에 끼어들기가 들어왔을 때 스트림을 멈추는 동시성 처리, 이벤트가 순서대로 오가는 흐름 제어 같은 것들이 훨씬 까다롭습니다. 반면 실제 인식·합성 모델은 무겁고 설치가 까다롭고 실행 속도도 느립니다. 이 두 가지를 한꺼번에 붙잡고 있으면 어려운 동시성 버그를 실제 모델의 로딩 시간과 뒤섞어 디버깅하게 됩니다. 모델이 느려서 반응이 늦은 건지, 상태머신이 잘못 짜여서 늦은 건지 구분이 안 되는 상황을 미...

클로드 코드 비용 줄이는 법 — ollama 로컬 LLM 연동 (M3 맥북)

이미지
클로드 코드 ollama 연동 은 매달 누적되는 Anthropic API 토큰 비용을 가장 빠르게 줄이는 방법입니다. Claude Code(Sonnet 3.5 호출 기준) 헤비 유저는 하루에 수 달러 단위, 한 달이면 $100~200 수준의 토큰 비용이 쌓입니다. Ollama로 로컬 LLM(qwen2.5-coder:7b)을 띄워 단순 작업을 위임하면 호출 횟수 기준 약 70%, 비용 기준 약 30~50% 수준의 절감이 가능합니다. 복잡한 다파일 리팩토링은 Claude Code, 자동완성·단일 함수 작성·코드 검색은 Ollama로 나누는 구조입니다. macOS M3 맥북 16GB에서 Claude Code와 Ollama로 하이브리드 환경을 약 90분에 구축하고, 1주일간 실제 비용을 측정하며 겪은 과정을 담았습니다. 따라 하면 그대로 재현할 수 있도록 명령어와 결과 스크린샷을 함께 두었습니다. Claude Code(왼쪽) + Ollama(오른쪽) 동시 실행 화면, iTerm2 분할화면 1. 왜 Claude Code + Ollama 하이브리드인가 Claude Code 단독 사용 시 토큰 비용이 빠르게 누적됩니다 Anthropic Sonnet 3.5의 입력 토큰은 $3/M, 출력은 $15/M입니다. 대규모 코드베이스에서 에이전트를 한 세션 굴리면 한 번에 200K 토큰을 가볍게 넘습니다. 하루에 수 달러 단위가 꾸준히 누적되면 한 달이면 $100~200, 1인 개발자에게는 결코 가벼운 부담이 아닙니다. Ollama 로컬 LLM은 단순 작업에는 충분합니다 qwen2.5-coder 7B는 자동완성, 함수 작성, 코드 검색, docstring 생성 같은 단순 코딩 작업에서 단독 사용에 충분한 품질의 응답을 냅니다. 인터넷도 API 키도 비용도 필요 없습니다. 로컬에서 1~2초 만에 응답합니다. 작업을 80/20으로 나누면 비용이 줄어듭니다 경험적으로 코딩 작업의 약 80%는 단순 작업이고 Ollama로 처리 가능하며, 20% 정도가 진짜로 에...