3.8
마치며
이번 장에서 배운 내용은 아래와 같습니다.
/)로 구분pages 폴더 내에 폴더와 파일을 중첩하여 경로를 구성/pages/_app.tsx)을 수정해서 사용/pages/_document.tsx)을 수정해서 사용pages 폴더 내에 각 폴더에 index.js 파일을 위치시킴으로써, 사용자가 각 경로에 접속했을 때 보여줄 페이지를 지정pages/index.js → /pages 폴더 내에 폴더와 파일을 중첩시키는 형태로 복잡한 라우팅 경로를 구성pages/blog/first-post.js → /blog/first-postpages/posts/[postId].js → /posts/1, /posts/2, /posts/3, ...Layout 컴포넌트를 만들어서 각 페이지의 상위 컴포넌트로 감싸주는 방법을 사용getLayout 속성을 추가하여 레이아웃을 제공하는 방법app 폴더 내에 정해진 규칙에 맞게 폴더와 파일을 중첩시키면 됨layout: 레이아웃page: 페이지loading : 로딩 화면not-found: Not found 페이지error: 에러 화면global-error: 글로벌 에러 화면route: API 엔드포인트template: 재렌더링 되는 레이아웃default: Parallel Routes를 위한 대체 UIlayout.jstemplate.jserror.js: React error boundaryloading.js: React suspense boundarynot-found.js: React error boundarypage.js 또는 중첩된 layout.jsapp 폴더에 있는 route segments와 파일들을 논리적으로 그룹화 할 수 있게 해주는 기능app 폴더 내에 (폴더 이름) 형태로 괄호로 감싼 이름의 폴더를 만들고, 그 안에 그룹화 할 폴더 또는 파일들을 넣어서 사용page.js 또는 route.js 파일이 존재하지 않으면, 해당 Route는 공개적으로 접근할 수 없음page.js 또는 route.js 파일이 반환하는 내용만 클라이언트에 전송됨page.js 또는 route.js 파일이 아닌 다른 파일들을 App Router 내에 있는 폴더에 넣어서 안전하게 사용할 수 있음[id], [slug])generateStaticParams 함수를 사용하면 빌드 시점에 Dynamic Segments 기능을 사용하면서도 각 경로를 정적으로 생성할 수 있음[...folderName])하여 이후의 모든 Segments를 포착할 수 있도록 확장 가능[[...folderName]])를 사용하여 이후의 모든 Segments를 선택적으로 포착하기@folder 형태로 슬롯을 정의하여 사용(..) 컨벤션으로 정의할 수 있음<Link> 컴포넌트<a> 태그를 확장하여 라우트 간의 prefetching과 클라이언트 사이드 내비게이션을 제공하는 내장 컴포넌트next/link로부터 import해서 사용useRouter() 훅next/navigation 패키지로부터 import해서 사용<Link> 컴포넌트를 사용해서 routes를 변경하는 것이 좋음redirect() 함수마지막 업데이트: 2025년 10월 24일 02시 00분
이 문서의 저작권은 이인제(소플)에 있습니다. 무단 전재와 무단 복제를 금합니다.
On this page