- Updated PLAN.md to reflect Step 8 completion - Added OAuth service to current services list - Renumbered subsequent steps - Updated PROGRESS.md with Step 8 details and outcomes - Added new service ports and problem resolutions 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
4.6 KiB
4.6 KiB
프로젝트 개발 계획
프로젝트 목표
마이크로서비스 아키텍처 기반의 확장 가능한 웹 애플리케이션 구축
아키텍처 원칙
- Console as API Gateway: 모든 외부 요청은 Console을 통해 라우팅
- Docker-Only Development: 모든 개발과 실행은 Docker 컨테이너 내에서
- Event-Driven Architecture: Kafka를 통한 서비스 간 비동기 통신
- Service Isolation: 각 서비스는 독립적으로 배포 가능
완료된 단계 (✅)
Phase 1: 기반 구축
- Step 1: 기본 프로젝트 구조 및 Docker 설정
- Step 2: Users 마이크로서비스 구현
- Step 3: MongoDB 통합
- Step 4: Redis 캐싱 시스템
- Step 5: Frontend 스켈레톤 (React + Vite)
- Step 6: JWT 인증 시스템
- Step 6.5: Images 서비스 통합
- Step 7: Kafka 이벤트 시스템
- Step 8: OAuth 2.0 인증 시스템 및 프로필 기능
진행 예정 단계
Phase 2: 이벤트 기반 시스템 확장
Step 9: 고급 이벤트 처리
- 이벤트 소비자 구현
- Console에서 user-events 토픽 구독
- 알림 서비스 이벤트 처리
- Dead Letter Queue 구현
- 이벤트 재시도 메커니즘
- 이벤트 스키마 레지스트리
Step 10: 태스크 큐 시스템
- Kafka 기반 백그라운드 작업 처리
- 이미지 프로세싱 작업 큐
- 이메일 전송 큐
- 배치 작업 스케줄러
Phase 3: 고급 기능
Step 11: 실시간 기능
- WebSocket 통합 (Console)
- 실시간 알림 시스템
- 온라인 사용자 상태 추적
- 실시간 데이터 동기화
Step 12: 파일 시스템
- 파일 업로드 서비스
- S3 호환 객체 스토리지 (MinIO)
- 파일 메타데이터 관리
- 썸네일 생성 서비스
Step 13: 검색 시스템
- Elasticsearch 통합
- 전문 검색 기능
- 자동완성 기능
- 검색 분석 및 최적화
Phase 4: 프로덕션 준비
Step 14: 모니터링 및 로깅
- Prometheus 메트릭 수집
- Grafana 대시보드
- ELK Stack 로깅
- 분산 추적 (Jaeger)
Step 15: 보안 강화
- Rate Limiting
- API Key 관리
- OAuth2 통합
- 데이터 암호화
Step 16: 테스트 및 CI/CD
- 단위 테스트 작성
- 통합 테스트
- E2E 테스트
- GitHub Actions CI/CD
Step 17: 성능 최적화
- 데이터베이스 인덱싱
- 쿼리 최적화
- 캐싱 전략 개선
- CDN 통합
서비스 구성
현재 서비스
-
Console (API Gateway)
- Frontend: React SPA
- Backend: FastAPI, JWT 인증
-
Users Service
- User CRUD
- MongoDB 저장소
- Kafka 이벤트 발행
- 프로필 정보 관리 (사진, bio, location 등)
-
Images Service
- 이미지 프록시
- 캐싱 시스템
- WebP 변환
-
OAuth Service
- OAuth 2.0 인증 서버
- 애플리케이션 등록 및 관리
- 토큰 발급 및 검증
- SSO 지원 (Google, GitHub, SAML)
- 스코프 기반 권한 관리
계획된 서비스
-
Notification Service
- 이메일/SMS 전송
- 푸시 알림
- 알림 히스토리
-
Analytics Service
- 사용자 행동 분석
- 비즈니스 메트릭
- 리포트 생성
-
Payment Service
- 결제 처리
- 구독 관리
- 청구서 생성
기술 스택 로드맵
현재 사용 중
- FastAPI, React, TypeScript
- MongoDB, Redis
- Apache Kafka
- Docker, Docker Compose
도입 예정
- Elasticsearch (검색)
- MinIO (객체 스토리지)
- Prometheus/Grafana (모니터링)
- Jaeger (분산 추적)
- Nginx (리버스 프록시)
개발 일정
2025 Q1
- Phase 2 완료 (이벤트 시스템)
- Phase 3 시작 (고급 기능)
2025 Q2
- Phase 3 완료
- Phase 4 시작 (프로덕션 준비)
2025 Q3
- Phase 4 완료
- 프로덕션 배포
성공 지표
-
기술적 지표
- 서비스 응답 시간 < 200ms
- 시스템 가용성 > 99.9%
- 초당 처리 가능 요청 > 1000
-
개발 지표
- 테스트 커버리지 > 80%
- 빌드 시간 < 5분
- 배포 시간 < 10분
-
확장성 지표
- 수평 확장 가능
- 서비스 독립 배포
- 무중단 업데이트
리스크 및 대응 방안
-
복잡도 증가
- 대응: 점진적 구현, 문서화 강화
-
성능 병목
- 대응: 프로파일링, 캐싱 전략
-
데이터 일관성
- 대응: 이벤트 소싱, SAGA 패턴
-
보안 취약점
- 대응: 정기 보안 감사, 자동화된 스캔