21 Commits

Author SHA1 Message Date
merrycoral
da173d79e9 EventService에 Kafka Producer 연동 추가 및 이벤트 배포 시 메시지 발행 구현
- EventService에 EventKafkaProducer 의존성 주입
- publishEvent 메서드에서 event-created 토픽으로 메시지 발행
- Event 엔티티의 selectedImageId 검증 임시 비활성화
- Kafka 메시지 발행 테스트 결과 문서 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 14:11:07 +09:00
merrycoral
95a419f104 Event 엔티티에 참여자 및 ROI 필드 추가 및 Frontend-Backend 통합
🔧 Backend 변경사항:
- Event 엔티티에 participants, targetParticipants, roi 필드 추가
- EventDetailResponse DTO 및 EventService 매퍼 업데이트
- ROI 자동 계산 비즈니스 로직 구현
- SecurityConfig CORS 설정 추가 (localhost:3000 허용)

🎨 Frontend 변경사항:
- TypeScript EventDetail 타입 정의 업데이트
- Events 페이지 실제 API 데이터 연동 (Mock 데이터 제거)
- 참여자 수 및 ROI 기반 통계 계산 로직 개선

📝 문서:
- Event 필드 추가 및 API 통합 테스트 결과서 작성

 테스트 완료:
- Backend API 응답 검증
- CORS 설정 검증
- Frontend-Backend 통합 테스트 성공

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-29 13:23:09 +09:00
merrycoral
2ca453f89e event 서비스 설정파일 충돌 수정 2025-10-28 13:33:00 +09:00
merrycoral
e2179daaf7 Event Service API 매핑 문서 현행화 (v2.0)
- 구현률 100% 달성: 14개 API 전체 구현 완료
- 신규 구현 API 문서화 (5개):
  * AI 추천 요청/선택 API
  * 이미지 편집 API
  * 배포 채널 선택 API
  * 이벤트 수정 API
- 문서 구조 개선:
  * 미구현 API 계획 섹션 제거
  * 서비스 간 연동 가이드 추가
  * 통합 테스트 시나리오 추가
- Controller 라인 번호 정확도 향상
- .gitignore에 heap dump 파일 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 13:22:22 +09:00
merrycoral
435ba1a86c Event Service 백엔드 테스트 완료
- 백엔드 API 테스트 완료 (8/8 성공)
- Redis, PostgreSQL, Kafka 연동 검증
- ErrorHandlingDeserializer를 통한 Kafka Consumer 안정화
- 테스트 결과 보고서 작성 (develop/dev/test-backend.md)
- 실행 프로파일 추가 (event-service/.run/)
- 설정 일치 검증 완료 (application.yml ↔ run.xml)
2025-10-28 11:45:09 +09:00
merrycoral
d89ee4edf7 Event Service 백엔드 API 개발 및 테스트 완료
- Event Service API 엔드포인트 추가 (이벤트 생성, 조회, 수정, AI 추천, 배포)
- DTO 클래스 추가 (요청/응답 모델)
- Kafka Producer 구성 (AI 작업 비동기 처리)
- Content Service Feign 클라이언트 구성
- Redis 설정 추가 및 테스트 컨트롤러 작성
- Docker Compose 설정 (Redis, Kafka, Zookeeper)
- 백엔드 API 테스트 완료 및 결과 문서 작성
- JWT 테스트 토큰 생성 스크립트 추가
- Event Service 실행 스크립트 추가

테스트 결과: 6개 주요 API 모두 정상 작동 확인

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 17:24:09 +09:00
merrycoral
55e546e0b3 이벤트 API 매핑 문서 업데이트 (v1.1)
- 구현 현황: 7개 → 9개 API (64.3% 구현률)
- 신규 구현 API 추가:
  * POST /api/v1/events/{eventId}/images - 이미지 생성 요청
  * PUT /api/v1/events/{eventId}/images/{imageId}/select - 이미지 선택
- API 경로 버전 명시: /api/events → /api/v1/events
- Event Creation Flow 구현률: 12.5% → 37.5%
- 변경 이력 섹션 추가
2025-10-27 15:24:28 +09:00
Hayoung Song
6728b98878
Merge branch 'develop' into feature/event 2025-10-27 13:43:15 +09:00
kkkd-max
c249d94dd1
Merge branch 'develop' into feature/participation 2025-10-27 13:41:13 +09:00
doyeon
9039424c40 WinnerController Swagger 문서화 추가 및 이벤트/참여자 예외 처리 개선
- WinnerController에 Swagger 어노테이션 추가 (Operation, Parameter, ParameterObject)
- 당첨자 목록 조회 API 기본 정렬 설정 (winnerRank ASC, size=20)
- ParticipationService에서 이벤트/참여자 구분 로직 개선
  - 이벤트 없음: EventNotFoundException 발생
  - 참여자 없음: ParticipantNotFoundException 발생
- EventCacheService 제거 (Redis 기반 검증에서 DB 기반 검증으로 변경)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 11:15:04 +09:00
cherry2250
f838c689ed Content Service 기능 개발 완료
- Redis 연동 구현 (패스워드 인증 지원)
  - RedisConfig에 password 설정 추가
  - RedisGateway에 ContentReader/Writer 인터페이스 구현
  - application-dev.yml 프로파일 추가

- 이미지 삭제 기능 구현
  - DeleteImageUseCase 인터페이스 추가
  - DeleteImageService 구현
  - ContentWriter.deleteImageById() 메서드 추가
  - RedisGateway 및 MockRedisGateway 삭제 로직 구현

- 이미지 필터링 기능 추가
  - GetImageListUseCase에 style, platform 파라미터 추가
  - GetImageListService에 Stream filter 로직 구현
  - ContentController에서 String → Enum 변환 처리

- Mock 서비스 dev 프로파일 지원
  - MockGenerateImagesService dev 프로파일 추가
  - MockRegenerateImageService dev 프로파일 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-27 09:45:21 +09:00
merrycoral
55c7b838dd DDL 외래키 제약조건 주석처리
모든 테이블의 외래키 제약조건을 주석처리:
- event_channels.fk_event_channels_event
- generated_images.fk_generated_images_event
- ai_recommendations.fk_ai_recommendations_event
- jobs.fk_jobs_event

사유:
- JPA에서 연관관계 관리로 충분
- 개발 환경에서 유연성 확보
- 필요시 운영 환경에서 활성화 가능

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 13:28:08 +09:00
merrycoral
860293b2b9 Event Service DDL 최적화 작업 (Medium/Low 우선순위)
Medium 우선순위 수정:
1. created_at, updated_at 기본값 정책 정리
   - DEFAULT CURRENT_TIMESTAMP 제거
   - JPA @CreatedDate/@LastModifiedDate로 관리 명시
   - 주석으로 관리 주체 명확화

2. updated_at Trigger 비활성화
   - JPA 환경에서는 애플리케이션 레벨 관리
   - Trigger 코드는 주석으로 보존 (필요시 활성화 가능)
   - 이중 업데이트 메커니즘 제거로 성능 개선

Low 우선순위 추가:
3. 복합 인덱스 추가 (쿼리 성능 최적화)
   - events: (user_id, status, created_at DESC)
     → 사용자별 상태 필터링 + 최신순 정렬 최적화
   - generated_images: (event_id, is_selected)
     → 이벤트별 선택 이미지 조회 최적화
   - ai_recommendations: (event_id, is_selected)
     → 이벤트별 선택 추천 조회 최적화
   - jobs: (status, created_at DESC)
     → 상태별 최신 작업 조회 최적화

영향:
- JPA와 Database 역할 분담 명확화
- 불필요한 중복 메커니즘 제거
- 쿼리 성능 향상 (복합 인덱스)
- 유지보수성 개선

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 13:25:31 +09:00
merrycoral
c63cf950eb Event Service 엔티티와 DDL 형상 일치화 작업
Critical 및 High 우선순위 이슈 수정:

1. Event 엔티티 nullable 필드 변경
   - eventName: nullable로 변경 (AI 추천 후 설정)
   - startDate, endDate: nullable로 변경 (AI 추천 후 설정)

2. Event.publish() 검증 로직 강화
   - eventName 필수 검증 추가
   - startDate, endDate 필수 검증 추가
   - 기간 유효성 검증 추가 (시작일 <= 종료일)

3. DDL 스키마 수정
   - event_name NOT NULL 제거
   - start_date, end_date NOT NULL 제거
   - chk_event_period 제약조건 수정 (NULL 허용)

4. jobs 테이블 외래키 추가
   - event_id에 대한 외래키 제약조건 추가
   - ON DELETE CASCADE 설정으로 데이터 무결성 보장

영향:
- 이벤트 생성 시 eventName, startDate, endDate를 NULL로 허용
- 배포(publish) 시점에 필수 필드 검증으로 데이터 무결성 보장
- 이벤트 삭제 시 관련 Job 자동 삭제로 고아 레코드 방지

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 13:22:14 +09:00
merrycoral
7b76e573ed Event Service 데이터베이스 테이블 생성 SQL 추가
- events 테이블: 이벤트 마스터
- event_channels 테이블: 배포 채널
- generated_images 테이블: 생성된 이미지
- ai_recommendations 테이블: AI 추천 기획안
- jobs 테이블: 비동기 작업 관리
- updated_at 자동 업데이트 트리거 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 11:23:55 +09:00
merrycoral
5476fe9388 event-service 초기 구현 및 JWT 토큰 매장 ID 추가
- JWT 토큰에 매장 ID(storeId) 필드 추가
- event-service 구현 (이벤트 생성/조회 API)
- hibernate-types 의존성 추가 (UUID 지원)
- API 매핑 문서 추가
- IntelliJ 실행 프로파일 추가

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 10:17:45 +09:00
cherry2250
5e9e1759ce Content Service Phase 2: Port 인터페이스 구현 및 Gateway 통합
Phase 2 작업으로 Clean Architecture의 의존성 역전 원칙을 적용하여
Service 계층이 Port 인터페이스에만 의존하도록 구조를 개선했습니다.

주요 변경사항:
1. Redis DTO 생성 (Phase 1)
   - RedisAIEventData: AI 이벤트 데이터 DTO
   - RedisImageData: 이미지 데이터 DTO
   - RedisJobData: Job 데이터 DTO

2. Port 인터페이스 생성
   - ImageWriter: 이미지 저장 Port
   - ImageReader: 이미지 조회 Port
   - JobWriter: Job 저장 Port
   - JobReader: Job 조회 Port

3. Gateway 구현
   - RedisGateway: 4개 Port 인터페이스 구현 (Production용)
   - MockRedisGateway: 4개 Port 인터페이스 구현 (Local/Test용)
   - JobGateway: 2개 Port 인터페이스 구현 + @Primary 추가 (Phase 3 삭제 예정)

4. 하위 호환성 유지
   - Port 인터페이스에 레거시 메서드 추가 (save, findById)
   - Service 계층 코드 변경 없이 점진적 마이그레이션
   - "Phase 3에서 삭제 예정" 주석 표시

검증 완료:
- 컴파일 성공
- 서비스 정상 시작 (포트 8084)
- API 정상 작동 확인

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 10:14:54 +09:00
cherry2250
6dc6334c75 Content Service Redis 연동 및 테스트 완료
- RedisConfig.java: Production용 Redis 설정 추가
- RedisGateway.java: Redis 읽기/쓰기 Gateway 구현
- application-local.yml: Redis/Kafka auto-configuration 제외 설정
- test-backend.md: 7개 API 테스트 결과서 작성 (100% 성공)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 22:08:17 +09:00
cherry2250
ea82ff4748 add common module 2025-10-23 17:54:36 +09:00
wonho
781c3944ed MQ 설치 결과서 작성 (개발 환경)
- 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>
2025-10-23 16:50:09 +09:00
wonho
860b8cc08f 백킹서비스 및 개발 관련 디렉토리 추가
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-23 13:27:04 +09:00