Skip to content

prod 서버 배포#204

Open
chungjeongsu wants to merge 34 commits into
mainfrom
develop
Open

prod 서버 배포#204
chungjeongsu wants to merge 34 commits into
mainfrom
develop

Conversation

@chungjeongsu

Copy link
Copy Markdown
Contributor

No description provided.

chungjeongsu and others added 22 commits March 10, 2026 15:56
* [#152] feat: 여행 도메인 memberLimit 제거 변경

* [#152] feat: 여행 응답 계약 동기화 변경

* [#152] test: memberLimit 제거 연관 테스트 정리 변경

* [#152] docs: 이슈번호 커밋 규칙 강화 변경

* [#152] chore: test 코드 memberLimit 삭제
* [#154] 여행 ThumbnailUrl 필드 제거

* [#154] 비로그인 여행 목록 count 응답과 병합 규칙 반영

* [#154] 여행 API 변경사항 테스트와 문서 동기화

* [#154] 그룹 비멤버 여행 목록 조회 count-only 응답으로 통일
* [#158] 여행 생성 시 멤버 UUID 목록 저장 반영

* [#158] PLAN 정리 및 단일화

* [#158] PLAN 템플릿 형식으로 재작성

* [#158] 여행 생성 멤버 UUID 분기 테스트 보강

* [#158] 여행 멤버 저장 배치 조회로 리팩토링

* [#158] 멤버 저장 배치 리팩토링 PLAN DRAFT 추가

* [#158] chore: draft 삭제
* [#164] refactor: 어플리케이션 로그 appender 추가 및 디버깅 로그 형식 변경

* [#164] refactor: 로그 UserId에서 UserUuid로 변경

* [#164] refactor: 로그 Latency 추가
* [#171] chore: memberUuids 필드 document 추가

* [#171] chore: 헬퍼 메서드 memberUuids %s 추가

* [#171] chore: 헬퍼 메서드 유연성 확보
Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
* [#167] 결제 승인 흐름을 Outbox 이벤트 처리로 전환

* [#167] 결제 이벤트 처리 프로퍼티를 환경별 설정에 추가

* [#167] 결제 기존 단위테스트를 현재 구조와 한글 네이밍으로 재작성

* [#167] 결제 이벤트 스케줄러 및 처리 서비스 단위테스트를 추가

* [#167] 완료된 vibe plan 산출물을 정리

* [#167] refactor: 메서드 중복, 최종 예외처리 추가
* [#176] 결제 패키지 및 테스트 제거

* [#176] PLAN·DRAFT·커밋 게이트 규칙 강화
* [#176] 결제 패키지 및 테스트 제거

* [#176] PLAN·DRAFT·커밋 게이트 규칙 강화

* [#179] 그룹 비멤버 상세 조회 시 여행일정은 개수만 반환하도록 리팩터링

* [#179] GroupDetailResponseDto 생성자 명확화 및 그룹 상세 문서 travelCount 반영
* [#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>
Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
Co-authored-by: jeongjiho <wjdwlgh2000@naver.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 병합 기준으로 수정
* [#194] 여행 문서 초기값 조회 API 추가

* [#194] 여행 문서 초기값 조회 테스트 추가
* [#196] feat: 쿠키 기반 리프레시 토큰 로직 구현

* [#196] chore: refresh 토큰 로직 API 문서 추가
* [#198] feat: 웹소켓 연결을 위한secondary token 발급 API 구현

* [#198] test: auth secondary API 검증 케이스 추가

* [#198] chore: secondary token 설정과 auth 문서 정합화

* [#198] fix: bearer 추가 및 properties 불변식 변경

---------

Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
* [#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>
Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
@chungjeongsu chungjeongsu self-assigned this Apr 7, 2026

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the authentication system from session-based to JWT-based, implementing access and refresh token rotation. It also introduces the Transfer domain for travel settlement management and adds features for user profile updates and travel document state retrieval. Additionally, the logging system was updated to use trace IDs and MDC for better request tracking. Feedback suggests reviewing the hardcoded cache expiration duration and optimizing the bulk update strategy for transfer users to prevent potential performance issues.

private final UserJpaRepository userJpaRepository;
private final Cache<UUID, Optional<Long>> cache = Caffeine.newBuilder()
.maximumSize(100_000)
.expireAfterWrite(Duration.ofSeconds(10000))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The cache expiration time of 10,000 seconds (approx 2.7 hours) seems arbitrarily large. If this is intended to be a long-lived cache, consider if this duration is appropriate for the system's memory constraints and data consistency requirements.

);
Map<Long, User> userById = loadRecipientUsersOrThrow(transfer.getGroup().getId(), memberByUserId.keySet());

transferUserJpaRepository.deleteAllByTransferIdInBatch(transferId);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Using deleteAllByTransferIdInBatch followed by saveAll can lead to performance issues if the number of transfer users is large. Consider using a more efficient update strategy if the number of users per transfer is expected to be high.

chungjeongsu and others added 5 commits April 11, 2026 07:32
* [#206] fix: 여행일정 메타데이터 조회 여행 멤버 아닌 유저도 조회 가능 수정

* [#206] test: 비즈니스 로직 수정에 따른 테스트 수정

* [#206] test: getTravelInfo 그룹 멤버 조건 테스트 추가

* [#206] fix: 여행 메타정보 조회 시 그룹원들만 조회 가능하게 수정

* [#206] test: 테스트 실패 로직 수정

---------

Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
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>
chungjeongsu and others added 7 commits April 24, 2026 06:03
* [#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>
* [#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 메서드명 변경

* [#226] feat: transfer 정산 상태 모델을 settledAt 기반으로 개편

* [#226] feat: travel 하위 transfer API와 패키지 구조를 재구성

* [#226] feat: travel 생성과 멤버 변경에 transfer 동기화 추가

* [#226] refactor: transfer 엔티티 패키지를 domain으로 이동

* [#226] refactor: transfer update를 change 메서드 호출로 전환

* [#226] test: transfer 도메인 change 메서드 테스트 추가

* [#226] test: transfer command update 검증 테스트 추가

* [#226] test: transfer 컨트롤러 REST Docs 테스트 추가

* [#226] fix: 여행 저장 UUID 검증 누락 및 travel 테스트 정합성 보완

---------

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 메서드명 변경

* [#226] feat: transfer 정산 상태 모델을 settledAt 기반으로 개편

* [#226] feat: travel 하위 transfer API와 패키지 구조를 재구성

* [#226] feat: travel 생성과 멤버 변경에 transfer 동기화 추가

* [#226] refactor: transfer 엔티티 패키지를 domain으로 이동

* [#226] refactor: transfer update를 change 메서드 호출로 전환

* [#226] test: transfer 도메인 change 메서드 테스트 추가

* [#226] test: transfer command update 검증 테스트 추가

* [#226] test: transfer 컨트롤러 REST Docs 테스트 추가

* [#226] fix: 여행 저장 UUID 검증 누락 및 travel 테스트 정합성 보완

* [#226] docs: align transfer restdocs includes with current APIs

---------

Co-authored-by: jeongjiho <wjdwlgh2000@naver.com>
* [#226] refactor: 그룹 상세 조회용 projection 계약 추가

* [#226] refactor: Querydsl projection 기반 그룹 상세 쿼리 구현

* [#226] refactor: 그룹 상세 조립 로직을 projection 기반으로 전환

* [#226] test: 그룹 상세 역할별 응답 케이스 추가
* [#231] fix: TransferUpdateRequestDto PositiveOrZero로 불변식 변경

* [#231] fix: TransferUpdateRequestDto PositiveOrZero로 불변식 메시지 변경
* [#233] fix: Transfer 엔티티 totalAmount 불변식 음수만 안되게 수정

* [#233] fix: Transfer 엔티티 totalAmount 불변식 음수만 안되게 수정에 따른 테스트 수정
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants