음성으로 코딩하기 (8편) — 매번 켜기 귀찮아서: 자동화와 설정 철학
여기까지 만들고 나니 새로운 게으름이 생겼어요. 매번 손으로 켜기가 귀찮았죠. 그래서 자동화를 붙였는데, 여기서도 예상 못 한 함정이 하나 있었어요.
지난 편 → 7편 — 소리를 키워도 안 됐다: 무료 모델의 벽
윈도우 켜면 알아서 떠 있게
VoxPlug를 쓰려면 매번 실행 스크립트를 손으로 눌러야 했어요. hands-free를 지향하는 도구인데 시작부터 손이 필요하다니 좀 우스웠죠. 그래서 윈도우에 로그인하면 자동으로 실행되게 작업 스케줄러에 등록했어요.
그런데 자동 실행이 멈춰 있었어요
재부팅하고 봤더니, VoxPlug가 마이크 선택 화면에서 멈춰 있더라고요. "어느 마이크 쓸래?" 하고 입력을 기다리면서요. 자동으로 뜨라고 했더니 정작 사람 입력을 기다리는 아이러니.
원인은 이랬어요. VoxPlug는 콘솔(터미널) 프로그램이라, 자동 실행돼도 콘솔과 입력이 붙어버려요. 그러니 "대화형(사람이 있는) 환경"으로 착각하고 마이크를 고르라고 물어본 거죠.
해결은 "지금은 자동 실행이니 묻지 말고 설정값 그대로 써" 라는 옵션(--non-interactive)을 하나 만들어서, 자동 실행 명령에 붙이는 거였어요. 그러니 프롬프트 없이 핀마이크로 바로 떴습니다.
사실 이 시리즈를 버티게 한 건 "설정 철학"이었어요
돌아보면, 3편부터 7편까지 삽질을 견딜 수 있었던 비결이 하나 있었어요. 모든 값을 코드가 아니라 설정 파일로 빼둔 것. 그리고 대부분은 앱을 껐다 켜지 않아도 저장하는 순간 바로 반영(핫리로드) 되게 했죠.
| 문제 (편) | 코드 수정 없이 설정으로 바꾼 값 |
|---|---|
| 4편 끊김 오판 | "살아있는 소리" 판정 임계값 |
| 6편 노이즈 제거 역설 | 경로별 노이즈 제거 on/off |
| 7편 게인 | 음량 증폭 배수 |
덕분에 "값 하나 바꾸고 → 바로 말해보고 → 데이터 확인" 을 수십 번 반복할 수 있었어요. 코드를 고치고 재시작했다면 이 튜닝은 며칠이 아니라 몇 주가 걸렸을 거예요.
틀린 것도 데이터로 모았어요
여기에 하나 더. 인식이 틀렸을 때 핫키 한 번으로 그 발화를 파일에 기록하게 해뒀어요. 나중에 그 기록들을 모아 "어떤 단어가 자주 틀리나"를 분석하고 설정을 손봤죠. 6·7편의 "긁어온" 이야기도 이렇게 모은 데이터에서 나온 거예요.
정리 — 자동화는 편의, 설정은 생존
자동화(자동 실행)는 편하려고 붙인 거였고, 설정 철학(config-driven)은 삽질을 버티려고 세운 거였어요. AI(Claude)와 빠르게 만들다 보면 값이 코드 여기저기 박히기 쉬운데, "이건 나중에 바꿀 값인가?" 를 계속 물으면서 설정으로 빼둔 게 이 프로젝트를 끝까지 끌고 온 힘이었어요.
다음 편
이제 도구가 안정됐으니, 부가 기능 하나를 붙입니다. 한국어로 말하면 영어로 바꿔 넣어주는 번역 모드 — 코딩하면서 영어까지 익히는 이야기. → 9편 — 한국어로 말하면 영어로: 코딩하며 영어 배우기
(이전 편: 7편 — 소리를 키워도 안 됐다: 무료 모델의 벽)
댓글
댓글 쓰기