Conversation
Walkthrough이 변경은 member 설정 업데이트에서 두 개의 파라미터를 제거한 리팩토링입니다. Member.updateSetting() 시그니처에서 Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes 🚥 Pre-merge checks | ✅ 1 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (1 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java (1)
174-189:isPushNotificationEnabledparameter에 대한 assertion이 누락되었습니다.Line 181에서
isPushNotificationEnabled = false를 설정하고updateSetting에 전달하지만, assertion에서 이 값이 올바르게 적용되었는지 검증하지 않습니다. 테스트의 완전성을 위해 해당 parameter도 검증해야 합니다.💚 Proposed fix
// Then Assertions.assertThat(member.getGrade()).isEqualTo(grade); Assertions.assertThat(member.isVip()).isEqualTo(isVip); + Assertions.assertThat(member.isPushNotificationEnabled()).isEqualTo(isPushNotificationEnabled); }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (5)
src/main/java/deepple/deepple/member/command/application/member/AdminMemberService.javasrc/main/java/deepple/deepple/member/command/domain/member/Member.javasrc/main/java/deepple/deepple/member/presentation/member/dto/AdminMemberSettingUpdateRequest.javasrc/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.javasrc/test/java/deepple/deepple/member/command/domain/member/MemberTest.java
💤 Files with no reviewable changes (3)
- src/main/java/deepple/deepple/member/command/domain/member/Member.java
- src/main/java/deepple/deepple/member/presentation/member/dto/AdminMemberSettingUpdateRequest.java
- src/main/java/deepple/deepple/member/command/application/member/AdminMemberService.java
🧰 Additional context used
📓 Path-based instructions (2)
**/*.java
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.java: Use JPA with QueryDSL for persistence, MySQL with Flyway for migrations, JWT tokens and Spring Security for authentication, and Redis with Redisson for caching in Java Spring Boot files
Implement domain events using the local event system (Events.java) for domain event handling, with events published and handled within the same process by event handlers in the infrastructure layer
Use Lombok to reduce boilerplate in Java domain entities
Use value objects heavily for domain modeling in Java domain layer
Abstract all external API calls through domain interfaces in Java code
Project uses Java 21 language features in all Java code
Files:
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.javasrc/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java
⚙️ CodeRabbit configuration file
**/*.java: In addition to existing rules, review code based on: - Domain-driven design: enforce aggregate boundaries and immutable value objects - Clean code: single responsibility methods, meaningful names, no duplication - Object-oriented programming: SOLID(SRP, OCP, LSP, ISP, DIP) principles - Performance and scalability: consider high traffic scenarios, database query optimization, proper indexing, caching strategies, connection pool management, and async processing where appropriate
Files:
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.javasrc/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java
**/*Test.java
📄 CodeRabbit inference engine (CLAUDE.md)
Write unit tests for domain objects and value objects, integration tests for repositories using
@DataJpaTest, and service tests using mocks and test slices, following the same package structure as main code
Files:
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.javasrc/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: test
🔇 Additional comments (2)
src/test/java/deepple/deepple/member/command/application/member/AdminMemberServiceTest.java (2)
31-45: LGTM!테스트가 새로운 API signature와 올바르게 정렬되었습니다.
AdminMemberSettingUpdateRequest의 3-parameter constructor 사용과updateSettingverification이 PR objectives에 맞게 수정되었습니다.
47-61: LGTM!Exception test case도 업데이트된 DTO constructor를 올바르게 사용하고 있습니다.
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
Test results780 tests 780 ✅ 14s ⏱️ Results for commit d1b9ce2. ♻️ This comment has been updated with latest results. |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In `@src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java`:
- Around line 191-194: The test uses identity comparison (==) for Long in
eventsMock.verify for Events.raise, which can misrepresent intent; update the
predicate in MemberTest (the Events.raise verification for
MemberSettingUpdatedEvent) to perform value equality for getMemberId() — e.g.,
use Objects.equals(((MemberSettingUpdatedEvent) event).getMemberId(), memberId)
or compare primitive long values via .longValue() — so the assertion checks the
Long value equality rather than reference identity.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java
🧰 Additional context used
📓 Path-based instructions (2)
**/*.java
📄 CodeRabbit inference engine (CLAUDE.md)
**/*.java: Use JPA with QueryDSL for persistence, MySQL with Flyway for migrations, JWT tokens and Spring Security for authentication, and Redis with Redisson for caching in Java Spring Boot files
Implement domain events using the local event system (Events.java) for domain event handling, with events published and handled within the same process by event handlers in the infrastructure layer
Use Lombok to reduce boilerplate in Java domain entities
Use value objects heavily for domain modeling in Java domain layer
Abstract all external API calls through domain interfaces in Java code
Project uses Java 21 language features in all Java code
Files:
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java
⚙️ CodeRabbit configuration file
**/*.java: In addition to existing rules, review code based on: - Domain-driven design: enforce aggregate boundaries and immutable value objects - Clean code: single responsibility methods, meaningful names, no duplication - Object-oriented programming: SOLID(SRP, OCP, LSP, ISP, DIP) principles - Performance and scalability: consider high traffic scenarios, database query optimization, proper indexing, caching strategies, connection pool management, and async processing where appropriate
Files:
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java
**/*Test.java
📄 CodeRabbit inference engine (CLAUDE.md)
Write unit tests for domain objects and value objects, integration tests for repositories using
@DataJpaTest, and service tests using mocks and test slices, following the same package structure as main code
Files:
src/test/java/deepple/deepple/member/command/domain/member/MemberTest.java
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: test
✏️ Tip: You can disable this entire section by setting review_details to false in your review settings.
* 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 (#417) * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 (#418) - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * [Fix] : Change Response Type --------- Co-authored-by: Ha In Ho <hainho9704@gmail.com> Co-authored-by: Hoyun Jung <65343417+stemmmm@users.noreply.github.com>
* fix: 환경 변수 수정 * feat: 기본 데이터 마이그레이션 설정 및 Flyway 구성 개선 - 인터뷰 질문, 미션, 데이팅 시험 관련 기본 데이터 마이그레이션 추가 - Flyway 설정 로직에 비활성화 처리 조건 추가 - Hibernate DDL 설정 방식 변경 및 스키마 생성 스크립트 설정 추가 #377 * fix: flyway 수동 config 삭제 * feat: metric export 설정 * feat: metric export 설정 수정 * feat: k6 기반 성능 테스트 추가 - k6 테스트 설정 파일 및 API 테스트 스크립트 추가 - 테스트 환경 변수 및 부하 프로파일 설정 - README에 k6 관련 문서 및 실행 방법 추가 #394 * feat: k6 테스트 데이터 생성 스크립트 추가 - 성능 테스트용 SQL 데이터 생성 스크립트 추가 - 회원, 소개, 좋아요, 매칭, 알림 데이터 포함 - 데이터 검증 및 README 파일 추가 #394 * chore: 주석 수정 및 불필요한 파일 제거 #394 * feat: k6 테스트 스크립트 작성 #394 * feat: db connection pool 설정 추가 #394 * fix: annotationProcessor 버전 명시 * feat: rps 수정 #394 * feat: rps 수정 #394 * feat: 알림 테스트 로직 및 k6 스크립트 추가 - FCM 제외 테스트 로직 `sendWithoutPush` 추가 - k6 부하 테스트 스크립트 구현 - 테스트용 SQL 데이터 초기화/생성 로직 추가 #394 * [Fix] Bizgo 설정 변경 및 ContactType Validation 변경. (#401) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change Requestbody for Bizgo (#402) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] Bizgo & Match (#403) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for Bizgo (#404) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for checking. * feat: 알림 전송 로직 리팩토링 및 테스트 최적화 - 데이터 접근 레이어 분리 (Reader/Writer) 및 저장 로직 개선 - FCM 예외 처리 로깅 추가 - 알림 템플릿 정보 전송 방식 변경 - k6 부하 테스트 시 최대 VU 증가 - notification_preferences 테이블에 인덱스 추가 - 테스트 코드 리팩토링 및 명확한 실패 상태 로깅 적용 #394 * feat: CircuitBreaker 상태 로그 추가 - CircuitBreaker 상태 전환, 실패율 초과, 느린응답률 초과 이벤트에 대한 로그 등록 - 이벤트 리스너 등록 로직 추가 및 @slf4j 어노테이션 적용 * feat: 알림 테이블 인덱스 추가 - 알림 테이블에 복합 인덱스 추가 (receiverId, deletedAt, id) - 데이터베이스 및 엔티티 매핑 수정 #394 * feat: Bizgo API 에러 로깅 추가 - Bizgo API 응답에서 에러 상태 코드 및 본문 로깅 추가 - 예외 발생 시 디버깅 용이하도록 개선 #409 * fix: ScreeningRejectedEvent의 이유 필드 로직 수정 - rejectionReason 문자열 대신 getDescription() 메서드 사용하도록 변경 #414 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * feat: 프로필 교환 요청 시 하트 차감하도록 프로필 교환 요청 이벤트 핸들러 추가 * feat: 하트 사용 정책 디폴트 데이터 삽입 스크립트 추가 * feat: 하트 구매 옵션 디폴트 데이터 삽입 스크립트 추가 * feat: 프로필 교환 요청 트랜잭션 타입 추 * test: 프로필 교환 테스트 수정 * feat: 앱스토어 영수증 검증 방식 storekit2에 맞게 jws 검증 방식으로 변 * feat: 환불 도메인 구 * feat: 애플 환불 알림 처리 기능 구현 * feat: 환불 목록 조회 api 구현 * feat: 테스트 코드 오타 수 * docs: notification type 설명 주석 추가 * feat: refund transaction id unique 제약 조건 추가 * feat: refundedAt Loe 나노초 누락 수정 * feat: refund 가 order 직접 의존 제 * feat: 테스트 코드에 이벤트 mock 추가 * feat: 테스트 코드에 클래스명 오타 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * [Fix] : Change Response Type (#419) * 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 (#417) * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 (#418) - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * [Fix] : Change Response Type --------- Co-authored-by: Ha In Ho <hainho9704@gmail.com> Co-authored-by: Hoyun Jung <65343417+stemmmm@users.noreply.github.com> * feat: 매칭 메시지 조회할때 응답 메시지도 추가 * feat: 에러코드 추 * feat: 소개 프로필에서 인터뷰 제외 및 나이, 지역, 닉네임 정보 추 * test: 변경 사항 테스트 코드에 반영 * feat: 엑세스 토큰 갱신 시 205 응답하도록 수 * [Fix] 작은 이슈들 수정 (지역, 문자 내용) (#430) * Fix : Wrong Region name * Fix : Wrong Message Content * feat: 회원 데이터 초기화 SQL 수정 #433 * feat(auth): refresh 토큰 처리 및 인증 로직 개선 - 리프레시 토큰 예외 처리 추가 (누락, 만료, 유효하지 않음) - 토큰 갱신 API 구현 및 토큰 유효성 확인 로직 변경 - AuthService와 관련 테스트 간소화 - TokenPairResponse 및 TokenRefreshResponse 도입 - StatusType에 만료된 액세스 토큰 상태 추가 - 불필요한 토큰 재발급 코드 제거 - 인증 필터에서 리프레시 토큰 처리 로직 삭제 #435 * feat(auth): 인증 필터 코드 간소화 - 리프레시 토큰 처리 및 재발급 관련 코드 제거 - `TokenFilter`의 불필요한 의존성 삭제 - 인증 로직 단순화 및 불필요한 메서드 제거 * feat: dating exam answer에 personality type 컬럼 추가 * feat: 기존 dating exam 관련 데이터 제거 및 새로운 데이터 추가 * feat: dating exam submit result 추가 * feat: submit 할때 dating exam submit result 업데이트 로직 추가 * feat: 가장 count 높은 personality type 조회 api 구현 * feat: 동시성 문제 방지 비관적락 조회 메서드 추가 및 사용 * feat: Flyway script ddl dml 분리 * feat: 비관적락 사용 테스트 코드에 반 * feat: dating exam 데이터 수정 * feat: 대표 성격 유형 조회 API에 선택한 항목 count 추 * docs: plan 문서 추가 #438 * feat(payment): Google Play 인프라 및 결제 기능 구현 - Google Play 클라이언트 및 API 검증 로직 추가 - Google Play 서비스 계정 인증 구성 - Google Play 결제 영수증 검증 및 이벤트 처리 로직 구현 - Google Play 관련 예외, DTO, 설정, 테스트 코드 추가 #438 * test: productId 정규화에 맞춰 OrderServiceTest stub 수정 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: .dockerignore에 Google Play 서비스 계정 키 예외 추가 * chore: CD 디버깅을 위한 임시 로그 추가 --------- Co-authored-by: hainho <hainho9704@gmail.com> Co-authored-by: 공태현 <dev0taehyeon@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: 환경 변수 수정 * feat: 기본 데이터 마이그레이션 설정 및 Flyway 구성 개선 - 인터뷰 질문, 미션, 데이팅 시험 관련 기본 데이터 마이그레이션 추가 - Flyway 설정 로직에 비활성화 처리 조건 추가 - Hibernate DDL 설정 방식 변경 및 스키마 생성 스크립트 설정 추가 #377 * fix: flyway 수동 config 삭제 * feat: metric export 설정 * feat: metric export 설정 수정 * feat: k6 기반 성능 테스트 추가 - k6 테스트 설정 파일 및 API 테스트 스크립트 추가 - 테스트 환경 변수 및 부하 프로파일 설정 - README에 k6 관련 문서 및 실행 방법 추가 #394 * feat: k6 테스트 데이터 생성 스크립트 추가 - 성능 테스트용 SQL 데이터 생성 스크립트 추가 - 회원, 소개, 좋아요, 매칭, 알림 데이터 포함 - 데이터 검증 및 README 파일 추가 #394 * chore: 주석 수정 및 불필요한 파일 제거 #394 * feat: k6 테스트 스크립트 작성 #394 * feat: db connection pool 설정 추가 #394 * fix: annotationProcessor 버전 명시 * feat: rps 수정 #394 * feat: rps 수정 #394 * feat: 알림 테스트 로직 및 k6 스크립트 추가 - FCM 제외 테스트 로직 `sendWithoutPush` 추가 - k6 부하 테스트 스크립트 구현 - 테스트용 SQL 데이터 초기화/생성 로직 추가 #394 * [Fix] Bizgo 설정 변경 및 ContactType Validation 변경. (#401) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change Requestbody for Bizgo (#402) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] Bizgo & Match (#403) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for Bizgo (#404) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for checking. * feat: 알림 전송 로직 리팩토링 및 테스트 최적화 - 데이터 접근 레이어 분리 (Reader/Writer) 및 저장 로직 개선 - FCM 예외 처리 로깅 추가 - 알림 템플릿 정보 전송 방식 변경 - k6 부하 테스트 시 최대 VU 증가 - notification_preferences 테이블에 인덱스 추가 - 테스트 코드 리팩토링 및 명확한 실패 상태 로깅 적용 #394 * feat: CircuitBreaker 상태 로그 추가 - CircuitBreaker 상태 전환, 실패율 초과, 느린응답률 초과 이벤트에 대한 로그 등록 - 이벤트 리스너 등록 로직 추가 및 @slf4j 어노테이션 적용 * feat: 알림 테이블 인덱스 추가 - 알림 테이블에 복합 인덱스 추가 (receiverId, deletedAt, id) - 데이터베이스 및 엔티티 매핑 수정 #394 * feat: Bizgo API 에러 로깅 추가 - Bizgo API 응답에서 에러 상태 코드 및 본문 로깅 추가 - 예외 발생 시 디버깅 용이하도록 개선 #409 * fix: ScreeningRejectedEvent의 이유 필드 로직 수정 - rejectionReason 문자열 대신 getDescription() 메서드 사용하도록 변경 #414 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * feat: 프로필 교환 요청 시 하트 차감하도록 프로필 교환 요청 이벤트 핸들러 추가 * feat: 하트 사용 정책 디폴트 데이터 삽입 스크립트 추가 * feat: 하트 구매 옵션 디폴트 데이터 삽입 스크립트 추가 * feat: 프로필 교환 요청 트랜잭션 타입 추 * test: 프로필 교환 테스트 수정 * feat: 앱스토어 영수증 검증 방식 storekit2에 맞게 jws 검증 방식으로 변 * feat: 환불 도메인 구 * feat: 애플 환불 알림 처리 기능 구현 * feat: 환불 목록 조회 api 구현 * feat: 테스트 코드 오타 수 * docs: notification type 설명 주석 추가 * feat: refund transaction id unique 제약 조건 추가 * feat: refundedAt Loe 나노초 누락 수정 * feat: refund 가 order 직접 의존 제 * feat: 테스트 코드에 이벤트 mock 추가 * feat: 테스트 코드에 클래스명 오타 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * [Fix] : Change Response Type (#419) * 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 (#417) * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 (#418) - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * [Fix] : Change Response Type --------- Co-authored-by: Ha In Ho <hainho9704@gmail.com> Co-authored-by: Hoyun Jung <65343417+stemmmm@users.noreply.github.com> * feat: 매칭 메시지 조회할때 응답 메시지도 추가 * feat: 에러코드 추 * feat: 소개 프로필에서 인터뷰 제외 및 나이, 지역, 닉네임 정보 추 * test: 변경 사항 테스트 코드에 반영 * feat: 엑세스 토큰 갱신 시 205 응답하도록 수 * [Fix] 작은 이슈들 수정 (지역, 문자 내용) (#430) * Fix : Wrong Region name * Fix : Wrong Message Content * feat: 회원 데이터 초기화 SQL 수정 #433 * feat(auth): refresh 토큰 처리 및 인증 로직 개선 - 리프레시 토큰 예외 처리 추가 (누락, 만료, 유효하지 않음) - 토큰 갱신 API 구현 및 토큰 유효성 확인 로직 변경 - AuthService와 관련 테스트 간소화 - TokenPairResponse 및 TokenRefreshResponse 도입 - StatusType에 만료된 액세스 토큰 상태 추가 - 불필요한 토큰 재발급 코드 제거 - 인증 필터에서 리프레시 토큰 처리 로직 삭제 #435 * feat(auth): 인증 필터 코드 간소화 - 리프레시 토큰 처리 및 재발급 관련 코드 제거 - `TokenFilter`의 불필요한 의존성 삭제 - 인증 로직 단순화 및 불필요한 메서드 제거 * feat: dating exam answer에 personality type 컬럼 추가 * feat: 기존 dating exam 관련 데이터 제거 및 새로운 데이터 추가 * feat: dating exam submit result 추가 * feat: submit 할때 dating exam submit result 업데이트 로직 추가 * feat: 가장 count 높은 personality type 조회 api 구현 * feat: 동시성 문제 방지 비관적락 조회 메서드 추가 및 사용 * feat: Flyway script ddl dml 분리 * feat: 비관적락 사용 테스트 코드에 반 * feat: dating exam 데이터 수정 * feat: 대표 성격 유형 조회 API에 선택한 항목 count 추 * docs: plan 문서 추가 #438 * feat(payment): Google Play 인프라 및 결제 기능 구현 - Google Play 클라이언트 및 API 검증 로직 추가 - Google Play 서비스 계정 인증 구성 - Google Play 결제 영수증 검증 및 이벤트 처리 로직 구현 - Google Play 관련 예외, DTO, 설정, 테스트 코드 추가 #438 * test: productId 정규화에 맞춰 OrderServiceTest stub 수정 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: .dockerignore에 Google Play 서비스 계정 키 예외 추가 * chore: CD 디버깅을 위한 임시 로그 추가 * ci: cd-dev 트리거를 workflow_run에서 push로 변경 --------- Co-authored-by: hainho <hainho9704@gmail.com> Co-authored-by: 공태현 <dev0taehyeon@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: 환경 변수 수정 * feat: 기본 데이터 마이그레이션 설정 및 Flyway 구성 개선 - 인터뷰 질문, 미션, 데이팅 시험 관련 기본 데이터 마이그레이션 추가 - Flyway 설정 로직에 비활성화 처리 조건 추가 - Hibernate DDL 설정 방식 변경 및 스키마 생성 스크립트 설정 추가 #377 * fix: flyway 수동 config 삭제 * feat: metric export 설정 * feat: metric export 설정 수정 * feat: k6 기반 성능 테스트 추가 - k6 테스트 설정 파일 및 API 테스트 스크립트 추가 - 테스트 환경 변수 및 부하 프로파일 설정 - README에 k6 관련 문서 및 실행 방법 추가 #394 * feat: k6 테스트 데이터 생성 스크립트 추가 - 성능 테스트용 SQL 데이터 생성 스크립트 추가 - 회원, 소개, 좋아요, 매칭, 알림 데이터 포함 - 데이터 검증 및 README 파일 추가 #394 * chore: 주석 수정 및 불필요한 파일 제거 #394 * feat: k6 테스트 스크립트 작성 #394 * feat: db connection pool 설정 추가 #394 * fix: annotationProcessor 버전 명시 * feat: rps 수정 #394 * feat: rps 수정 #394 * feat: 알림 테스트 로직 및 k6 스크립트 추가 - FCM 제외 테스트 로직 `sendWithoutPush` 추가 - k6 부하 테스트 스크립트 구현 - 테스트용 SQL 데이터 초기화/생성 로직 추가 #394 * [Fix] Bizgo 설정 변경 및 ContactType Validation 변경. (#401) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change Requestbody for Bizgo (#402) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] Bizgo & Match (#403) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for Bizgo (#404) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for checking. * feat: 알림 전송 로직 리팩토링 및 테스트 최적화 - 데이터 접근 레이어 분리 (Reader/Writer) 및 저장 로직 개선 - FCM 예외 처리 로깅 추가 - 알림 템플릿 정보 전송 방식 변경 - k6 부하 테스트 시 최대 VU 증가 - notification_preferences 테이블에 인덱스 추가 - 테스트 코드 리팩토링 및 명확한 실패 상태 로깅 적용 #394 * feat: CircuitBreaker 상태 로그 추가 - CircuitBreaker 상태 전환, 실패율 초과, 느린응답률 초과 이벤트에 대한 로그 등록 - 이벤트 리스너 등록 로직 추가 및 @slf4j 어노테이션 적용 * feat: 알림 테이블 인덱스 추가 - 알림 테이블에 복합 인덱스 추가 (receiverId, deletedAt, id) - 데이터베이스 및 엔티티 매핑 수정 #394 * feat: Bizgo API 에러 로깅 추가 - Bizgo API 응답에서 에러 상태 코드 및 본문 로깅 추가 - 예외 발생 시 디버깅 용이하도록 개선 #409 * fix: ScreeningRejectedEvent의 이유 필드 로직 수정 - rejectionReason 문자열 대신 getDescription() 메서드 사용하도록 변경 #414 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * feat: 프로필 교환 요청 시 하트 차감하도록 프로필 교환 요청 이벤트 핸들러 추가 * feat: 하트 사용 정책 디폴트 데이터 삽입 스크립트 추가 * feat: 하트 구매 옵션 디폴트 데이터 삽입 스크립트 추가 * feat: 프로필 교환 요청 트랜잭션 타입 추 * test: 프로필 교환 테스트 수정 * feat: 앱스토어 영수증 검증 방식 storekit2에 맞게 jws 검증 방식으로 변 * feat: 환불 도메인 구 * feat: 애플 환불 알림 처리 기능 구현 * feat: 환불 목록 조회 api 구현 * feat: 테스트 코드 오타 수 * docs: notification type 설명 주석 추가 * feat: refund transaction id unique 제약 조건 추가 * feat: refundedAt Loe 나노초 누락 수정 * feat: refund 가 order 직접 의존 제 * feat: 테스트 코드에 이벤트 mock 추가 * feat: 테스트 코드에 클래스명 오타 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * [Fix] : Change Response Type (#419) * 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 (#417) * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 (#418) - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * [Fix] : Change Response Type --------- Co-authored-by: Ha In Ho <hainho9704@gmail.com> Co-authored-by: Hoyun Jung <65343417+stemmmm@users.noreply.github.com> * feat: 매칭 메시지 조회할때 응답 메시지도 추가 * feat: 에러코드 추 * feat: 소개 프로필에서 인터뷰 제외 및 나이, 지역, 닉네임 정보 추 * test: 변경 사항 테스트 코드에 반영 * feat: 엑세스 토큰 갱신 시 205 응답하도록 수 * [Fix] 작은 이슈들 수정 (지역, 문자 내용) (#430) * Fix : Wrong Region name * Fix : Wrong Message Content * feat: 회원 데이터 초기화 SQL 수정 #433 * feat(auth): refresh 토큰 처리 및 인증 로직 개선 - 리프레시 토큰 예외 처리 추가 (누락, 만료, 유효하지 않음) - 토큰 갱신 API 구현 및 토큰 유효성 확인 로직 변경 - AuthService와 관련 테스트 간소화 - TokenPairResponse 및 TokenRefreshResponse 도입 - StatusType에 만료된 액세스 토큰 상태 추가 - 불필요한 토큰 재발급 코드 제거 - 인증 필터에서 리프레시 토큰 처리 로직 삭제 #435 * feat(auth): 인증 필터 코드 간소화 - 리프레시 토큰 처리 및 재발급 관련 코드 제거 - `TokenFilter`의 불필요한 의존성 삭제 - 인증 로직 단순화 및 불필요한 메서드 제거 * feat: dating exam answer에 personality type 컬럼 추가 * feat: 기존 dating exam 관련 데이터 제거 및 새로운 데이터 추가 * feat: dating exam submit result 추가 * feat: submit 할때 dating exam submit result 업데이트 로직 추가 * feat: 가장 count 높은 personality type 조회 api 구현 * feat: 동시성 문제 방지 비관적락 조회 메서드 추가 및 사용 * feat: Flyway script ddl dml 분리 * feat: 비관적락 사용 테스트 코드에 반 * feat: dating exam 데이터 수정 * feat: 대표 성격 유형 조회 API에 선택한 항목 count 추 * docs: plan 문서 추가 #438 * feat(payment): Google Play 인프라 및 결제 기능 구현 - Google Play 클라이언트 및 API 검증 로직 추가 - Google Play 서비스 계정 인증 구성 - Google Play 결제 영수증 검증 및 이벤트 처리 로직 구현 - Google Play 관련 예외, DTO, 설정, 테스트 코드 추가 #438 * test: productId 정규화에 맞춰 OrderServiceTest stub 수정 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: .dockerignore에 Google Play 서비스 계정 키 예외 추가 * chore: CD 디버깅을 위한 임시 로그 추가 * ci: cd-dev 트리거를 workflow_run에서 push로 변경 * ci: develop push 트리거 제거 (cd-dev로 이관) * chore: Google Play 결제 플로우 디버깅 로그 추가 * chore: Google Play 결제 디버깅 로그 제거 --------- Co-authored-by: hainho <hainho9704@gmail.com> Co-authored-by: 공태현 <dev0taehyeon@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* fix: 환경 변수 수정 * feat: 기본 데이터 마이그레이션 설정 및 Flyway 구성 개선 - 인터뷰 질문, 미션, 데이팅 시험 관련 기본 데이터 마이그레이션 추가 - Flyway 설정 로직에 비활성화 처리 조건 추가 - Hibernate DDL 설정 방식 변경 및 스키마 생성 스크립트 설정 추가 #377 * fix: flyway 수동 config 삭제 * feat: metric export 설정 * feat: metric export 설정 수정 * feat: k6 기반 성능 테스트 추가 - k6 테스트 설정 파일 및 API 테스트 스크립트 추가 - 테스트 환경 변수 및 부하 프로파일 설정 - README에 k6 관련 문서 및 실행 방법 추가 #394 * feat: k6 테스트 데이터 생성 스크립트 추가 - 성능 테스트용 SQL 데이터 생성 스크립트 추가 - 회원, 소개, 좋아요, 매칭, 알림 데이터 포함 - 데이터 검증 및 README 파일 추가 #394 * chore: 주석 수정 및 불필요한 파일 제거 #394 * feat: k6 테스트 스크립트 작성 #394 * feat: db connection pool 설정 추가 #394 * fix: annotationProcessor 버전 명시 * feat: rps 수정 #394 * feat: rps 수정 #394 * feat: 알림 테스트 로직 및 k6 스크립트 추가 - FCM 제외 테스트 로직 `sendWithoutPush` 추가 - k6 부하 테스트 스크립트 구현 - 테스트용 SQL 데이터 초기화/생성 로직 추가 #394 * [Fix] Bizgo 설정 변경 및 ContactType Validation 변경. (#401) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change Requestbody for Bizgo (#402) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] Bizgo & Match (#403) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for Bizgo (#404) * [Refac] : When Match Request or Response, Don't Check Primary Contatct Type * [fix] : Change BaseURL * [Fix] : Using Enum * [Refac] Change BizgoRequestBody * [Fix] : Use Record for serialization * [Refac] : Add Logging for checking. * feat: 알림 전송 로직 리팩토링 및 테스트 최적화 - 데이터 접근 레이어 분리 (Reader/Writer) 및 저장 로직 개선 - FCM 예외 처리 로깅 추가 - 알림 템플릿 정보 전송 방식 변경 - k6 부하 테스트 시 최대 VU 증가 - notification_preferences 테이블에 인덱스 추가 - 테스트 코드 리팩토링 및 명확한 실패 상태 로깅 적용 #394 * feat: CircuitBreaker 상태 로그 추가 - CircuitBreaker 상태 전환, 실패율 초과, 느린응답률 초과 이벤트에 대한 로그 등록 - 이벤트 리스너 등록 로직 추가 및 @slf4j 어노테이션 적용 * feat: 알림 테이블 인덱스 추가 - 알림 테이블에 복합 인덱스 추가 (receiverId, deletedAt, id) - 데이터베이스 및 엔티티 매핑 수정 #394 * feat: Bizgo API 에러 로깅 추가 - Bizgo API 응답에서 에러 상태 코드 및 본문 로깅 추가 - 예외 발생 시 디버깅 용이하도록 개선 #409 * fix: ScreeningRejectedEvent의 이유 필드 로직 수정 - rejectionReason 문자열 대신 getDescription() 메서드 사용하도록 변경 #414 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * feat: 프로필 교환 요청 시 하트 차감하도록 프로필 교환 요청 이벤트 핸들러 추가 * feat: 하트 사용 정책 디폴트 데이터 삽입 스크립트 추가 * feat: 하트 구매 옵션 디폴트 데이터 삽입 스크립트 추가 * feat: 프로필 교환 요청 트랜잭션 타입 추 * test: 프로필 교환 테스트 수정 * feat: 앱스토어 영수증 검증 방식 storekit2에 맞게 jws 검증 방식으로 변 * feat: 환불 도메인 구 * feat: 애플 환불 알림 처리 기능 구현 * feat: 환불 목록 조회 api 구현 * feat: 테스트 코드 오타 수 * docs: notification type 설명 주석 추가 * feat: refund transaction id unique 제약 조건 추가 * feat: refundedAt Loe 나노초 누락 수정 * feat: refund 가 order 직접 의존 제 * feat: 테스트 코드에 이벤트 mock 추가 * feat: 테스트 코드에 클래스명 오타 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 예외 발생해도 input stream 닫을 수 있도록 수정 * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * [Fix] : Change Response Type (#419) * 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 (#417) * feat: 어드민 멤버 세팅 수정 api에서 프로필 공개 여부, 활동 상태 설정 제거 * test: 어드민 멤버 세팅 수정 시 푸시 알림 설정 변경 이벤트 발행 여부 검증 추가 * feat: Notification 서비스에 테스트용 sendWithoutPush 기능 추가 (#418) - sendWithoutPush 메서드 도입으로 FCM을 사용하지 않는 알림 전송 지원 - NotificationController에서 sendWithoutPush 호출로 로직 수정\\ #394 * [Fix] : Change Response Type --------- Co-authored-by: Ha In Ho <hainho9704@gmail.com> Co-authored-by: Hoyun Jung <65343417+stemmmm@users.noreply.github.com> * feat: 매칭 메시지 조회할때 응답 메시지도 추가 * feat: 에러코드 추 * feat: 소개 프로필에서 인터뷰 제외 및 나이, 지역, 닉네임 정보 추 * test: 변경 사항 테스트 코드에 반영 * feat: 엑세스 토큰 갱신 시 205 응답하도록 수 * [Fix] 작은 이슈들 수정 (지역, 문자 내용) (#430) * Fix : Wrong Region name * Fix : Wrong Message Content * feat: 회원 데이터 초기화 SQL 수정 #433 * feat(auth): refresh 토큰 처리 및 인증 로직 개선 - 리프레시 토큰 예외 처리 추가 (누락, 만료, 유효하지 않음) - 토큰 갱신 API 구현 및 토큰 유효성 확인 로직 변경 - AuthService와 관련 테스트 간소화 - TokenPairResponse 및 TokenRefreshResponse 도입 - StatusType에 만료된 액세스 토큰 상태 추가 - 불필요한 토큰 재발급 코드 제거 - 인증 필터에서 리프레시 토큰 처리 로직 삭제 #435 * feat(auth): 인증 필터 코드 간소화 - 리프레시 토큰 처리 및 재발급 관련 코드 제거 - `TokenFilter`의 불필요한 의존성 삭제 - 인증 로직 단순화 및 불필요한 메서드 제거 * feat: dating exam answer에 personality type 컬럼 추가 * feat: 기존 dating exam 관련 데이터 제거 및 새로운 데이터 추가 * feat: dating exam submit result 추가 * feat: submit 할때 dating exam submit result 업데이트 로직 추가 * feat: 가장 count 높은 personality type 조회 api 구현 * feat: 동시성 문제 방지 비관적락 조회 메서드 추가 및 사용 * feat: Flyway script ddl dml 분리 * feat: 비관적락 사용 테스트 코드에 반 * feat: dating exam 데이터 수정 * feat: 대표 성격 유형 조회 API에 선택한 항목 count 추 * docs: plan 문서 추가 #438 * feat(payment): Google Play 인프라 및 결제 기능 구현 - Google Play 클라이언트 및 API 검증 로직 추가 - Google Play 서비스 계정 인증 구성 - Google Play 결제 영수증 검증 및 이벤트 처리 로직 구현 - Google Play 관련 예외, DTO, 설정, 테스트 코드 추가 #438 * test: productId 정규화에 맞춰 OrderServiceTest stub 수정 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * fix: .dockerignore에 Google Play 서비스 계정 키 예외 추가 * chore: CD 디버깅을 위한 임시 로그 추가 * ci: cd-dev 트리거를 workflow_run에서 push로 변경 * ci: develop push 트리거 제거 (cd-dev로 이관) * chore: Google Play 결제 플로우 디버깅 로그 추가 * chore: Google Play 결제 디버깅 로그 제거 * feat(community): 셀프 소개 이미지 업로드 기능 추가 - 셀프 소개에 이미지 URL 필드 도입 - Pre-signed URL 생성 API 구현 #442 --------- Co-authored-by: hainho <hainho9704@gmail.com> Co-authored-by: 공태현 <dev0taehyeon@gmail.com> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary by CodeRabbit
✏️ Tip: You can customize this high-level summary in your review settings.
노트