Skip to content

Conversation

@github-actions
Copy link
Contributor

Release admin v1.0.7

  • Version: 1.0.7
  • Created at: 2026.01.11
  • Auto-generated release PR

This PR was automatically created by version-check workflow.

Whale0928 and others added 30 commits December 31, 2025 13:43
- 회원가입 API 문서 추가
- Help API 목록 조회, 상세 조회, 답변 등록 문서 추가
- 잘못된 URI 및 필드명 수정
- ImageUploadLog 엔티티, 레포지토리, 서비스 구현
- PreSigned URL 생성 시 업로드 로그 자동 저장 (로그인 사용자)
- MinIO TestContainer 추가 및 테스트 구성
- 미사용 S3 이벤트 리스너 코드 제거
- DTO에서 엔티티 의존성 제거 (아키텍처 규칙 준수)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ImageUploadLogRequest.toEntity() 메서드 제거
- 엔티티 생성 로직을 ImageUploadLogService.saveAsync()로 이동
- 아키텍처 규칙 준수: DTO는 Entity에 의존하지 않음

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ImageUploadStatus를 domain -> constant 패키지로 이동
- ImageUploadLogItem을 dto -> dto.response 패키지로 이동
- 관련 import 문 수정

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ImageUploadLog (상태 기반) -> ResourceLog (이벤트 기반) 리팩토링
- ResourceEventType enum 추가 (CREATED, ACTIVATED, INVALIDATED, DELETED)
- ResourceCommandService로 추상화하여 향후 다른 리소스 타입 확장 가능
- 이벤트 로그 방식으로 변경하여 리소스 이력 추적 용이
- 기존 ImageUploadLog 관련 파일 삭제
- 테스트 코드 갱신

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ImageUploadControllerTest 삭제 (Mock 기반 컨트롤러 테스트 제거)
- CoreImageUploadServiceTest + ImageUploadServiceTest 통합
- Mock 대신 Fake/Stub 기반 테스트로 통일

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ImageUploadIntegrationTest 추가
- 인증된 사용자의 PreSigned URL 생성 테스트
- 다중 이미지 업로드 URL 생성 테스트
- 기본값 처리 테스트

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- MockMvc -> MockMvcTester 마이그레이션
- ResourceLog 저장 검증 테스트 추가 (Awaitility 사용)
- 비동기 로그 저장 대기 처리 개선

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ImageResourceActivatedEvent 이벤트 클래스 추가
- ResourceEventListener로 이벤트 수신 및 ResourceLog ACTIVATED 상태 저장
- ReviewService, HelpService, BusinessSupportService, UserBasicService에 이벤트 발행 추가
- ImageUtil.extractResourceKey() 메서드 추가
- 서비스별 이벤트 발행 및 ResourceLog 상태 변경 단위 테스트 추가

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 리뷰 생성 시 이미지 포함되면 ACTIVATED 로그 저장 검증
- 이미지 없이 리뷰 생성 시 ACTIVATED 이벤트 미발생 검증
- CREATED -> ACTIVATED 전체 흐름 테스트 추가
- Awaitility를 사용한 비동기 이벤트 대기

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 단위 테스트 패턴: Fake/Stub, InMemory 레포지토리
- 통합 테스트 패턴: IntegrationTestSupport, Awaitility
- 이벤트 기반 아키텍처 가이드 추가
- 서브모듈 초기화 명령어 및 설명 추가
- @DisplayName 형식 명시 (~할 때 ~한다)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TastingTagRepository 도메인 인터페이스 생성
- JpaTastingTagRepository JPA 구현체 생성
- TastingTagService 스켈레톤 생성 (Aho-Corasick 적용 예정)
- ahocorasick 라이브러리 의존성 추가 (0.6.3)
- ApplicationReadyEvent + @scheduled로 Trie 초기화
- extractTagNames: 1차 Aho-Corasick 매칭 + 2차 한글 경계 검증
- InMemoryTastingTagRepository Fake 구현체 추가
- extractTagNames 메서드 테스트 케이스 작성
  - 정상 매칭, 부분 매칭 제외, 영문/대소문자, 중복 제거 등
- 리뷰 문장 테스트 케이스 10개 추가 (한글/영문)
- 부분 매칭 제외 케이스 5개 추가
- @NullAndEmptySource로 null/빈문자열 테스트 통합
- TastingTagService public 메서드에 @transactional 추가
- ServiceLayerRules에 ahocorasick 패키지 허용 추가
- GET /api/v1/tasting-tags/extract?text={text}
- 문장에서 테이스팅 태그 목록 추출
- extractTags → getExtractedTags
- AlcoholMetadataTestFactory 생성 (Region, Distillery, TastingTag)
- TastingTagControllerRestDocsTest API 문서화 테스트
- TastingTagIntegrationTest 통합 테스트 4개 케이스
hgkim-openerd and others added 21 commits January 14, 2026 10:55
기존 git 브랜치 기반 스킵 로직을 환경(environment) 기반으로 변경

- 문제: dev 환경도 main 브랜치에서 배포되어 gitBranch가 "main"이 됨
- 해결: SPRING_PROFILES_ACTIVE 기반 environment 값으로 판단
- dev 환경에서만 디스코드 리포트 발송 스킵

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
리뷰 수정 시 클라이언트가 전체 이미지 목록(기존+신규)을 전송하면
모든 이미지에 대해 ACTIVATED 이벤트가 재발행되어 중복 로그가 저장되는 문제 수정

- ResourceLogRepository에 existsByResourceKeyAndReferenceIdAndEventType 메서드 추가
- ResourceCommandService.activateImageResource에서 중복 체크 후 스킵 로직 추가
- 단위 테스트 및 통합 테스트 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
ReviewModifyRequest의 status가 @NotNull 필수값이므로 테스트에 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- TastingTagService에서 isWholeWord 필터 제거
- "초콜릿향", "바닐라빈" 등에서도 태그 추출 가능
- 단위/통합 테스트 케이스 수정
이미지 리소스 생명주기 관리를 위한 INVALIDATED/DELETED 이벤트
인프라를 추가합니다. 서비스에서의 실제 사용은 향후 구현 예정.

- ImageResourceInvalidatedEvent 이벤트 클래스 추가
- ImageResourceDeletedEvent 이벤트 클래스 추가
- ResourceEventListener에 신규 이벤트 핸들러 추가
- ResourceCommandService에 invalidate/delete 메서드 추가
- 단위 테스트에 삭제 상태 전이 테스트 추가

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- ReviewService: 리뷰 수정/삭제 시 제거된 이미지 INVALIDATED 처리
- HelpService: 문의 수정/삭제 시 제거된 이미지 INVALIDATED 처리
- BusinessSupportService: 제휴/광고 수정/삭제 시 제거된 이미지 INVALIDATED 처리
- UserBasicService: 프로필 이미지 교체 시 기존 이미지 INVALIDATED 처리
- 통합 테스트 3개 추가 (이미지 교체, 삭제, 전체 교체 시나리오)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- MaliciousPathPattern Enum 추가 (40개 악성 경로 패턴 정의)
- SecurityConfig에 denyAll() 패턴 등록
- Spring Security Filter 레벨에서 조기 차단하여 NoResourceFoundException 로그 노이즈 제거

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SecurityConfig.kt에 MaliciousPathPattern.getAllPatterns() denyAll() 추가
- product-api와 동일한 악성 경로 차단 정책 적용

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- product-api에서 batch 모듈 분리 계획 정리
- K3s 배포 리소스 추가 필요 사항 정리
- GitHub Actions 워크플로우 추가 고려 사항 정리
- 현재 배치 작업 목록 및 의존성 분석 결과 포함

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 3개 배포 모듈 구조 다이어그램 추가 (product/admin/batch)
- 공유 라이브러리 (mono/observability) 구조 명시
- 헬스체크: 톰캣 사용 (포트 8082), actuator 활용
- 배치 전용 application.yml 설정 예시 추가
- 결정/미결정 사항 정리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- 프리티어 DB 제약 고려한 커넥션 풀 배분 가이드
- product-api 10~15, admin-api 5, batch-app 3 권장
- batch-app HikariCP 설정 예시 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- BatchApplication 클래스 생성
- Spring Batch 및 Quartz 의존성 추가
- 빌드 설정 및 JAR 생성 규칙 수정
- 배치 모듈 설정 리팩토링 및 환경별 프로파일 설정 추가
- Quartz Job 관련 클래스 리팩토링 및 Dockerfile 추가
- ECR 관련 리소스 제거
- aws-credentials.sops.yaml 파일 참조 제거
- SecretStore 리소스 제거 및 트레이싱 설정 비활성화
- eso-secret-store 리소스 참조 제거
- 불필요한 배치 관련 클래스 및 설정 파일 제거
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants