안녕하세요. IT 엘도라도 에 오신 것을 환영합니다.
글을 쓰는 것은 귀찮지만 다시 찾아보는 것은 더 귀찮습니다.
완전한 나만의 것으로 만들기 위해 지식을 차곡차곡 저장해 보아요.   포스팅 둘러보기 ▼

리액트 (React)

[Next.js] 핵심 개념 익히기 - ④ Static 파일 사용하기

피그브라더 2022. 1. 17. 22:56
Next.js 공식 문서를 읽고, 필자가 생각하기에 Next.js에 대해 알고 있어야 하는 핵심 개념을 정리한 포스팅입니다. 실제로 Next.js 공식 문서를 살펴보면 생각보다 많은 내용이 있는데, 필자의 목적은 "Next.js가 무엇이냐"라는 질문에 대해 답을 할 수 있는 수준의 핵심 개념을 간추리는 것입니다. 더 자세한 내용은 개발하면서 그때그때 살펴보면 된다고 생각합니다.

 

Next.js 앱이 제공할 Static 파일들은 프로젝트 폴더의 public 폴더에 둬야 한다. Next.js는 public 폴더에 존재하는 모든 파일들을 Base URL(/)을 통해 접근할 수 있도록 하기 때문이다. 예를 들어, public/me.png 파일은 코드 내에서 /me.png URL을 통해 접근하도록 할 수 있다.

import Image from 'next/image';

export default function Avatar() {
    return <Image src="/me.png" alt="me" width="64" height="64" />;
}
public 폴더는 robots.txt, favicon.ico 등의 다른 정적 파일들에도 유용하다.
public 폴더에 존재하는 파일의 이름과 pages 폴더에 존재하는 파일의 이름은 같지 않도록 해야 한다. 그렇지 않으면 충돌에 의한 에러가 발생할 것이다. 또한, 여기서 설명한 내용은 빌드를 하는 시점에 public 폴더에 있는 파일들만 적용된다. 즉, 런타임에 public 폴더에 동적으로 추가되는 파일들은 적용되지 않는다. 만약 영구적이고 지속적인 파일 스토리지를 사용하고 싶다면, AWS S3와 같은 서드 파티 서비스를 사용하는 것을 권장한다.
Next.js가 제공하는 Image 컴포넌트는 <image> 태그의 확장판으로, 이미지 최적화 등의 기능을 내장하고 있다. 그러나 Next.js가 제공하는 이러한 최적화 등의 기능을 굳이 사용하지 않아도 된다면 <image> 태그를 그대로 사용하면 된다.