주요 변경사항:
- event-이미지생성요청.puml: Kafka 제거, ContentService 내부 Job 관리로 변경
- event-이미지결과조회.puml: ContentService 패턴으로 업데이트
- event-AI추천요청.puml: Gateway 패턴 추가, 한글화
아키텍처 구분:
- AI 추천: Kafka 사용 (ai-job-topic)
- 이미지 생성: 내부 Job 관리 (Kafka 사용 안 함)
모든 파일:
- Gateway 패턴 적용
- 레이어 아키텍처 (<<API Layer>>, <<Business Layer>>)
- 한글 요청/응답
- Redis 키 패턴 표준화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- CDNUploader를 BlobStorageUploader로 교체
- SAS Token 기반 접근 제어 추가 (유효기간 7일)
- Blob Storage Retry 로직 추가 (최대 3회, Exponential Backoff)
- 보안 강화: Public Access 비활성화, 읽기 전용 SAS Token
- Redis 캐싱에 Blob SAS URL 저장 (TTL 7일)
- 성능 영향 최소화 (+0.05-0.1초, 전체의 1-2%)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
변경 사항:
- 이벤트생성플로우 outer: FE → Gateway → User Service 호출 패턴 추가
- user-로그인 inner: 전화번호 → 이메일 기반 인증으로 변경
- user-회원가입 inner: 국세청 API 제거, 이메일 중복검사 추가
- event-목적선택 inner: Gateway 경유, 요청/응답 한글화
- ai-트렌드분석및추천 inner: 과거 이벤트 데이터 제거, Timeout 5분으로 변경
- analytics-대시보드조회 inner: Redis TTL 5분 → 1시간으로 변경
모든 파일에 Repository CRUD 작업 한글 설명 적용 (SQL 제거)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
1. 고객참여플로우
- 재추첨 버튼 UI 요소 제거
2. 사용자인증플로우
- 로그인 input 전화번호 → 이메일/비밀번호로 변경
- 회원가입 시 이메일 중복검사 로직 추가
- 전화번호 중복검사도 유지 (이메일 검사 후 수행)
3. 성과분석플로우
- Redis Cache TTL 5분 → 1시간으로 변경
- 배치 수집 주기 10분 → 5분으로 변경
4. 이벤트생성플로우
- 회원/매장정보 조회를 FE에서 직접 수행 후 전달
- 이벤트 초안 데이터 Redis 저장 (draft:event 키)
- 최종 승인 시에만 Event DB에 영구 저장
- AI Service 과거 이벤트 데이터 조회 로직 삭제
- 이미지 생성 요청 FE → Content Service 다이렉트 호출
- Job 상태 확인도 Content Service로 직접 조회
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- User Service 회원정보 조회 로직 추가
- AI Service Redis 저장 및 5분 타임아웃 적용
- Content Service Redis 읽기/쓰기 방식으로 변경
- 이미지 생성 5분 타임아웃 적용
- Redis → Event DB 영구 저장 로직 추가
- Kafka 이미지 생성 topic 구독 제거
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
1. 다중채널배포 outer sequence 수정
- inner sequence 참조 명시 (distribution-다중채널배포.puml)
- Sprint 2 Mock 처리 반영
- API 엔드포인트 일관성 유지
2. 이미지 생성 프로세스 개선
- Content Service: 이미지 생성 후 Kafka 이벤트 발행 추가
- Event Service: 새로운 Kafka Consumer 추가 (event-콘텐츠생성완료구독.puml)
- Event DB에 이미지 URL 영구 저장
- Redis 캐시와 DB 간 데이터 정합성 보장
3. 아키텍처 개선
- 서비스 독립성 향상 (Kafka 기반 이벤트 통신)
- 느슨한 결합 구조
- 데이터 흐름 명확화
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 어댑터 패턴 적용: 단일 Channel Adapter로 모든 채널 API 호출 처리
- Sprint 2 버전 추가: 외부 API 호출 없이 배포 로그만 기록하는 간소화 버전
- 복잡한 Circuit Breaker, Retry 로직 제거 (Sprint 2)
- Mock 데이터로 즉시 성공 응답 반환
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- ContentCreated 이벤트 발행 제거 (Consumer 없음)
- 폴링 방식으로 결과 조회하도록 명시
- 불필요한 Kafka Producer 참여자 제거
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- API 엔드포인트 통일
- AI 추천: POST /api/events/{id}/ai-recommendations
- 이미지 생성: POST /api/events/{id}/content-generation
- 최종 승인: POST /api/events/{id}/publish
- Kafka 이벤트명 구분
- EventDraftCreated: 목적 선택 시 발행
- EventCreated: 최종 승인 시 발행
- 수정 파일
- design/backend/sequence/outer/이벤트생성플로우.puml
- design/backend/sequence/inner/event-목적선택.puml
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 회원가입: 사업자번호 암호화 위치 명시, 성능 지표 추가, 에러 코드 표준화 (USER_001, USER_002)
- 로그인: 비동기 처리 설명 추가, Rate Limiting 보안 강화, 성능 목표 추가, 에러 코드 표준화 (AUTH_001)
- 프로필수정: 트랜잭션 범위 명확화, Optimistic Locking 추가, 동시성 제어, 에러 코드 표준화 (USER_003~005)
- 로그아웃: API Gateway 연계 시나리오, 로그아웃 이벤트 발행, 성능 목표 추가, 에러 코드 표준화 (AUTH_002)
- .gitignore 추가: .npm-global 및 기타 임시 파일 제외
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 4개 주요 비즈니스 플로우 외부 시퀀스 다이어그램 작성
* 사용자인증플로우: 회원가입, 로그인, 로그아웃
* 이벤트생성플로우: AI 추천, 이미지 생성, 다중 채널 배포
* 고객참여플로우: 이벤트 참여, 당첨자 추첨
* 성과분석플로우: 실시간 대시보드 조회
- Event-Driven 아키텍처 반영 (Kafka Event Topics + Job Topics)
- Resilience 패턴 전면 적용 (Circuit Breaker, Retry, Timeout, Fallback)
- Cache-Aside 패턴 적용 (Redis 캐싱)
- 논리 아키텍처 및 유저스토리 기반 설계
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>