fix(my): 마이페이지 목록 API 페이지 엔벨로프 응답 대응 (develop 백포트) - #158
Conversation
서버 dev 브랜치에서 마이 계열 목록 응답이 배열에서
{ <목록키>, page, size, hasNext } 엔벨로프로 바뀌면서,
배열을 가정한 컴포넌트가 `.map is not a function`으로 크래시했다.
- unwrapList 유틸 추가: 배열/엔벨로프를 모두 배열로 정규화
(서버 main은 아직 배열이라 두 형태를 동시에 지원해야 함)
- /votes/mine/created, /votes/mine/voted, /comments/mine 정규화 적용
- 페이지네이션 UI가 없으므로 size=50(서버 상한) 요청해 기존 동작 유지
- /member/point-history: 기본 size=10 절삭 방지 (크래시는 없었음)
- 화면 명세의 TODO/추정 엔드포인트를 확정된 값으로 갱신
컴포넌트는 계속 배열을 받으므로 화면 코드 변경 없음.
서버 전환이 전 환경에 끝나면 unwrapList를 제거한다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
(cherry picked from commit 1b70f0f)
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
요약
#157(develop)에서 검증된 수정을
main으로 체리픽한 핫픽스입니다.🔥 왜 지금인가 — 운영이 이미 영향권입니다
지난 조사 시점엔 페이지네이션이 서버
dev에만 있었지만, 오늘 서버dev가main으로 머지되고 운영 배포까지 완료됐습니다.운영 백엔드가 새 빌드로 서비스 중인 것도 확인했습니다 —
/votes응답에 신규isBot필드가 존재합니다.프론트
main에는 대응이 없으므로valanse.kr의 마이페이지 3개 화면이 현재 크래시 상태로 추정됩니다.valanse.kr/my/created확인으로 확정 가능합니다.영향 범위 (main 기준 전수 점검)
/votes/mine/created·/mine/voted/comments/mine/member/point-history/votes/{id}/comments·.../replies/report(CMS)댓글·대댓글·CMS는 이미 안전해서 이 커밋 하나가 남은 구멍을 정확히 덮습니다.
왜 develop 전체 머지가 아닌 체리픽인가
main↔develop이 14 / 60 커밋으로 갈라져 있습니다. 전체 머지는 리디자인·이미지 업로드·온보딩까지 함께 나가는 대형 릴리스라, 크래시 대응과 섞으면 문제 발생 시 원인 격리가 어렵습니다. 핫픽스는 최소 범위로 갑니다.충돌 해결
point.ts1건이며 prettier 줄바꿈 차이입니다. 로직 충돌이 아니라 develop 쪽을 그대로 채택했습니다.수정된 5개 파일이
origin/develop과 바이트 단위로 동일함을 확인했습니다.검증
tsc --noEmit통과eslint통과/my,/my/created,/my/voted,/my/comment,/my/point5개 화면 200, 서버 에러 없음develop.valanse.kr)에서 선반영 완료미검증: 로그인 상태의 실제 응답 처리 (인증 가드가 API 호출 전
/entry로 리다이렉트). 배포 후 로그인 확인이 필요합니다.롤백
API 레이어만 변경하고 컴포넌트는 무변경입니다. 문제 시 이 PR revert 한 번으로 복구됩니다.
unwrapList가 배열·엔벨로프를 모두 수용하므로 서버가 어느 형태를 주든 동작하며,size=50은 서버 상한(PaginationValidator.MAX_PAGE_SIZE)이라 400이 발생하지 않습니다.🤖 Generated with Claude Code