Skip to content

Fix/admin - #105

Merged
choi-jin-wook merged 2 commits into
mainfrom
fix/admin
Sep 14, 2026
Merged

choi-jin-wook merged 2 commits into
mainfrom
fix/admin

Conversation

@choi-jin-wook

Copy link
Copy Markdown
Collaborator

No description provided.

  - 100명 이하 조회는 기존 item-service 단일 호출 유지
  - 100명 초과 조회는 사용자 ID를 100개씩 순차 호출하고 결과 병합
  - Pageable 최대 크기를 10000으로 확장해 통계 조회 지원
  - 배치 경계값과 size=10000 요청 회귀 테스트 추가
  - 활성 공지 조회 경로를 /api/v1/notices/active로 변경
  - 로컬 및 운영 게이트웨이에 /api/v1/notices/** 라우팅 추가
  - 기존 관리자 공지사항 API 경로 유지
Comment on lines 72 to 76
@RequireRole({MemberRole.ROLE_USER, MemberRole.ROLE_ADMIN})
@Operation(summary = "활성 공지사항 조회", description = "현재 시각 기준으로 노출 기간에 포함된 공지사항 목록을 조회합니다.")
@GetMapping("/notices/active")
@GetMapping("/v1/notices/active")
public ResponseEntity<ApiResponse<List<ActiveNoticeResponse>>> getActiveNotices(
@CurrentMember MemberInfo memberInfo

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

getActiveNotices 의 매핑을 /notices/active/v1/notices/active 로 바꾸면서 이전 경로에 대한 alias 가 전혀 없습니다. 클래스 레벨이 @RequestMapping("/api") 이므로 실제 경로는 /api/notices/active/api/v1/notices/active 로 바뀌는데, 이 PR 은 gateway 설정(application.yml, application-aws.yml)의 Path predicate 에 /api/v1/notices/**추가만 하고 기존 /api/notices/** 는 그대로 남겨뒀습니다. 즉 gateway 는 여전히 구 경로 요청을 user-service 로 넘기지만, user-service 에는 더 이상 이를 처리하는 핸들러가 없어 이미 배포된 클라이언트(앱/웹)가 이 배포 직후 404 를 받게 됩니다.

이 저장소는 서비스 경계를 넘는 변경의 하위 호환성을 특히 신경 쓰는데(CLAUDE.md 참고), 이번 건은 gateway ↔ user-service 배포 순서와 무관하게 클라이언트 배포 시점이 어긋나면 곧바로 깨지는 케이스입니다. 전환 기간 동안은 두 경로를 함께 열어두고, 클라이언트 전환이 끝난 뒤 구 경로와 gateway 의 /api/notices/** predicate 를 함께 제거하는 순서를 권장합니다.

Suggested change
@RequireRole({MemberRole.ROLE_USER, MemberRole.ROLE_ADMIN})
@Operation(summary = "활성 공지사항 조회", description = "현재 시각 기준으로 노출 기간에 포함된 공지사항 목록을 조회합니다.")
@GetMapping("/notices/active")
@GetMapping("/v1/notices/active")
public ResponseEntity<ApiResponse<List<ActiveNoticeResponse>>> getActiveNotices(
@CurrentMember MemberInfo memberInfo
@GetMapping({"/notices/active", "/v1/notices/active"})

해당 코드:

@RequireRole({MemberRole.ROLE_USER, MemberRole.ROLE_ADMIN})
@Operation(summary = "활성 공지사항 조회", description = "현재 시각 기준으로 노출 기간에 포함된 공지사항 목록을 조회합니다.")
@GetMapping("/v1/notices/active")
public ResponseEntity<ApiResponse<List<ActiveNoticeResponse>>> getActiveNotices(
@CurrentMember MemberInfo memberInfo

@choi-jin-wook
choi-jin-wook merged commit 09594c7 into main Sep 14, 2026
4 checks passed
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.

1 participant