Uh oh!
There was an error while loading. Please reload this page.
Conversation
edv-Shin
commented
Apr 22, 2026
- 새 AWS 계정 이관에 따른 ECR 및 도메인 설정 업데이트 (undabang.store → undabang.site)
- Cognito 사용자 풀 이전 대비 email 기반 회원 조회 지원
- @WebMvcTest 컨텍스트에서 MemberRepository 미주입 시 컨텍스트 로딩 실패 수정
[FIX]사용자간의 채팅 방을 찾을 시에 중독 되어 있어도 맨 처음 채팅방으로 매핑되도록 변경
…troom Revert "[FIX]사용자간의 채팅 방을 찾을 시에 중독 되어 있어도 맨 처음 채팅방으로 매핑되도록 변경"
- ECR 레지스트리 주소 변경 (825773631552 → 867637277997) - 새 도메인 api.undabang.site 로 restdocs host 업데이트
- 새 Cognito 풀에서는 sub 값이 달라지므로 email 우선 조회 후 fallback 으로 sub 사용 - XUserIdCheckInterceptor 에 MemberRepository 주입하여 X-USER-EMAIL 헤더로 DB 조회 - API Gateway integration 에서 X-USER-EMAIL 헤더도 전달하도록 설정됨
- SLF4J 파라미터 바인딩("{}")으로 로그 포맷 일관화
- X-USER-EMAIL 로 회원 조회 실패 + X-USER-ID 부재 시 AUTHENTICATION_FAILED 로 분기 (기존엔 USER_ID_HEADER_MISSING 로 던져 클라이언트에 혼동 소지)- WebConfig 에서 MemberRepository 를 ObjectProvider 로 주입하여 JPA 슬라이스가 없는 테스트에서도 컨텍스트 로딩 성공 - XUserIdCheckInterceptor 는 memberRepository 가 null 인 경우 email 기반 조회를 건너뛰고 기존 X-USER-ID(sub) fallback 만 수행
기존 테스트/클라이언트 계약(X-USER-ID 누락 → USER_ID_HEADER_MISSING)을 유지하고, X-USER-EMAIL 존재 여부에 따라 로그 메시지만 다르게 남겨 원인 추적이 쉽도록 함. (Copilot 리뷰에서 지적한 에러 분기를 로그 레벨에서 처리)
chore(AWS): 새 AWS 계정으로 서비스 이관 및 Cognito 이전 대응
There was a problem hiding this comment.
Pull request overview
AWS 계정 이전에 맞춰 배포 대상(ECR)과 REST Docs 도메인을 갱신하고, Cognito 사용자 풀 이전으로 인해 sub가 변경될 때도 이메일 기반으로 회원을 식별할 수 있도록 요청 헤더 처리 로직을 확장합니다. 또한 @WebMvcTest 등 JPA가 없는 슬라이스 테스트 환경에서 인터셉터 빈 생성이 실패하지 않도록 주입 방식을 조정합니다.
Changes:
- REST Docs 테스트 설정의 API 호스트를
api.undabang.store→api.undabang.site로 변경 - 배포 스크립트/컴포즈/워크플로의 ECR Registry 계정 ID 변경
X-USER-EMAIL헤더 기반 회원 조회를 지원하도록MemberRepository및XUserIdCheckInterceptor확장, 테스트 슬라이스 대응을 위해ObjectProvider로 레포지토리 주입
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/resources/application.yml | REST Docs URI host를 .site로 변경 |
| src/test/resources/application-prod-docs.yml | REST Docs URI host를 .site로 변경 |
| src/test/resources/application-dev-docs.yml | REST Docs URI host를 .site로 변경 |
| src/main/java/com/project200/undabang/member/repository/MemberRepository.java | 이메일+삭제여부 조건의 회원 조회 메서드 추가 |
| src/main/java/com/project200/undabang/common/web/interceptor/XUserIdCheckInterceptor.java | X-USER-EMAIL 우선 조회 후 X-USER-ID로 fallback하는 컨텍스트 설정 로직 추가 |
| src/main/java/com/project200/undabang/common/config/WebConfig.java | 슬라이스 테스트 환경 대응을 위해 ObjectProvider<MemberRepository>로 인터셉터 생성 |
| deploy-prod/scripts/config.sh | ECR Registry 계정 ID 변경 |
| deploy-prod/docker-compose.yml | ECR 이미지 경로(Registry) 변경 |
| deploy-prod/docker-compose-sub.yml | ECR 이미지 경로(Registry) 변경 |
| deploy-dev/docker-compose.yml | ECR 이미지 경로(Registry) 변경 |
| deploy-dev/deploy.sh | ECR Registry 계정 ID 변경 |
| .github/workflows/prod-server-cicd.yml | ECR Registry 계정 ID 변경 |
| .github/workflows/dev-server-cicd.yml | ECR Registry 계정 ID 변경 |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- X-USER-ID(sub) 를 우선 확인하고 존재하지 않을 때만 X-USER-EMAIL fallback 사용. 외부에서 email 헤더 위조만으로 타 계정 가장이 가능하던 문제 차단. - existsById 로 PK 존재 검증만 수행하여 요청당 DB 조회 부하 감소. (기존: 요청마다 findByMemberEmail — 세컨더리 인덱스 조회) - 로그에 남는 email 을 maskEmail 로 마스킹 처리하여 PII 노출 방지. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 5 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- /auth/v1/sign-up 등 신규 사용자 플로우에서 existsById·email fallback 이 모두 실패해도 USER_ID_HEADER_MISSING 으로 차단되지 않도록 pass-through 경로 추가 - 마스킹 주석/실제 포맷 불일치 수정 (d*****n → d***n) - XUserIdCheckInterceptor 단위 테스트 추가 (MockHttpServletRequest 기반 10 케이스) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
edv-Shin
commented
Apr 22, 2026
Copilot 리뷰 반영 사항을 #565 로 분리하여 올렸습니다. 머지 후 이 PR 에 반영됩니다. 반영:
미반영 (별도 이슈):
|
… Copilot 리뷰 반영) - email fallback 이 X-USER-ID 선행 존재 시에만 동작하도록 제한 → X-USER-EMAIL 단독 위조로 타 계정을 가장하는 경로 차단 - 신규 사용자 pass-through 를 /auth/v1/sign-up allowlist 로 한정 → 그 외 URI 에서 회원 특정 실패 시 AUTHENTICATION_FAILED 로 명확히 거절 - 테스트에 email 단독/non-sign-up URI 차단 케이스 추가 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…review fix(auth): sign-up 차단 이슈 해결 및 Copilot 리뷰 반영
…잔여분) - MemberRepository.existsByMemberIdAndMemberDeletedAtNull 추가하여 탈퇴 회원을 '존재'로 처리하지 않도록 수정 (다른 조회의 *AndMemberDeletedAtNull 패턴과 일관) - Caffeine 기반 positive 캐시(TTL 5분, 최대 10k) 도입해 매 요청 존재 검증의 DB 부담 완화. false 는 캐시하지 않아 가입 직후 즉시 반영. - email fallback 으로 찾은 member_id 도 캐시에 기입해 이후 요청은 동일 DB 조회 생략. - 테스트에 soft-delete 차단, positive 캐시 적중, 가입 직후 반영 케이스 추가. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Uh oh!
There was an error while loading. Please reload this page.