yceffort
◆ SERIES · 2 POSTS

Next.js의 페이지 보존

cacheComponents를 켠 Next.js에서 떠난 페이지가 숨겨지고 다시 나타나는 과정. Activity와 라이브러리의 생명주기 충돌, 실제 보존 범위, 남겨 둘 상태와 종료할 작업을 나누는 메모리 관리

README

이 블로그는 Next.js의 cacheComponents를 켜 두었다. 다른 페이지로 이동하면 이전 화면 일부가 React Activity 안에 숨겨져 남는다. 다시 돌아왔을 때 상태를 복원할 수 있지만, 라이브러리가 예상한 생명주기와 다르게 움직이거나 여러 화면의 DOM을 함께 유지할 수 있다.

1편은 소개 페이지의 three.js 캔버스가 하얗게 비었던 문제를 따라간다. Next.js가 화면을 숨기는 시점과 React가 Effect를 정리하는 시점, react-three-fiber가 WebGL 컨텍스트를 버리는 시점을 소스와 재현으로 확인한다.

2편은 연속 이동 실험에서 글 3개와 9개가 남은 이유를 확인한 뒤, 메모리를 관리할 때 무엇을 바꿀지 살핀다. 숨겨질 때 종료할 작업과 돌아왔을 때 복원할 상태를 나누고, DOM과 데이터의 크기, 페이지 밖 캐시의 수명을 검토한다. 측정으로 확인한 결과와 아직 절감량을 재지 않은 개선 방향을 구분한다.

02 ITEMS

전체 글

in order
01

떠난 페이지는 죽지 않고 숨는다: Next.js cacheComponents와 React Activity

#nextjs#react#debugging
Next.js 16의 cacheComponents가 떠난 페이지를 언마운트하지 않고 React Activity로 숨기는 동작. 하얗게 빈 three.js 캔버스를 따라 라우터, React, react-three-fiber의 소스를 읽고 브라우저에서 재현해보기
58분 · read
02

Next.js의 최근 3개는 왜 글 9개를 남겼을까

#nextjs#memory#web-performance
Next.js가 최근 3개를 보존한다는데, 이 블로그에는 글 9개가 남았다. 연속 이동 실험으로 보존 범위를 확인하고, 숨겨질 때 종료할 작업과 계속 보존할 상태를 나누어 메모리를 관리하는 방법
28분 · read