HeyMoa 기술 문서
회의를 녹음하면 실시간으로 전사되고, 끝나면 개요·액션아이템·결정으로 정리된다. 정리된 회의록 위에서 챗봇에게 물어보고, 답을 Linear 이슈나 GitHub 이슈로 바로 내보낸다.
이 사이트는 지금 무엇이 어떻게 서 있는가를 적은 것이다. 기능이 구현돼 있다는 사실이 제품 방향의 근거가 되지는 않는다 — MVP 1은 완성된 제품이 아니라 PoC·베타테스트였다.
시스템
heymoa-web
Next.js 16 · React 19
브라우저 능력(마이크·AudioWorklet)이 필요하고 화면 수명주기가 서버와 다르다. 영속 저장소를 갖지 않는다.
heymoa-server
Kotlin · Spring Boot 3.5 · 도메인 12
인증·권한·도메인 상태가 한 곳에 모여야 감사와 잠금이 성립한다. public edge 전부를 혼자 진다.
heymoa-ai
Python · FastAPI · LangGraph
LLM 호출은 초 단위로 느리고 실패율이 다르다. 202로 끊고 callback으로 되돌려준다.
어디부터 읽나
| 궁금한 것 | 문서 |
|---|---|
| 사용자가 무엇을 보나, URL은 어떻게 생겼나 | /architecture/information-architecture |
| 코드를 어디에 넣나, 이 import가 허용되나 | /architecture/application-architecture |
| 무엇이 무엇과 붙어 있나, 왜 여기서 끊겼나 | /architecture/system-architecture |
| 어디에 떠 있나, 배포는 어떻게 되나 | /architecture/cloud-architecture |
| API·이벤트 스키마 | /contracts/ |
| 계약을 어떻게 쓰나 (식별자·오류·멱등성·SSE 종료) | /interfaces/ |
| 도메인 용어와 권한 | /domain/domain-model |
| 왜 그렇게 정했나 | /adr/ |
| 누가 무엇을 맡나 | /team/ |
지금 열려 있는 큰 것 넷
| # | 무엇 | 어디에 |
|---|---|---|
| ① | AI 산출물의 원문 근거 연결이 아직 없다 — 설계(APP-391)는 끝났고 구현 전 | 문서 |
| ② | server → ai 경계에 애플리케이션 인증이 없다 — 지금은 보안그룹 하나가 막고 있다 | 문서 |
| ③ | 앱 인스턴스 1개가 기능 정확성의 조건이다 — JVM 내부 STOMP 브로커 — 스케일아웃하면 팬아웃이 반쪽 난다 | 문서 |
| ④ | IaC가 없다 — `heymoa-infra`는 legacy이고 실제 형상과 다르다 | 문서 |
추정을 사실로 승격하지 않는다. 각 문서는 확인한 사실 / 설계 전제(뒤집힐 조건과 함께) / 미확인을 구분해서 적는다.