diff --git a/ideas/250807_서비스_재구조화_계획.md b/ideas/250807_서비스_재구조화_계획.md index c66eb21..2d2fae2 100644 --- a/ideas/250807_서비스_재구조화_계획.md +++ b/ideas/250807_서비스_재구조화_계획.md @@ -63,11 +63,10 @@ - API 게이트웨이 (사용자 요청 → 로빙 라우팅) - 인증 체크 (auth-server 연동) - 사용자-로빙 매핑 - - 세션 관리 #### robing-control (구 frontend-base 일부) - **위치**: 51123 서버 -- **포트**: 8100 (새 포트) +- **포트**: 9023 - **역할**: - 전체 시스템 모니터링 통합 - admin 대시보드 UI 제공 @@ -77,7 +76,7 @@ #### robing-monitor (신규) - **위치**: 51124 서버 -- **포트**: 8200 +- **포트**: 9024 - **역할**: - 24서버 로컬 모니터링 - 로빙 상태 체크 @@ -101,23 +100,31 @@ sequenceDiagram A->>U: Google OAuth U->>A: 인증 완료 A->>G: 토큰 + user_id - G->>F: 세션 생성 + G->>F: user_id + robing_port F->>U: 로그인 완료 + Note over F: localStorage에 robing_port 저장 + U->>F: 채팅 입력 - F->>G: /api/chat (세션) - G->>R: 라우팅 (user_id 포함) + F->>G: /api/chat (user_id) + G->>R: 라우팅 (port 8001) R->>G: 응답 G->>F: 응답 F->>U: 표시 ``` +**수정된 흐름 설명:** +1. 로그인 시 DB 조회: user_id → robing_port (8001) +2. Frontend가 robing_port를 localStorage에 저장 +3. 이후 모든 요청은 해당 포트로 자동 라우팅 +4. 세션 없이도 1:1 매핑 유지 + ### 3단계: 데이터베이스 통합 #### 단기 계획 - auth-server PostgreSQL을 메인 DB로 사용 - user_id를 모든 서비스에서 통일 -- 세션 정보는 Redis 추가 (선택사항) +- user_id → robing_port 매핑 테이블 관리 #### 장기 계획 - 로빙별 SQLite → PostgreSQL 마이그레이션 @@ -155,20 +162,20 @@ GET /api/health # 헬스체크 ## 구현 우선순위 -### Phase 1 (1주) +### Phase 1 1. robing-gateway 기본 구조 생성 2. 인증 흐름 연결 3. 단순 라우팅 (모든 사용자 → rb10508_test) -### Phase 2 (1주) +### Phase 2 1. robing-monitor 구현 2. robing-control 분리 3. 모니터링 대시보드 연결 -### Phase 3 (2주) +### Phase 3 1. 사용자-로빙 매핑 로직 2. 워크스페이스 기반 할당 -3. 세션 관리 고도화 +3. 로빙 포트 자동 할당 ### Phase 4 (선택) 1. 간단한 관제 기능 @@ -195,8 +202,8 @@ GET /api/health # 헬스체크 ## 리스크 및 대응 -1. **개발 기간** - - 리스크: 4주 이상 소요 가능 +1. **개발 복잡도** + - 리스크: 서비스 분리로 인한 복잡도 - 대응: Phase별 점진적 구현 2. **기존 서비스 중단**