시스템 아키텍처 (SA)
⚠︎ 지난 판 — 2026-08-11. 현재 판은 여기다. 이 문서는 그때의 기록이고 고치지 않는다.
실행 단위가 하나다. heymoa-server 한 프로세스가 REST 요청과 오래 무는 실시간 연결을 같이 받는다. 앞단은 EC2 위에서 직접 도는 nginx 다.
| 그림이 말하는 것 | 무엇 |
|---|---|
| 서버가 하나다 | REST · STOMP · SSE 가 같은 프로세스로 들어온다. 배포가 곧 진행 중인 회의의 종료다 |
| 앞단이 nginx 다 | EC2 위에서 직접 돌고 인증서는 Certbot 이 갱신한다. 관리 대상이 우리 손에 있다 |
| 비동기 경계가 없다 | 서버가 ai 에 바로 밀어 넣고 ai 가 되부른다. 큐가 없어 실패한 일을 다시 태울 자리도 없다 |
| 데이터베이스가 둘이다 | heymoa 가 원본이고 heymoa_ai 가 파생이다. 이 갈래는 그대로 이어진다 |
| 브라우저가 ai 에 못 닿는다 | 들어오는 길이 nginx 하나뿐이고 그 뒤는 서버 하나다 |
이 형상의 한계
| 무엇 | 왜 |
|---|---|
| 단일 인스턴스가 기능의 조건이다 | 실시간 연결 상태가 그 프로세스 메모리에 산다. 두 대로 늘리면 그 순간 깨진다 |
| 배포가 회의를 끊는다 | 요청 처리와 실시간 연결이 같은 프로세스라 한쪽 때문에 다른 쪽을 재기동하게 된다 |
| 무거운 뒤처리가 요청과 CPU 를 나눠 쓴다 | 인코딩과 분석 제출이 API 응답 시간에 그대로 얹힌다 |
| 실패한 일이 갈 곳이 없다 | 큐도 종착지도 없어 한 번 흘린 잡은 사라진다 |