- Spring Boot 설정 관리 가이드 추가
- 개발 워크플로우 핵심 원칙 추가
- 설정 파일 구조 및 환경 변수 관리 방법 명시
- 컴파일 및 서버 시작 프로세스 정리
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- 공통 OpenAPI 3.0.3 컨벤션 문서 작성 (design/backend/api/API_CONVENTION.md)
- 7개 서비스 API 명세서 표준화 완료:
* User Service (8081)
* Event Service (8080)
* Content Service (8082)
* AI Service (8083)
* Participation Service (8084)
* Distribution Service (8085)
* Analytics Service (8086)
주요 변경사항:
- API 경로에서 /api prefix 제거 (/api/users → /users)
- 서버 URL 패턴 통일 (Local → Dev → Prod)
- 연락처 정보 표준화 (Digital Garage Team)
- ErrorResponse 스키마 통일 (error → message, details 추가)
- securitySchemes 이름 통일 (BearerAuth)
- 포트 번호 명확히 할당
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- User Service API (7 APIs, 31KB)
- Event Service API (14 APIs, 41KB)
- AI Service API (3 APIs, 26KB)
- Content Service API (6 APIs, 37KB)
- Distribution Service API (2 APIs, 21KB)
- Participation Service API (5 APIs, 25KB)
- Analytics Service API (4 APIs, 28KB)
총 41개 API 엔드포인트, 6,912줄, OpenAPI 3.0 표준 준수
유저스토리 기반 설계, JWT 인증, Kafka/Redis 통합 문서화
API 설계서 작성 완료 (종합 가이드 포함)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Kafka 브로커 정보 추가 (4.230.50.63:9092)
- Consumer Group ID 설정 (ai, analytic)
- Spring Boot 연결 설정 예시 포함
- 토픽 설정 및 연결 테스트 방법 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
변경 이유:
- outer sequence 기준으로 이미지 생성은 Content Service 담당
- 파일명을 서비스 소유권에 맞게 변경
변경 파일:
- event-이미지생성요청.puml → content-이미지생성요청.puml
- event-이미지결과조회.puml → content-이미지결과조회.puml
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
주요 변경사항:
- 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>
주요 변경사항:
- User Service 사업자번호 검증 로직 삭제 (국세청 API 제거)
- User Service → Event Service 회원정보 제공 API 추가
- Redis 기반 서비스 간 데이터 공유 구조로 변경
- AI Service → Redis 저장 → Content Service 읽기
- Participation Service 참여자 목록 조회 기능 추가
- WinnerSelected 이벤트 토픽 제거 (3개 토픽으로 축소)
- Redis → Event DB 저장 로직 추가 (이벤트 publish 시)
- AI/Content Service Timeout 5분으로 변경 (30초/20초 → 300초)
🤖 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>
- ParticipationRegisterRequest 스키마 수정
- 패턴: ^\d{3}-\d{4}-\d{4}$ → ^\d{10,11}$
- 설명 및 예시 업데이트
- 요청 예시 전화번호 형식 변경
- 검색 파라미터 설명 및 예시 업데이트
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- ai-job → ai 이벤트 생성
- image-job → 이미지 생성
- logical-architecture.md 및 .mmd 파일 업데이트
- 테스트용 스크립트 및 파일 정리
🤖 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>