https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-nextjs?srsltid=AfmBOop98SToIvyP4ZLiwetJfX_FMn0dbu097kRsUWsuX9BOUxCY1Ihi
위 내용을 바탕으로 강의를 수강하며 정리하였습니다.
Next 서버 측에서 빌드 타임에 특정 페이지의 렌더링 결과를 캐싱하는 기능
= 빌드 타임에 정적으로 미리 생성이 되어서 풀 라우트 캐시에 보관
Next.js 앱에서 만들어 둔 모든 페이지는 자동으로 나뉨
▼ 그렇다면 Next.js 앱에서는 static 페이지와 dynamic 페이지를 어떻게 구분할까?


빌드타임에 생성해서 보관해둔 페이지를 특정 시간을 주기로 재생성, 즉 갱신하는 것도 가능
vscode로 열기
vscode에서 .../onebite-next/ 폴더로 열기
터미널에서 section05 폴더 생성
vscode에서 /onebite-next/section05/ 폴더 생성
파일 옮기기
/onebite-next/section04 폴더에 있는 코드 중 아래 사진에 해당하는 코드만 선택하여 /onebite-next/section05 폴더로 옮기기
필요한 모듈 다운로드
생성된 /section05/ 폴더로 vscode에서 다시 열기
→ vscode 터미널을 열어서 npm i 명령어 실행
개발 모드로 넥스트 앱 실행
생성된 /section05/ 폴더로 vscode에서 다시 열기
→ vscode의 터미널 열기
→ npm run dev 명령어 실행
→ http://localhost:3000/ 로 이동하면 확인 가능
→ (종료 시에는) Ctrl+D나 Ctrl+C 입력
백엔드 서버 열기
vscode에서 새 창을 열고 /onebite-books-server/ 폴더로 열기
→ vscode 터미널을 열고 npm run start 명령어 실행
개발 서버 구동할 때 생성되는 오류 해결: /src/app/(with-component)/layout.tsx 코드 수정
https://github.com/onebite-nextjs/vod__onebite-next-codes/blob/main/section05/chapter02/src/app/(with-searchbar)/layout.tsx
static 페이지로 수정 가능한 컴포넌트들 수정
/src/app/layout.tsx 코드 수정/src/app/(with-searchbar)/layout.tsx 코드는 수정할 거 없음/src/app/(with-searchbar)/page.tsx 코드 수정=> index 페이지가 static 페이지로 잘 설정됐는지 확인
npm run build 명령어로 실행해서 /section05/.next/server/app/index.html의 코드를 통해 확인 가능
vscode로 section05 폴더 열기
→ vscode 터미널을 열어서 npm run dev로 개발 모드 서버 열기
vscode에서 새 창을 열고 /onebite-books-server/ 폴더로 열기
→ vscode 터미널을 열고 npm run start로 백엔드 서버 열기
/src/app/(with-searchbar)/search/page.tsx 코드 수정/src/app/book/[id]/page.tsx 코드 수정
라우트 세그먼트 옵션 관련 공식 문서
https://nextjs.org/docs/pages/building-your-application/rendering/server-side-rendering
export const dynamic 옵션: 특정 페이지의 유형을 강제로 static 또는 dynamic 페이지로 설정해주는 옵션export const dynamic = "auto"; 아무것도 강제하지 않는 옵션 / 코드에 따라 페이지의 유형을 자동으로 설정export const dynamic = "force-dynamic"; 페이지를 강제로 dynamic 페이지로 강제하는 옵션export const dynamic = "force-static"; 페이지를 강제로 static 페이지로 강제하는 옵션export const dynamic = "error"; 페이지를 강제로 static 페이지로 설정하되, static으로 설정하면 안되는 기능이 있다면 빌드 오류를 발생시키는 옵션
클라이언트인 브라우저에 저장되는 캐시
페이지 이동을 효율적으로 진행하기 위해 페이지의 일부 데이터를 보관
중복된 레이아웃은 브라우저 측의 캐시에 저장, 중복되지 않은 페이지 등만 따로 불러오게 설정 가능
새로고침이 되거나 아예 탭을 껐다가 다시 접속하는 경우에는 동작하지 않음
▼ 풀 라우트 캐시 진행 과정
▼ 이때 중복 발생
▼ 클라이언트 라우터 캐시 전체 진행 과정
vscode로 section05 폴더 열기
→ vscode 터미널을 열어서 npm run dev로 개발 모드 서버 열기
vscode에서 새 창을 열고 /onebite-books-server/ 폴더로 열기
→ vscode 터미널을 열고 npm run start로 백엔드 서버 열기
/src/app/(with-searchbar)/layout.tsx 코드 수정