2026 04 24 deploy#225
Open
chungjeongsu wants to merge 30 commits into
Open
Conversation
* [#177] feat: Invoice 도메인 Transfer 네이밍 전환 * [#177] feat: Transfer 요청 계약 및 ID 매퍼 전환 * [#177] feat: Transfer 도메인 엔티티/서비스 및 응답 모델 정렬 * [#177] fix: Transfer 테스트/문서 스키마 정합 및 회귀 수정 * [#177] fix: Transfer 입력 검증 및 정산 일관성 규칙 강화 * [#177] fix: Transfer INVALID_SETTLED_AMOUNT 통합/API 테스트 보강 * [#177] fix: Transfer 테스트 DisplayName 정리 및 바디 포맷 보정 * 그룹 세부 정보 조회 여행 정보 수정 (#180) * [#176] 결제 패키지 및 테스트 제거 * [#176] PLAN·DRAFT·커밋 게이트 규칙 강화 * [#179] 그룹 비멤버 상세 조회 시 여행일정은 개수만 반환하도록 리팩터링 * [#179] GroupDetailResponseDto 생성자 명확화 및 그룹 상세 문서 travelCount 반영 * [#177] refactor: Transfer 멤버 검증 로직 공통화 * [#177] refactor: Transfer title/description 필드 제거 --------- Co-authored-by: chungjeongsu <143079383+chungjeongsu@users.noreply.github.com>
* [#188] docs: 여행 메타 정보 조회 API 문서 추가 * [#188] test: 여행 메타 정보 조회 Controller 테스트 및 REST Docs 추가 * [#188] test: 여행 메타 정보 조회 통합 테스트 추가 * [#188] feat: 여행 메타 정보 조회 API 엔드포인트 추가 * [#188] feat: 여행 메타 정보 조회 응답 DTO 추가 * [#188] feat: 여행 메타 정보 조회 서비스 로직 추가 * [#188] test: 여행 메타 정보 조회 서비스 테스트 추가 * [#188] feat: 여행 메타 정보 조회를 위한 멤버 목록 조회 쿼리 추가 * [#187] docs: 중복된 문서화 제거
* [#190] feat: Transfer 완료 처리 메서드 추가 * [#190] feat: 이체 완료 처리 에러 코드 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] feat: TransferUser 정산 완료 여부 확인 및 처리 메서드 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] feat: TransferUser 포함 비관적 락 조회 쿼리 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] feat: 개별 멤버 이체 완료 처리 및 전체 완료 시 DONE 전환 로직 구현 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] feat: 이체 완료 처리 API 엔드포인트 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] test: 이체 완료 API 컨트롤러 단위 테스트 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] test: 이체 완료 서비스 단위 테스트 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * [#190] test: 이체 완료 API 통합 테스트 추가 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* [#192] feat: jwt 의존성 추가 * [#192] feat: 세션 인증을 JWT 인프라로 전환 - 세션/쿠키 기반 인증 컴포넌트(SessionManager, Login/Csrf interceptor, CookieManager) 제거 - JwtManager, JwtAuthenticationInterceptor, JwtUserArgumentResolver, JwtProperties 추가 - @LoginRequired/@loginuser를 jwt 패키지로 이동하고 WebConfig를 JWT 체계로 교체 - AuthService/AuthController를 Authorization 헤더(Bearer) 발급 방식으로 정리 - publicUuid 처리 컴포넌트를 auth.crypto 패키지로 재배치하고 Caffeine 캐시 적용 - CORS exposed header를 Authorization으로 변경하고 JWT 설정 키를 profile yml에 반영 - RequestMdcFilter/logback에서 세션 식별자 의존 제거 * [#192] test: JWT 헤더 기반으로 테스트 전면 정비 - 세션/쿠키/CSRF 전용 테스트 제거 및 JWT 인증 흐름 중심으로 재작성 - AuthController/AuthService/AuthIntegration 테스트를 Authorization 헤더 계약 기준으로 수정 - File/Group/JoinApply/Transfer/Travel/User 컨트롤러 테스트를 JWT 전환에 맞게 정리 - ControllerTest/WebMvcDocsTest에서 JwtManager mocking 및 JWT 인터셉터/리졸버 주입 반영 - JwtManager, UuidCrypto, UserIdentityResolver, UuidToUserIdCache 신규 단위 테스트 추가 - application-test.yml에 JWT 테스트 설정 추가 * [#192] docs: JWT 인증 헤더 기준으로 문서 정렬 - auth/travel/user 문서에서 세션/CSRF 중심 설명을 정리하고 JWT 인증 전제로 갱신 - group/transfer 문서 상단에 Authorization: Bearer <accessToken> 헤더 규칙 명시 - index 문서에 API 인증 방식이 JWT 헤더 기반임을 반영 * [#192] chore: DRAFT 수명주기 규칙을 JOB 단위로 정리 - AGENTS.md의 DRAFT Lifecycle Rule을 TASK 즉시 삭제에서 JOB 마지막 병합 후 일괄 삭제로 변경 - VIBE_PROMPT.md 작업 정책 문구를 동일 규칙으로 동기화 - DRAFT_TEMPLATE.md 체크리스트 문구를 마지막 TASK 병합 기준으로 수정
* [#198] feat: 웹소켓 연결을 위한secondary token 발급 API 구현 * [#198] test: auth secondary API 검증 케이스 추가 * [#198] chore: secondary token 설정과 auth 문서 정합화 * [#198] fix: bearer 추가 및 properties 불변식 변경 * [#200] secondary-token API를 travels로 이동하고 travelItineraryId claim 추가 * [#200] secondary-token 테스트 및 RestDocs 정합화 * [#200] TravelItineraryServiceTest 컨텍스트 의존성 복구 * [#200] fix: 잘못 merge된 코드 정리 --------- Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
* [#219] refactor: user 패키지 구조와 계층을 정리한다 * [#219] test: user command patch 동작을 검증한다 * [#219] test: user 조회 컴포넌트 예외를 검증한다 * [#219] test: user usecase 응답 조합을 검증한다 * [#219] test: user controller 인증과 응답을 검증한다 * [#219] docs: 테스트 자동화 에이전트 규칙을 추가한다 * [#219] chore: user 패키지 리팩터링 후속 참조를 정리한다 * [#219] fix: import 제거 및 NullPointerException 방지 조건문 추가 --------- Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
* [#221] feat: querydsl 빌드 설정을 추가 * [#221] feat: group 애플리케이션과 프레젠테이션 구조를 리팩터링 * [#221] fix: group 연관 조회와 user 매핑을 정리 * [#221] test: group api 컨트롤러와 통합 테스트를 정리 * [#221] test: group 도메인과 애플리케이션 테스트를 추가 * [#221] fix: group 리뷰 지적사항을 반영 * [#221] fix: querydsl 테스트 컨텍스트 설정을 추가 * [#221] fix: 패키지 이동 * [#221] test: 테스트 재구성을 위한 테스트 삭제 * [#221] test: fulltext mysql 통합 테스트를 복구 * [#221] fix: group fulltext 검색과 ci 테스트 경로를 복구 --------- Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
* [#223] feat: travel 리팩터링 구조를 usecase/reader/command로 전환 * [#223] chore: travel 문서 상태(TravelDoc) 레거시 코드 제거 * [#223] test: travel 애플리케이션 계층 단위 테스트 추가 * [#223] test: travel 컨트롤러 REST Docs 테스트 추가 * [#223] test: travel 도메인 엔티티 테스트 추가 * [#223] test: travel API 통합 테스트 추가 * [#223] chore: vibe 템플릿 문서 제거 * [#223] fix: isDelete 컬럼 삭제로 인한 repository 메서드명 변경 --------- Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
…into 2026-04-24-deploy # Conflicts: # build.gradle # src/main/java/org/triple/backend/auth/crypto/UuidToUserIdCache.java # src/main/java/org/triple/backend/auth/dto/response/AuthLoginResponseDto.java # src/main/java/org/triple/backend/auth/service/AuthService.java # src/main/java/org/triple/backend/group/controller/GroupController.java # src/main/java/org/triple/backend/group/controller/JoinApplyController.java # src/main/java/org/triple/backend/group/service/GroupService.java # src/main/java/org/triple/backend/transfer/entity/Transfer.java # src/main/java/org/triple/backend/transfer/entity/TransferUser.java # src/main/java/org/triple/backend/transfer/service/TransferService.java # src/main/java/org/triple/backend/travel/controller/TravelItineraryController.java # src/main/java/org/triple/backend/travel/dto/request/TravelItinerarySaveRequestDto.java # src/main/java/org/triple/backend/travel/dto/request/TravelItineraryUpdateRequestDto.java # src/main/java/org/triple/backend/travel/entity/TravelItinerary.java # src/main/java/org/triple/backend/travel/exception/TravelItineraryErrorCode.java # src/main/java/org/triple/backend/travel/exception/UserTravelItineraryErrorCode.java # src/main/java/org/triple/backend/travel/presentation/dto/res/TravelDocInitialStateResponseDto.java # src/main/java/org/triple/backend/travel/presentation/dto/res/TravelItineraryInfoResponseDto.java # src/main/java/org/triple/backend/travel/repository/TravelItineraryJpaRepository.java # src/main/java/org/triple/backend/travel/service/TravelItineraryService.java # src/main/java/org/triple/backend/user/controller/UserController.java # src/main/java/org/triple/backend/user/entity/User.java # src/main/java/org/triple/backend/user/service/UserService.java # src/test/java/org/triple/backend/auth/integration/AuthIntegrationTest.java # src/test/java/org/triple/backend/auth/unit/crypto/UuidToUserIdCacheTest.java # src/test/java/org/triple/backend/group/Integration/GroupIntegrationTest.java # src/test/java/org/triple/backend/group/Integration/JoinApplyIntegrationTest.java # src/test/java/org/triple/backend/group/unit/controller/GroupControllerTest.java # src/test/java/org/triple/backend/group/unit/controller/JoinApplyControllerTest.java # src/test/java/org/triple/backend/group/unit/sevice/GroupServiceTest.java # src/test/java/org/triple/backend/transfer/unit/service/TransferServiceTest.java # src/test/java/org/triple/backend/travel/integration/TravelIntegrationTest.java # src/test/java/org/triple/backend/travel/unit/controller/TravelControllerTest.java # src/test/java/org/triple/backend/travel/unit/entity/TravelItineraryTest.java # src/test/java/org/triple/backend/travel/unit/entity/UserTravelItineraryTest.java # src/test/java/org/triple/backend/travel/unit/repository/TravelItineraryJpaRepositoryTest.java # src/test/java/org/triple/backend/travel/unit/repository/UserTravelItineraryJpaRepositoryTest.java # src/test/java/org/triple/backend/travel/unit/service/TravelItineraryServiceTest.java # src/test/java/org/triple/backend/user/unit/controller/UserControllerTest.java # src/test/java/org/triple/backend/user/unit/service/UserFinderTest.java # src/test/java/org/triple/backend/user/unit/service/UserServiceTest.java
Contributor
There was a problem hiding this comment.
Code Review
This pull request refactors the backend architecture for groups, travels, and users into a Command/Reader/UseCase pattern and introduces QueryDSL for complex queries. Key changes include the implementation of full-text search for groups, enhanced domain validation, and a migration of entities to a domain package. Feedback highlights a critical issue where the detail method in GroupUseCase returns null, which will cause runtime errors, and identifies garbled characters in UserGroup error messages that require encoding fixes.
| .map(this::toRecentPhotoDto) | ||
| .toList(); | ||
|
|
||
| return null; |
Contributor
| public void transferRole(final Role role) { | ||
| if (this.joinStatus != JoinStatus.JOINED) { | ||
| throw new IllegalStateException("그룹에 가입된 사용자만 역할을 변경할 수 있습니다."); | ||
| throw new IllegalStateException("洹몃9??媛?낅맂 ?ъ슜?먮쭔 ??븷??蹂寃쏀븷 ???덉뒿?덈떎."); |
Contributor
| public void leave() { | ||
| if (this.joinStatus != JoinStatus.JOINED) { | ||
| throw new IllegalStateException("가입된 그룹만 탈퇴할 수 있습니다."); | ||
| throw new IllegalStateException("媛?낅맂 洹몃9留??덊눜?????덉뒿?덈떎."); |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.