강제 새로고침해도 사이드바가 안 깜빡이게 만들기: Next.js 앱 셸 상태 저장 전략

·
Frontend Development
위 이미지는 Gemini Nano Banana를 통해 제작했습니다.들어가며사이드바가 잠깐 사라졌다가 다시 나타나는 현상은 작은 디테일처럼 보이지만,앱 셸의 완성도를 크게 떨어뜨린다.이 글은 "사이드바 접힘 상태를 어디에 저장하는 것이 맞는가"를 정리한 기록이다.문제 상황ChatGPT나 Claude처럼 사이드바가 앱의 기본 크롬(chrome) 역할을 하는 서비스에서는, 첫 페인트부터 접힘/펼침 상태가 안정적으로 유지되어야 한다.사이드바를 구현하면서 핵심적으로 다룬 문제는 두 가지였다.강제 새로고침 시 사이드바 상태가 유지되어야 한다.첫 페인트에서 사이드바가 안 보였다가 나타나는 hydration flicker가 없어야 한다.기존 구현에서 생긴 문제처음 구현은 클라이언트 상태 저장 관점에서는 자연스러웠다. ..