public 폴더의 파일은 직접 URL로 접근되지만, assets 폴더의 파일은 일반적으로 코드 내에서 import되어 사용된다.

Next.js에서의 차이를 좀 더 나열을 해보면 아래와 같다.

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