-
Notifications
You must be signed in to change notification settings - Fork 2
Fix: 상세페이지 코드리뷰 반영 ( 에러처리 보완, 댓글 개수 수정 , 카운트 보정 로직 유틸화) #77
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
📦 번들 분석 결과📊 번들 크기 요약
🔍 주요 청크 파일 (크기순)🤖 자동 생성된 번들 분석 리포트 |
⚡ 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 성능 리포트
DreamPaste
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.
고생하셨습니다.
|
|
||
| //TODO: 401 에러 처리 협의 필요 (공통 OR 개별) |
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.
401 처리는 인터셉터가 대신 하기 때문에 따로 처리할 필요 없을 듯 합니다.
📌 개요
🗒 상세 설명
1. 자유게시판 상세 페이지 에러 처리 개선
ClientPage에서 에러 처리 방식을 정리하고, Fallback 컴포넌트를 활용하도록 개선했습니다.핵심 기술 및 구현사항
useGetFreeboardPost결과에서error/post를 판단해, 상단에서 API 에러를 우선 처리하도록 분기error || !post인 경우:ErrorFallback렌더링onRetry에서refetch()호출해 재시도 가능하도록 처리FreeboardDetail렌더링 중 발생하는 런타임 에러는react-error-boundary의ErrorBoundary로 감싸서 처리FallbackComponent에서ErrorFallback을 사용해 일관된 에러 UI 유지resetErrorBoundary를onRetry로 넘겨 재렌더링 트리거사용 예시
🖼 적용 이미지 혹은 영상
2. 상세 페이지 서버 사이드 에러 처리 보완
page.tsx에서 SSR 단계의 에러 분기를 명확히 했습니다.핵심 기술 및 구현사항
queryClient.fetchQuery호출 시 발생하는 에러를axios에러 기준으로 분기status === 404인 경우에만notFound()호출 → 나머지는 모두 다시 throw401처리 방식을 주석으로 남겨 추후 공통 처리/개별 처리 협의 가능하도록 표시사용 예시
3. 댓글 헤더 카운트 및 좋아요 카운트 보정 로직 정리
댓글/게시글 좋아요와 헤더 카운트 계산 방식을 통일하고, 공통 유틸로 분리했습니다.
핵심 기술 및 구현사항
CommentListlatestTotal기준이 아닌, 항상 첫 페이지의total기준으로 계산 (firstPageTotal)firstPageTotal ?? initialCount ?? 0clampCount유틸 추가 (utils/clampCount.ts)Math.max(n, min)기반으로 카운트가 지정된 최소값 아래로 내려가지 않도록 보정LikeButtonComment,LikeButtonPostclampMin0헬퍼 제거clampCount유틸을 사용해 좋아요 카운트 보정isRestoring분기) 제거로 로직 단순화 및 버튼 상태 정리사용 예시
4. 공통 컴포넌트 및 UI 디테일 정리
핵심 기술 및 구현사항
ErrorFallbackp-6→p-12로 확장해 에러 화면이 더 안정적으로 보이도록 여백 조정VirtualListdata-index에 달려있던 주석 제거 (// ✅ 경고 해결: ...→ 실제 data attribute만 남김)📸 스크린샷
AS-IS
TO-BE
🔗 이슈
closes #74
✅ 체크리스트
🧪 테스트 방법
변경 사항을 검증한 방법을 간단히 적어주세요!
📝 추가 노트
401 처리 방식은 이전 회의에서 공통으로 처리한다는 얘기가 나와서 TODO로 남겨뒀습니다.
추가 의견 주시면 그 방향에 맞춰 후속 PR로 정리하겠습니다.
후속 작업