참치코더의 꿈 메모장

Next.js / 정적 메타 데이터 VS 동적 메타 데이터 비교 본문

Next.js

Next.js / 정적 메타 데이터 VS 동적 메타 데이터 비교

참치깡 2025. 10. 10. 15:01
728x90

제미나이가 생성한 Next.js 이미지

 

1. 정적 메타데이터 (metadata)

1
2
3
4
5
6
7
8
// page.tsx
 
export const metadata = {
    title: "Home",
    description: "Welcome to the homepage"
}
 
 
cs

 

- 데이터 : 고정값으로 페이지마다 미리 정의

 

- 사용 시점 : 빌드 시점에 이미 메타데이터가 생성됨

 

-  API 호출 : 불가능 (비동기 호출 불가)

 

- 장점 : 단순하고 빠름, 빌드 최적화 가능

 

- 단점 : 페이지 내용에 따라 동적으로 변경 불가

 

2. 동적 메타데이터 (generatedMetadata)

1
2
3
4
5
6
7
8
9
10
11
// page.tsx
 
import {getMovie} from "../../../components/movie-info";
 
export async function generateMetadata({ params }: {params: {id: string} }){
    const movie = await getMovie(params.id);
    return {
        title: movie.title, // 이러면 웹 브라우저 title에 비동기적으로 값이 변경된다.
        description: movie.overview,
    }
}
cs

 

- 데이터 : API, DB 등 비동기 데이터 기반으로 생성

 

- 사용시점 : 서버에서 페이지 렌더링 시 호출 (빌드 시점이 아니라 런타임 가능)

 

- API 호출 : 가능

 

- 장점 : 페이지 내용에 따라 실시간으로 title, description, og:image 등 변경 가능 

 

- 단점 : 구현 복잡, fetch 실패 시 예외 처리 필요, 렌더링 속도에 영향 가능

 

페이지 내용이 고정이면 metadata만 사용하면 되고,

페이지 내용이 동적이면 generateMetadata를 사용하면 된다.

둘다 같은 파일에서 동시 호출은 불가능 하다. ()

 

728x90
Comments