Next.js에서 레이아웃 사용하기
2026년 기준 안내
이 글은 2021년에 작성한 Pages Router 기준 예제입니다.
현재 Next.js 프로젝트에서 새로 레이아웃을 구성한다면 App Router의 app/layout.tsx와 중첩 레이아웃을 먼저 검토하는 편이 좋습니다.
최신 방식은 Next.js App Router에서 레이아웃 사용하기에 따로 정리했습니다.
들어가며
안녕하세요.
오늘은 Nuxt에서 자주 사용하던 레이아웃 개념을 Next.js에서도 구현해 보았습니다.
예제를 통해 직접 레이아웃을 구성해 봅시다.
홈페이지를 구성할 때, 우리는 대체로 네비게이션과 푸터, 플로팅 버튼 등을 포함합니다.
개발단계에서 이들 컴포넌트를 페이지마다 일일이 import하는 것은 매우 비효율적인 일입니다.
만약 이들처럼 대부분의 페이지에서 보여줘야될 내용이 있다면,
레이아웃 컴포넌트를 통해 손쉽게 유지보수할 수 있을 것입니다.
만들기
1. /components/Layouts 폴더를 생성하고 Default.js 파일을 생성합니다.
레이아웃들을 저장하는 폴더에 각 유저 시나리오 대로 필요한 레이아웃들을 구성해둘 것입니다.
이번 예제에서는 가장 기본적으로 네비게이션과 푸터를 포함한 레이아웃을 만들어 보겠습니다.
2. 아래 코드를 입력합니다.
import Head from 'next/head'
import Nav from '@/components/Nav'
import Footer from '@/components/Footer'
const DefaultLayout = (props) => {
return (
<div className="layout">
<Head>
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta charSet="utf-8" />
</Head>
<Nav></Nav>
<div className="content-wrapper">{props.children}</div>
<Footer></Footer>
</div>
)
}레이아웃 구성 시 Head를 사용하여 메타태그와 같은 헤더정보를 포함한다면 더 좋은 구성이 될것입니다.
3. 페이지에서 import하여 사용합니다.
import DefaultLayout from '@/components/Layouts/Default'
export default function index() {
return (
<DefaultLayout>
<div>레이아웃 테스트</div>
</DefaultLayout>
)
}레이아웃을 페이지에서 import하여 위와 같이 사용합니다.
DefaultLayout 태그 내에 있는 콘텐츠들은 layout.js의 템플릿에서 props.children을 통해 포함되게 됩니다.
관련 포스트

Next.js App Router에서 검색 날짜와 사이트맵 관리하기
Next.js App Router 블로그에서 사용자에게 보이는 날짜, Open Graph modifiedTime, JSON-LD dateModified, sitemap lastModified를 같은 기준으로 연결하는 방법을 정리합니다.

Next.js 16 Cache Components와 use cache 정리
Next.js 16에서 도입된 Cache Components와 use cache directive를 기준으로 App Router 캐싱 모델의 변화, cacheLife, cacheTag, revalidateTag 사용 흐름을 정리합니다.

Next.js App Router에서 레이아웃 사용하기
Next.js App Router에서 app/layout.tsx, page.tsx, 중첩 layout을 사용해 공통 UI를 구성하는 방법을 정리합니다. Pages Router 시절의 수동 Layout 컴포넌트 패턴과 어떤 점이 다른지도 함께 봅니다.

next image blurDataURL 직접 부여하기
Next.js의 Image 컴포넌트에서 blur placeholder를 사용할 때 자동 생성되는 경우와 직접 blurDataURL을 만들어야 하는 경우를 정리합니다. 정적 import, public 경로, 원격 이미지, 빌드 시점 생성 전략을 함께 다룹니다.

Next.js에서 path alias 설정하기 (feat. @/components)
오늘은 Next.js에서 import 시 복잡한 relative path 대신 absolute path 사용을 위한 설정법을 알아봅시다. file path를 상대경로로 지정하다보면 유지보수면에서도 복잡하고, path를 지정할 때마다 경로가 헷갈려서 발생하는 오류는 덤입니다. 이럴 때 path에 대한 alias를 설정하면 코드는 확 깔끔해질 것입니다. 아래 예제를 통해서 따라해봅시다.