-
Notifications
You must be signed in to change notification settings - Fork 2
Fix: 백엔드 타입 수정 업데이트 #99
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
이 PR은 투표 게시판 API의 타입 이름과 필드명을 Freeboard와 일관성 있게 통일하는 Breaking Change 업데이트입니다. 주요 변경사항으로는 타입명을 VotePost*에서 Voteboard*로 변경하고, 응답 필드명을 id/votesboardId에서 postId로 통일했습니다. 또한 투표 참여 여부(hasVoted), 썸네일, 투표 옵션 미리보기, 정렬 옵션 등의 신규 기능이 추가되었습니다.
주요 변경사항:
- 타입 이름 통일:
VotePostSummaryResponse→VoteboardSummary,VotePostDetailResponse→VoteboardDetailResponse등 - 응답 필드명 통일:
id,votesboardId→postId로 일관성 확보 - 신규 기능:
hasVoted(투표 참여 여부),thumbnailUrl(썸네일),voteOptions미리보기, 정렬 옵션 (LATEST,LIKE,COMMENT,VIEW) 추가
Reviewed changes
Copilot reviewed 1 out of 17 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
voteboardSummary.ts |
투표 게시글 목록 요약 정보 타입 정의 추가 (thumbnailUrl, hasVoted, voteOptions 필드 포함) |
voteboardDetailResponse.ts |
투표 게시글 상세 정보 타입 정의 추가 (hasVoted, canEdit, canDelete 필드 포함) |
voteboardCursorResponse.ts |
커서 기반 목록 조회 응답 타입 정의 추가 |
voteboardCreateResponse.ts |
게시글 생성 응답 타입 정의 추가 (postId 필드 사용) |
voteboardCreateRequest.ts |
게시글 생성 요청 타입 정의 추가 |
voteboardUpdateRequest.ts |
게시글 수정 요청 타입 정의 추가 |
voteboardSummaryVoteStatus.ts |
투표 상태 enum 타입 정의 추가 |
voteboardSummaryCategory.ts |
카테고리 enum 타입 정의 추가 |
voteboardDetailResponseVoteStatus.ts |
투표 상태 enum 타입 정의 추가 |
voteboardDetailResponseCategory.ts |
카테고리 enum 타입 정의 추가 |
voteboardCreateRequestCategory.ts |
카테고리 enum 타입 정의 추가 |
voteboardUpdateRequestCategory.ts |
카테고리 enum 타입 정의 추가 |
getVotePostsByCursorSort.ts |
정렬 옵션 파라미터 타입 정의 추가 |
getVotePostsByCursorParams.ts |
목록 조회 파라미터에 sort 옵션 추가 |
index.ts |
새로운 Voteboard 타입들을 export 목록에 추가 |
voteboard.ts |
API 엔드포인트 함수들의 타입을 VotePost에서 Voteboard로 변경, 문서 업데이트 |
VoteboardForm.tsx |
컴포넌트 props 타입을 VotePostDetailResponse에서 VoteboardDetailResponse로 변경 |
📦 번들 분석 결과📊 번들 크기 요약
🔍 주요 청크 파일 (크기순)🤖 자동 생성된 번들 분석 리포트 |
⚡ Lighthouse 성능 분석 결과📊 전체 평균 점수
📈 측정 현황
📄 페이지별 상세 분석🏠 커뮤니티 페이지:
|
| 지표 | 점수 |
|---|---|
| 🚀 Performance | 70점 |
| ♿ Accessibility | 78점 |
| ✅ Best Practices | 100점 |
| 🔍 SEO | 100점 |
📊 상세 분석 보기
👥 창업자 페이지: /main/founder
| 지표 | 점수 |
|---|---|
| 🚀 Performance | 75점 |
| ♿ Accessibility | 87점 |
| ✅ Best Practices | 100점 |
| 🔍 SEO | 100점 |
📊 상세 분석 보기
🏡 홈 페이지: /main/home
| 지표 | 점수 |
|---|---|
| 🚀 Performance | 75점 |
| ♿ Accessibility | 91점 |
| ✅ Best Practices | 100점 |
| 🔍 SEO | 100점 |
📊 상세 분석 보기
🗺️ 지도 페이지: /main/maps
| 지표 | 점수 |
|---|---|
| 🚀 Performance | 75점 |
| ♿ Accessibility | 87점 |
| ✅ Best Practices | 100점 |
| 🔍 SEO | 100점 |
📊 상세 분석 보기
👤 프로필 페이지: /main/profile
| 지표 | 점수 |
|---|---|
| 🚀 Performance | 75점 |
| ♿ Accessibility | 88점 |
| ✅ Best Practices | 100점 |
| 🔍 SEO | 100점 |
📊 상세 분석 보기
🔗 전체 상세 분석 결과
📄 측정된 페이지
- /main/community
- /main/founder
- /main/home
- /main/maps
- /main/profile
모든 페이지에서 성능 측정이 완료되었습니다.
🤖 자동 생성된 Lighthouse 성능 리포트
youdaeng2
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
백엔드 수정사항을 따로 올리니 확인하기 훨씬 편하네요.
머지 후 참고하여 코드 수정하도록 하겠습니다 감사합니다.
Summary
VotePost*→Voteboard*(Breaking Change)id,votesboardId→postId(Breaking Change)hasVoted(신규 기능)sort파라미터 지원 (LATEST, LIKE, COMMENT, VIEW)🚨 Breaking Changes - 즉시 확인 필요
1. 타입 이름 변경 (orval 재생성 필수)
기존에 사용하던 모든 투표 게시판 타입명이 변경되었습니다. orval을 재생성한 후 아래 매핑을 참고하여 코드를 수정해주세요.
변경된 타입 매핑표
VotePostSummaryResponseVoteboardSummaryVotePostListResponseVoteboardCursorResponseVotePostDetailResponseVoteboardDetailResponseVotePostIdResponseVoteboardCreateResponseVotePostCreateRequestVoteboardCreateRequestVotePostUpdateRequestVoteboardUpdateRequest마이그레이션 예시
2. 응답 필드명 변경
게시글 ID를 나타내는 필드명이 통일되었습니다.
변경된 필드
VoteboardSummaryidpostIdVoteboardDetailResponseidpostIdVoteboardCreateResponsevotesboardIdpostId수정이 필요한 코드 패턴
검색해야 할 패턴:
response.data.id→response.data.postIdpost.id→post.postIdvotesboardId→postId✨ 신규 기능 추가
1. 투표 참여 여부 확인 (
hasVoted)관련 커밋:
50ff03a이제 목록 조회 및 상세 조회 시 현재 사용자의 투표 참여 여부를 확인할 수 있습니다.
추가된 필드
사용 예시
주의사항
hasVoted는null값입니다true(투표함) 또는false(투표 안 함)if (post.hasVoted !== null)2. 목록 조회 응답 개선
관련 커밋:
7bed33e목록 조회 시 더 많은 정보를 제공하여 상세 조회 없이도 미리보기가 가능합니다.
추가된 필드
사용 예시
3. 정렬 옵션 추가
관련 커밋:
3efec1b목록 조회 시 다양한 정렬 기준을 사용할 수 있습니다.
정렬 옵션
LATESTLIKECOMMENTVIEW사용 예시
📋 마이그레이션 체크리스트
즉시 수행
npm run orval또는yarn orvalVotePost*→Voteboard*.id→.postId,votesboardId→postId선택적 개선
hasVoted필드 활용thumbnailUrl활용voteOptions배열 활용sort파라미터 활용🔍 영향받는 컴포넌트 찾기
다음 검색어로 수정이 필요한 코드를 찾을 수 있습니다:
🆘 문제 해결 가이드
Q1. orval 재생성 후에도 타입이 안 바뀌어요
# 캐시 삭제 후 재생성 rm -rf src/generated/api npm run orvalQ2.
postId를 찾을 수 없다는 에러가 나요기존 응답 객체를 그대로 사용하고 있을 가능성이 높습니다. 타입을 명시적으로 지정해주세요:
Q3.
hasVoted가null이에요비인증 사용자이거나 로그인이 필요한 기능입니다. 인증 상태를 확인하세요:
📚 참고 자료
🔄 변경 이력
a63024950ff03ahasVoted필드 추가7bed33e3efec1b마이그레이션 관련 문의사항은 백엔드 팀에게 문의해주세요.