- 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>
185 lines
4.6 KiB
Markdown
185 lines
4.6 KiB
Markdown
# 프로젝트 개발 계획
|
|
|
|
## 프로젝트 목표
|
|
마이크로서비스 아키텍처 기반의 확장 가능한 웹 애플리케이션 구축
|
|
|
|
## 아키텍처 원칙
|
|
1. **Console as API Gateway**: 모든 외부 요청은 Console을 통해 라우팅
|
|
2. **Docker-Only Development**: 모든 개발과 실행은 Docker 컨테이너 내에서
|
|
3. **Event-Driven Architecture**: Kafka를 통한 서비스 간 비동기 통신
|
|
4. **Service Isolation**: 각 서비스는 독립적으로 배포 가능
|
|
|
|
## 완료된 단계 (✅)
|
|
|
|
### Phase 1: 기반 구축
|
|
- [x] Step 1: 기본 프로젝트 구조 및 Docker 설정
|
|
- [x] Step 2: Users 마이크로서비스 구현
|
|
- [x] Step 3: MongoDB 통합
|
|
- [x] Step 4: Redis 캐싱 시스템
|
|
- [x] Step 5: Frontend 스켈레톤 (React + Vite)
|
|
- [x] Step 6: JWT 인증 시스템
|
|
- [x] Step 6.5: Images 서비스 통합
|
|
- [x] Step 7: Kafka 이벤트 시스템
|
|
- [x] 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 통합
|
|
|
|
## 서비스 구성
|
|
|
|
### 현재 서비스
|
|
1. **Console** (API Gateway)
|
|
- Frontend: React SPA
|
|
- Backend: FastAPI, JWT 인증
|
|
|
|
2. **Users Service**
|
|
- User CRUD
|
|
- MongoDB 저장소
|
|
- Kafka 이벤트 발행
|
|
- 프로필 정보 관리 (사진, bio, location 등)
|
|
|
|
3. **Images Service**
|
|
- 이미지 프록시
|
|
- 캐싱 시스템
|
|
- WebP 변환
|
|
|
|
4. **OAuth Service**
|
|
- OAuth 2.0 인증 서버
|
|
- 애플리케이션 등록 및 관리
|
|
- 토큰 발급 및 검증
|
|
- SSO 지원 (Google, GitHub, SAML)
|
|
- 스코프 기반 권한 관리
|
|
|
|
### 계획된 서비스
|
|
5. **Notification Service**
|
|
- 이메일/SMS 전송
|
|
- 푸시 알림
|
|
- 알림 히스토리
|
|
|
|
6. **Analytics Service**
|
|
- 사용자 행동 분석
|
|
- 비즈니스 메트릭
|
|
- 리포트 생성
|
|
|
|
7. **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 완료
|
|
- 프로덕션 배포
|
|
|
|
## 성공 지표
|
|
|
|
1. **기술적 지표**
|
|
- 서비스 응답 시간 < 200ms
|
|
- 시스템 가용성 > 99.9%
|
|
- 초당 처리 가능 요청 > 1000
|
|
|
|
2. **개발 지표**
|
|
- 테스트 커버리지 > 80%
|
|
- 빌드 시간 < 5분
|
|
- 배포 시간 < 10분
|
|
|
|
3. **확장성 지표**
|
|
- 수평 확장 가능
|
|
- 서비스 독립 배포
|
|
- 무중단 업데이트
|
|
|
|
## 리스크 및 대응 방안
|
|
|
|
1. **복잡도 증가**
|
|
- 대응: 점진적 구현, 문서화 강화
|
|
|
|
2. **성능 병목**
|
|
- 대응: 프로파일링, 캐싱 전략
|
|
|
|
3. **데이터 일관성**
|
|
- 대응: 이벤트 소싱, SAGA 패턴
|
|
|
|
4. **보안 취약점**
|
|
- 대응: 정기 보안 감사, 자동화된 스캔 |