public
폴더의 파일은 직접 URL로 접근되지만, assets
폴더의 파일은 일반적으로 코드 내에서 import되어 사용된다.
Next.js에서의 차이를 좀 더 나열을 해보면 아래와 같다.
public
폴더:- 정적 파일(이미지, 폰트, 아이콘 등)을 저장하는 데 사용된다.
- 이 폴더의 파일들은 루트 URL(’/‘)에서 직접 접근할 수 있다.
- 빌드 프로세스에서 최적화되지 않는다.
- 파일 이름이 변경되지 않고 그대로 유지됩니다.
assets
폴더:- 주로 컴포넌트나 페이지에서 import하여 사용할 자원들을 저장한다.
- 이미지, CSS 파일, SCSS 파일 등을 포함할 수 있다.
- 빌드 프로세스에서 최적화되고 처리될 수 있다.
- 폰트 파일은 따로 최적화 되진 않는다.
- 웹팩과 같은 번들러에 의해 처리되어 파일 이름이 해시값으로 변경될 수 있다.