next.js metadataNext.js 14 metadataNextjs metadata use clientNext.js metadata opengraphfrontend

Next.js 14 가장 기본적인 Metadata 설정

KUKJIN LEE
KUKJIN LEE
2024년 5월 19일
169

Next.js를 사용하면 SEO 최적화라는 얘기가 나옵니다. SSR을 통한 SEO 최적화도 맞지만, 공유성을 높이기 위해서는 Metadata 관리에 대해서도 빠질 수 없습니다.

 

Next.js Metadata란?

Metadata는 Next.js에서만 사용하는 게 아닙니다. 검색 엔진과 소셜 미디어 플랫폼에서 웹 페이지를 최적화하는 데 중요한 역할을 합니다.

 

  1. Config-based Metadata: layout.js 또는 page.js 파일 내에서 정적 또는 동적 metadata객체를 정의합니다. 정적 metadata는 간단하고 고정 된 반면, 동적 metadata는 page 또는 route에 따라 달라질 수 있습니다.

  2. File-based Metadata: 특정 파일을 metadata에 정의하는 방식으로, Opengraph Image와 Favicon과 같은 metadata를 정의할 때 사용됩니다. 파일들은 정적으로 제공되거나 빌드 과정에서 동적으로 생성될 수 있습니다.

 

정적 Metadata 구현

layout 또는 page.tsx 파일 상단에 작성하면 됩니다. 아래는 작성 예시입니다.

 

// layout.tsx 또는 page.tsx 파일에서
import { Metadata } from 'next';
export const metadata: Metadata = {
  title: '페이지 제목',
  description: '페이지에 대한 간단한 설명',
};

 

동적 Metadata 구현

route parameter 또는 외부 데이터에 기반하며 Metadata를 조정할 수 있게 해줍니다. [id]/page.tsx와 같은 동적 페이지 파일에 적합합니다.

 

import { Metadata, ResolvingMetadata } from 'next';
type Props = {
  params: { id: string };
};
export async function generateMetadata({ params }: Props): Promise<Metadata> {
  const data = await fetch(`https://yourapi.com/data/${params.id}`).then(res => res.json());
  return {
    title: data.title,
    description: data.description,
  };
}

 

Opengraph Image 또는 Favicon과 같은 데이터는 동적 Metadata에서 제공될 수 있으며 요구 사항에 따라 정적, 동적으로 생성될 수 있습니다.

관련 글

TypeScript any 린트 에러(no-explicit-any) 근본적으로 해결하기

TypeScript 프로젝트에서 @typescript-eslint/no-explicit-any 린트 에러는 단순 규칙 비활성화로 해결할 문제가 아닙니다. 눈 앞 문제는 해결할 수 있지만, TypeScript를 사용하는 가장 중요한 이유를 위배하게 됩니다. any 타입은...

2025년 7월 23일269

JSP 주석, 아직도 `` 쓰시나요? 올바른 사용법

코드를 작성하다 보면 주석을 남기는 경우가 많습니다. 하지만 JSP 환경에서 어떤 주석을 사용하냐에 따라 보안 수준과 성능 이 크게 달라집니다. 표준 주석: 서버 사이드 주석 &lt;%-- --%&gt; JSP 페이지 내 개발 관련 주석은 &lt;%-- --%&gt; 를 사용하는게 좋습니다...

2025년 7월 9일144

쉽게 만드는 React Tab 라이브러리 react-tabs

개발자가 커스텀 스타일을 쉽게 적용할 수 있도록 최소한의 스타일만 제공하여 유연한 스타일링 이 가능한 라이브러리입니다. 상태 관리가 내장되어 있어 탭 선택 및 패널 표시 로직을 직접 구현할 필요 없이 간편하게 사용할 수 있습니다. 기본 사용법 먼저, 라이브러리를 설치합...

2025년 6월 17일173

Next.js 환경 변수 NEXT_PUBLIC 접두사 역할

NEXT_PUBLIC 접두사를 붙이면 변수의 접근 범위가 완전히 달라집니다. 이 차이점을 이해하는 것이 안전하고 효율적인 Next.js 애플리케이션을 구축하는 데 중요합니다. NEXT_PUBLIC 접두사가 없는 환경 변수 (서버 전용) NEXT_PUBLIC 접두사 없이...

2025년 6월 13일156