techjuicelab
‹ 블로그

개발일지

BriefMe 개발기 — 회의록 서비스를 월 5달러로 직접 굴리기

2026년 7월 20일 · 2분 읽기

#BriefMe#개발기#AI

BriefMe는 한국어와 영어가 섞인 회의를 녹음하면 실시간 자막·번역·누적 요약을 보여주고, 끝나면 화자를 분리한 대화록과 회의자료(요약·결정사항·액션아이템)를 만들어 Notion에 정리해 주는 웹앱입니다. 출발점은 단순했습니다 — 잘 쓰던 상용 회의록 앱을, 개인 사용 규모에서는 API를 직접 붙이는 게 훨씬 싸겠다는 계산. 그래서 월 운영비 5달러 이내를 목표로 범위를 좁혀 시작했습니다.

가장 큰 리스크는 코드가 아니라 설계에서 풀렸다

착수 전 검토에서 최상위 리스크는 "iPhone Safari에서 2~3시간 브라우저 녹음이 버틸까"였습니다. 결론은 기술로 싸우지 않기 — iPhone에서는 기본 음성 메모로 녹음한 파일을 가져오는 것을 기본 경로로 삼고, 실시간 자막은 Mac 브라우저에서만 제공하기로 했습니다. 치명적 리스크 하나가 설계 결정으로 사라졌습니다.

운영이 가르쳐 준 버그들

기획 다음 날 MVP 전체 구현 커밋이 올라갔고 열흘간 60커밋을 쌓았지만, 진짜 이야기는 버그에 있습니다.

  • 재배포마다 데이터가 사라지던 사건 — 데이터 경로에 절대경로를 줬는데 코드가 상대경로처럼 이어붙여, 영속 볼륨 바깥에 쓰고 있었습니다. 경로 해석기를 고치고 재배포 후 데이터 생존을 검증했습니다.
  • 마지막 3~5초 유실 — 로컬에서는 아무리 돌려도 재현되지 않아, 실환경 데이터를 뒤져 녹음이 정확히 15초 청크 경계에서 끝난다는 걸 찾아냈습니다. 서버가 '중간 누락'만 감지하고 '마지막 청크 미도착'은 모르는 구조적 사각지대였고, 종료 시 시퀀스 대조와 재업로드 안전망으로 막았습니다.
  • iPhone에서 재생이 00:00에 멈추던 문제 — 브라우저 녹음이 만드는 webm에는 길이 메타데이터가 없어 iOS 오디오 태그가 거부합니다. 전사가 끝나면 ffmpeg로 m4a로 변환하는 것으로 해결했습니다.
  • 실시간 자막이 안 뜨던 원인은 STT SDK의 콜백을 생성자가 아니라 start()에 넘겨야 세션에 연결된다는 함정이었습니다.

에이전트 감사로 다듬기

MVP 이후에는 AI 에이전트 여러 개를 동원해 코드베이스를 다각도로 감사하고, 확인된 항목을 우선순위대로 하나씩 구현→검증→배포하는 루프로 다듬었습니다. 백업은 SQLite의 VACUUM INTO 방식을 골라 매일 자동 백업과 복원 사이클까지 검증했고, 전사가 끝난 청크를 정리해 회의당 저장 용량을 정확히 절반으로 줄였습니다.

지금은

가족과 함께 실사용하며 비공개로 운영 중입니다. 공개 시점이 되면 이곳에서 가장 먼저 소식을 전할게요.

이런 프로젝트, 같이 만들어볼까요?

웹 서비스 · 도구 · 자동화 의뢰를 받고 있습니다.

문의 보내기