아키텍처 — HeyMoa
갱신일 2026-08-10 HeyMoa를 네 개의 축(IA · AA · SA · CA)으로 하나씩 본다. 같은 사실을 두 문서에 적지 않고, 필요하면 링크한다. 데이터 소유권은 네 축을 가로지르므로 DA로, 물리 스키마는 ERD로 따로 뺐다.
| 문서 | 정본으로 갖는 것 | 이럴 때 읽는다 |
|---|---|---|
| information-architecture.md | 화면 트리 · URL · 정보 계층(workspace > project > note) · 권한 · 상태가 화면을 가르는 축 | 화면·경로를 늘릴 때 / 무엇이 무엇 안에 있나 |
| application-architecture.md | UI ↔ API ↔ 저장소 대응 · 세 서비스의 내부 구성 · 의존 방향과 그것을 강제하는 장치 · 계약 동기화 사슬 | 코드를 어디에 넣나 / 이 import가 허용되나 |
| system-architecture.md | 액터 · 컨테이너 · 외부 시스템 · 경계별 프로토콜과 인증 · 런타임 흐름 3종 · 시간 상수 · 확장 천장 | 무엇이 무엇과 붙어 있나 / 왜 여기서 끊겼나 |
| cloud-architecture.md | AWS 실측 형상 · 네트워크 격리 · 배포 경로와 롤백 · 관측 · 비용 | 어디에 떠 있나 / 배포를 건드리기 전에 |
| data-architecture.md | 원본과 파생의 경계 · 무엇을 지워도 되나 · 재생성 경로 | 데이터가 어디서 나서 어디로 흐르나 |
| erd.md | 테이블 23개 · 외래키 · 제약 · 삭제 사슬 · 마이그레이션 이력 | 이 칼럼이 무엇을 담나 / 이걸 지우면 뭐가 따라 지워지나 |
이 문서들을 읽기 전 알아야 할 것
MVP 1은 완성된 제품이 아니라 PoC·베타테스트였다. 기능이 구현돼 있다는 사실이 제품 방향의 근거가 되지 않는다. 이 문서들은 지금 무엇이 어떻게 서 있는가를 적은 것이지, 그대로 유지하자는 주장이 아니다.
각 문서는 세 종류를 구분해서 적는다.
| 종류 | 무엇 | 표기 |
|---|---|---|
| 확인한 사실 | 코드·설정·실측으로 확인한 것 | 표와 본문 |
| 설계 전제 | 그렇게 생긴 이유로 합의한 것 | "설계 전제" 절 — 뒤집힐 조건을 함께 |
| 미확인 | 지금 아는 것만으로는 단정할 수 없는 것 | "미확인" 절 — 추정을 사실로 승격하지 않는다 |
지금 열려 있는 큰 것 넷
| # | 무엇 | 어디에 |
|---|---|---|
| ① | AI 산출물의 원문 근거 연결이 아직 없다 — 제품 원칙 2이자 차별화의 본체. 설계(APP-391)는 끝났고 구현 전 | IA §7 |
| ② | server → ai 경계에 애플리케이션 인증이 없다. 지금은 보안그룹 하나가 막고 있다 | SA §4·§12 · CA §4 |
| ③ | 앱 인스턴스 1개가 기능 정확성의 조건이다 (JVM 내부 STOMP 브로커) | SA §10 |
| ④ | IaC가 없다. 운영 형상이 콘솔에만 있어 재생성이 전부 수작업이다 | CA §3·§8 |
여기 없는 것
| 찾는 것 | 어디로 |
|---|---|
| API·이벤트 스키마 (정본) | contracts/ |
| 계약을 어떻게 쓰는가 (식별자·오류·멱등성) | interfaces/ |
| 도메인 규칙·권한·회의 상태 (정본) | domain/domain-model.md |
| 제품 결정 원장 (P-xxx · S-xxx) | Linear · 팀 내부 문서 |
| 이슈 단위 판단 기록 | 각 저장소 docs/work/ |