Skip to content

Conversation

@HopeFullee
Copy link
Member

@HopeFullee HopeFullee commented Jan 3, 2026

📝 변경 사항

[트러블 슈터]

[문제]

  • 모임 삭제 이후 history back으로 직전에 삭제한 페이지로 이동 시, 서버에 새로 요청을 보내지 않고 캐싱 되어있는 HTML 및 데이터가 보여짐.
  • 간단히 replace로 해결할 수 있으나, 여러 차례 history에 기록이 쌓여있다면 replace만으론 재진입을 막을 수 없음.

[시도해 본 것]

  • removeQueries, useRouter.refresh

[원인]

  • Next Router Cache (RSC Payload Cache) 이 친구가 자동으로 최초 진입한 모든 경로 (페이지)의 HTML 및 SSR 단에서 pre/fetching 한 데이터를 브라우저의 메모리 Next Router Cache 공간에 저장함.
  • 이렇게 저장된 데이터는 이후 브라우저의 History Forward/Backward 로 이동 시 Next Router Cache에 저장된 데이터를 보여줌으로 중복되는 API 요청과 HTML의 랜더링 횟수를 줄일 수 있음.
  • 일반적인 상황에서의 취지는 좋으나 삭제와 같은 Mutation 요청이 발생했을 시에는 삭제된 과거 Cache 데이터를 보여주기보단 Next Router Cache를 무효화 해야함.

[해결한 방법]

  • Next Server Action 파일에서 revalidatePath Next 내장함수 사용으로 RSC의 캐싱을 무효화.

[수확]

[Next Router Cache의 특징]

  • [동작 방식]
    • Next.js 프레임워크는 사용자가 방문한 경로의 RSC Payload를 브라우저 메모리에 저장함.
  • [특이사항]
    • Next Router Cache는 브라우저의 '새로고침'을 하면 날아가지만, '뒤로가기/앞으로가기' 시에는 유지됨.

[revalidatePath]

  • [효과]
    • 서버 액션 내에서 revalidatePath를 호출하면 해당 경로 (페이지)에 대한 Server Data Cache를 무효화할 뿐만 아니라, 브라우저가 들고 있는 Client-side Router Cache도 즉시 무효화함.
  • [특징]
    • useRouter.refresh는 클라이언트 (브라우저) 캐시만 비울 수 있지만, revalidatePath는 서버 + 클라이언트 (브라우저) 둘다 비움.
    • useRouter.refresh는 실행 즉시 캐시를 비우고 새로운 데이터 요청을 하지만, revalidatePath는 호출 시점에 캐시만 비우고 "다음번"에 해당 경로 (페이지)에 접근할때 새로운 데이터를 요청함.
  • [결과]
    • 삭제 후 뒤로가기를 했을 때 캐시가 없으므로 서버에 새로운 데이터를 요청하게 되고, 삭제된 데이터가 없는 최신 상태를 렌더링함.

[결론]

  • 해치웠나?

🔗 관련 이슈

Closes #


🧪 테스트 방법

  • 수동 테스트 검증(로컬 환경)
  • 유닛 테스트 검증
  • 통합 테스트 검증

📸 스크린샷 (선택)


📋 체크리스트

  • 관련 문서를 업데이트했습니다 (필요한 경우)
  • 테스트를 추가/수정했습니다 (필요한 경우)
  • Breaking change가 있다면 명시했습니다

💬 추가 코멘트


CodeRabbit Review는 자동으로 실행되지 않습니다.

Review를 실행하려면 comment에 아래와 같이 작성해주세요

@coderabbitai review

@HopeFullee HopeFullee added the Ready For Review! 리뷰 받을 준비가 되었습니다. label Jan 3, 2026
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jan 3, 2026

Important

Review skipped

Auto reviews are disabled on this repository.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Jan 3, 2026

🎨 Storybook Report

변경 사항이 없습니다

모든 Story가 이전 빌드와 동일합니다.

Status Storybook Build Log Updated (UTC)
✅ Unchanged View Storybook View Build 2026-01-04 08:57:20

@github-actions
Copy link

github-actions bot commented Jan 3, 2026

🎭 Playwright Report

E2E Test가 성공적으로 완료되었습니다.

Test 요약 내용을 확인해주세요.

Status Build Log Updated (UTC)
✅ Ready View Build 2026-01-04 08:58:05

📊 Test Summary

  • ✅ Passed: 3
  • ❌ Failed: 0
  • ⏱️ Duration: 28.0s

📜 Test Details

✅ Passed Tests (3)
  • profile.test.ts (3)
    • [chromium] 존재하지 않는 프로필 페이지로 접속 시 404 redirect 되는 지 테스트
    • [firefox] 존재하지 않는 프로필 페이지로 접속 시 404 redirect 되는 지 테스트
    • [webkit] 존재하지 않는 프로필 페이지로 접속 시 404 redirect 되는 지 테스트

@github-actions
Copy link

github-actions bot commented Jan 3, 2026

📊 Coverage Report

Status Build Log Updated (UTC)
✅ Ready View Build 2026-01-04 08:56:50

➡️ #344main에 병합하면 coverage가 0.00% 유지합니다.

Coverage 요약

@@             Coverage Diff             @@
##             main     #344       +/-   ##
===========================================
  Coverage   36.02%   36.02%     0.00%     
===========================================
  Files         229      229         0     
  Lines       10753    10755        +2     
  Branches      412      412         0     
===========================================
  Hits         3874     3874         0     
+ Misses       6879     6881        +2     

영향받은 파일

이 PR로 영향받은 파일이 없습니다

수정된 모든 파일이 현재 coverage를 유지했습니다.

@github-actions
Copy link

github-actions bot commented Jan 3, 2026

🚀 PR Preview Report

Build가 성공적으로 완료되었습니다.

Preview에서 변경사항을 확인하세요.

Status Preview Build Log Updated (UTC)
✅ Ready Visit Preview View Logs 2026-01-04 08:58:08

@claudia99503 claudia99503 changed the title [Fix]: 모임 삭제 이후 HistoryBack으로 재진입시 RSC의 캐싱된 데이터가 보이지 않게 revalidatePath 적용 [Fix] 모임 삭제 이후 HistoryBack으로 재진입시 RSC의 캐싱된 데이터가 보이지 않게 revalidatePath 적용 Jan 4, 2026
Copy link
Member

@claudia99503 claudia99503 left a comment

Choose a reason for hiding this comment

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

수확 달달하녜여
슬픈소식 +1 : 밤새 열심히 만든 저희의 작품이 아침부터 들통나 한참 아래로 내려갔습니다

@claudia99503 claudia99503 merged commit 38045da into main Jan 4, 2026
6 of 7 checks passed
@claudia99503 claudia99503 deleted the somang-fix/group-details branch January 4, 2026 08:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Ready For Review! 리뷰 받을 준비가 되었습니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants