Skip to content

[SM-165] refactor: 메인페이지 내 모임 섹션 데이터 캐시 무효화 버그 개선 (+ 대시보드 맴버 탭 방어로직 + 훅 잘못된 확장자 수정)#286

Merged
kwonjin2 merged 4 commits intodevfrom
refactor/SM-165
Apr 16, 2026
Merged

Conversation

@kwonjin2
Copy link
Copy Markdown
Collaborator

❓ 이슈

✍️ Description

모임 생성/수정/삭제 시 메인페이지로 이동하는데, 이 과정에서 메인페이지 내 모임 섹션 캐시 무효화가 진행되지 않습니다.
이를 개선합니다.

또한 대시보드 맴버 탭에서 이미지 500 에러가 발생할 경우 방어 로직이 없어 전체 대시보드에 에러가 전파되기에 옵셔널 체이닝 방식으로 데이터 접근합니다.

중간 코드리뷰에 주강사님이 남겨주신 피드백 (확장자 잘못 작성) 반영합니다.

📸 스크린샷 (UI 변경 시)

✅ Checklist

PR

  • Branch Convention 확인

    feat/* 기능 구현, fix/* 버그 수정, refactor/* 개선, chore/* 설정/환경

  • Base Branch 확인
  • 적절한 Label 지정
  • Assignee 및 Reviewer 지정

Test

  • 로컬 작동 확인
  • 빌드 통과 (npm run build)
  • 린트 통과 (npm run lint)

Additional Notes

  • (없음)

- MemberListSection: 리뷰어 정보 부재 시 발생하던 TypeError 수정 (Optional Chaining 추가)
- API: getMainGatherings, getMyGatherings에 Cache-Control: no-cache 헤더 추가하여 최신 데이터 보장
- Queries: 모임 생성/수정/삭제 시 memberships 쿼리 무효화 추가 및 invalidateQueries await 처리
- Components: 생성/수정/삭제 성공 후 이동 시 router.refresh() 호출하여 App Router 캐시 갱신
@kwonjin2 kwonjin2 self-assigned this Apr 16, 2026
@vercel
Copy link
Copy Markdown

vercel bot commented Apr 16, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
completionisland Ready Ready Preview, Comment Apr 16, 2026 10:34pm

@claude
Copy link
Copy Markdown
Contributor

claude bot commented Apr 16, 2026

Claude finished @kwonjin2's task in 2m 33s —— View job


리뷰 완료

체크리스트

  • 이전 리뷰 코멘트 확인
  • 변경된 파일 읽기
  • 이전 지적 사항 해결 여부 확인
  • 새로운 이슈 검토
  • 리뷰 완료

리뷰 결과

✅ 이전 지적 사항 모두 해결됨

커밋 e57d862 (클로드 리뷰 반영)에서 이전에 지적한 모든 CRITICAL 및 HIGH 이슈가 해결되었습니다:

  1. CRITICAL 해결: gatherings/index.ts에서 Cache-Control 헤더 제거
  2. CRITICAL 해결: memberships/index.ts에서 Cache-Control 헤더 제거
  3. HIGH 해결: CreateGatheringForm에서 router.refresh() 제거
  4. HIGH 해결: LeaderActionDropdown에서 router.refresh() 제거

✅ 잘 작성된 점

  • 캐시 무효화 로직 (queries.ts): invalidateServerCache + invalidateQueriesPromise.all로 병렬 처리하고, memberships 쿼리까지 무효화하여 이중 캐시 문제를 완전히 해결
  • 방어 로직 (useMemberList.ts): Optional chaining(reviewer?.id)으로 런타임 에러 방지
  • 파일 확장자 수정: usePerPage.tsx.ts로 변경하여 코드 스타일 규칙 준수

🎯 결론

새로운 이슈 없음. 모든 변경사항이 프로젝트 규칙을 준수하며, 이전 리뷰 피드백이 정확히 반영되었습니다. Approve 권장합니다.


Comment thread src/api/gatherings/index.ts Outdated
Comment thread src/api/memberships/index.ts Outdated
Comment thread src/app/gatherings/new/CreateGatheringForm/index.tsx Outdated
Comment thread src/app/gatherings/[id]/_components/LeaderActionDropdown/index.tsx Outdated
Comment thread src/api/gatherings/queries.ts
Comment thread src/api/gatherings/index.ts
@kwonjin2 kwonjin2 merged commit b5fdca1 into dev Apr 16, 2026
4 checks passed
kwonjin2 added a commit that referenced this pull request Apr 16, 2026
* [SM-162] refactor: 대시보드 todo create 리팩토링 (추가 버튼 도입 및 에러메시지 보여주기) 및 캐시 무효화 누락된 것 수정 (#272)

* refactor: 내 할일 목록 개선(투두 추가 실패 시 에러메시지 토스트, 접근성 등)

* refactor: 캐시 무효화 로직 추가
- 캐시 무효화 로직이 누락되어 있어, 투두 crud 시 새로고침 하지 않으면 데이터 갱신x
- 캐시 무효화 로직을 구현하여 정상적으로 갱신o
- 맴버 할일 섹션의 달성률은 백엔드에서 동기화 누락이 원인. 백엔드 해결 후 정상 동작

* fix: 클로드 리뷰 반영

* fix: 클로드 리뷰 반영

* [SM-166] fix: 모임 생성 폼 태그 선택 조건 버그 수정 (#275)

* [SM-170] feat: 실시간 회의 기능 인프라 및 종속성 설정 (#279)

* chore: 실시간 회의 관련 라이브러리 추가

* feat: 실시간 트래킹을 위한 클라이언트 초기화

* feat: 서버사이드 API 요청 처리를 위한 serverFetch 유틸 개선

* feat: 비디오 구도 고정을 위한 전역 스타일 추가

* refactor: supabase 클라이언트 초기화 보장 로직 추가 및 안정성 강화

- supabase 클라이언트가 null일 경우를 대비한 ensureSupabase 헬퍼 함수 구현
- 환경 변수 미설정 시 명시적인 에러 메시지를 발생시켜 디버깅 및 타입 안전성 향상
- 코드 리뷰 반영 - 사용하는 측에서 null 체크 없이 타입 안전하게 사용 가능하도록 개선

* [SM-171] feat: 실시간 회의 토큰 발급 API 및 상숫값 정의 (#281)

* feat: 실시간 회의 입장을 위한 토큰 발급 API 구현

- 참여자 Identity 및 Grant가 포함된 AccessToken 생성
- 서버 단에서 requestBackend를 이용해 실제 모임 멤버인지 보안 검증 로직 추가

* feat: 실시간 회의 상태 및 UI 제어를 위한 대시보드 상수 추가

* refactor: 병렬 Promise로 개선 (클로드 리뷰 반영)

* fix: 보안 토큰 유효시간 변경

* [SM-172] feat: 실시간 참여자 트래킹 로직 구현 (#283)

* feat: 실시간 참여자 트래킹 로직 구현

- 실시간 채널에 참여자 동기화 로직 구현
- isJoined 상태에 따른 자동 온라인/오프라인 전환 처리
- 탭 닫기 등 예기치 못한 종료 상황 처리

* fix: 클로드 리뷰 반영

* fix: 클로드 리뷰 반영

* fix: beforeunload 이벤트 한계 보완, 모바일 환경 개선

* fix: 클로드 리뷰 반영

* [SM-173] 회의실 UI 컴포넌트 개발 및 대시보드 탭 추가 (#285)

* feat: 회의 섹션 상위 구조 및 데이터 연동 로직 구현

- MeetingSection에서 토큰 발급 및 Suspense 설정
- MeetingContent에서 유저 정보 및 Presence 데이터 연동 로직 분리

* feat: 실시간 회의 입장 전 대기실 UI 개발

* feat: 화상 회의실 및 참여자 그리드 구현

* feat: 대시보드 탭에 추가 (서스펜스바운더리 적용)

* fix: 클로드 리뷰 반영

* fix: 회의실 전체적인 스타일링 수정

* Revise README with project overview and features

Updated README to include project details and user journey.

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* [SM-167] fix: 마이페이지 대기중 모임 탭 404 에러 방어 및 탭 전환 시 에러 전파 수정 (#277)

* Update README.md

* Update README.md

* Update README.md

* [SM-165] refactor: 메인페이지 내 모임 섹션 데이터 캐시 무효화 버그 개선 (+ 대시보드 맴버 탭 방어로직 + 훅 잘못된 확장자 수정) (#286)

* fix: 모임 CRUD 후 데이터 즉시 반영 로직 보완 및 런타임 에러 수정

- MemberListSection: 리뷰어 정보 부재 시 발생하던 TypeError 수정 (Optional Chaining 추가)
- API: getMainGatherings, getMyGatherings에 Cache-Control: no-cache 헤더 추가하여 최신 데이터 보장
- Queries: 모임 생성/수정/삭제 시 memberships 쿼리 무효화 추가 및 invalidateQueries await 처리
- Components: 생성/수정/삭제 성공 후 이동 시 router.refresh() 호출하여 App Router 캐시 갱신

* fix: 모임 대시보드 맴버 탭 이미지 500에러 시 전파 방지를 위한 방어로직

* fix: hooks 잘못된 확장자 수정

* fix: 클로드 리뷰 반영

---------

Co-authored-by: Ahyeon Choi <138025938+strawberryroll@users.noreply.github.com>
Co-authored-by: rak517 <166088638+rak517@users.noreply.github.com>
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.

[SM-165] refactor: 모임 CRUD 캐시 무효화 버그 개선 (내 모임 섹션)

1 participant