본문 바로가기
프론트 엔드/Next.js

Next.js의 폰트/이미지 최적화

by 코딩의 세계 2025. 3. 12.

폰트/이미지 최적화

글을 시작하기 전에, 공식 문서는 다음 링크를 참고하길 바란다.

https://nextjs.org/learn/dashboard-app/optimizing-fonts-images

 

App Router: Optimizing Fonts and Images | Next.js

Optimize fonts and images with the Next.js built-in components.

nextjs.org

(일단 이미지에 대한 부분을 먼저 작성하겠다.)

이미지를 넣는 방법.

Next.js에서는 이미지를 넣는 방법이 크게 2가지가 있다.

1. 그냥 <img/> 태그를 쓴다.

2. <Image/> 태그를 사용해서 이미지를 최적화한다.


1. 그냥 <img/> 태그를 쓴다.

public에 이미지 넣어두고, 필요한 페이지에 <img/> 태그를 써주면 된다.

<img src="/port1.png" alt="설명"/>

/ 부터 시작해서 이미지 경로를 넣어주면 끝이다.

대신 jsx에서는 태그를 <img><img/> 혹은 <img/> 이런 식으로 태그를 닫아줘야 한다.


2. <Image/> 태그를 사용해서 이미지를 최적화한다.

성능과 속도가 중요한 이미지를 넣고 싶다면 <Image/> 태그를 사용하자.

import Image from 'next/image'
import 이미지 from './food0.png'

export default function Home() {
  return(
    <div>
      <Image src={이미지} alt="설명"/>
    <div/>
)}

내가 가져오고 싶은 이미지를 "작명" 해주고, 관련 경로를 작성해서 import 해주면 된다.

이후 <Image/> 태그를 이용해서 src 부분에 "작명"된 이미지 이름을 작성, alt에 이미지 누락시 보일 설명을 작성하자. alt 부분은 SEO에 더욱 유리하게 작용한다. 

(코딩 애플 관련 글)

https://codingapple.com/unit/nextjs-image/?id=68759

 

Next.js에서 이미지 넣는 법 2개 - 코딩애플 온라인 강좌

0:00 저번시간 숙제 2:05 이미지 넣는 법  4:00 최적화된 이미지 넣는 법 7:43 상품이미지 넣기 8:59 /cart 페이지 만들기  상품명 잘 보이게 해보라던 저번시간 숙제는 상품.map((a, i)=>{ return ( {a} $40 ) })

codingapple.com


폰트 최적화

Cumulative Layout Shift 은 웹사이트의 퍼포먼스와 유저 경험을 평가할 때 쓰이는 항목이다.

주 폰트 추가
import { Inter } from 'next/font/google';
 
export const inter = Inter({ subsets: ['latin'] });

/app에 ui 파일을 만들고 font.js를 만든다. (예시 코드는 위를 참고)

이후 body 태그 안에 넣어준다.

/app/layout.js

import '@/app/ui/global.css';
import { inter } from '@/app/ui/fonts';
 
export default function RootLayout({
  children,
}: {
  children: React.ReactNode;
}) {
  return (
    <html lang="en">
      <body className={`${inter.className} antialiased`}>{children}</body>
    </html>
  );
}

layout.js가 전체적인 html의 틀을 기반으로 해주는 파일이라고 생각하면 된다.


Next.js 공식문서

(다시 링크 올린다.) 관련 공식 문서는 다음 링크를 참고하자.

https://nextjs.org/learn/dashboard-app/optimizing-fonts-images

 

App Router: Optimizing Fonts and Images | Next.js

Optimize fonts and images with the Next.js built-in components.

nextjs.org