Next.js Standalone 모드로 Docker 이미지 최적화하기

Next.js 프로젝트에서 Docker 이미지를 빌드할 때는 Vercel의 권고대로 standalone 옵션을 사용합니다. standalone독립 실행형(standalone)이라는 뜻으로, Next.js프로젝트 에서 웹 애플리케이션 실행에 필요한 최소한의 코드만 추출하여 최적화된 빌드 결과물을 생성한다는 것을 뜻하는데요. 어떻게 Docker 이미지의 용량이 획기적으로 줄어드는지 정리해보았습니다.


1. 불필요한 파일 제거

기본적으로 Docker 이미지를 만들 때는 node_modules를 포함한 전체 프로젝트가 필요하지만, standalone 옵션을 적용하면 실행에 반드시 필요한 파일만 포함하는 최소한의 환경이 구성됩니다. 즉, 개발 환경에서 사용되던 불필요한 파일들(node_modules, pages/, app/ 등)이 대부분 제거되어 이미지 용량이 크게 줄어듭니다.


2. node_modules 최적화

Next.js는 standalone 모드를 활성화하면 실행에 필요한 node_modules만 포함하도록 최적화합니다. 기본적으로 node_modules는 모든 종속성을 포함하기 때문에 매우 무겁지만,
standalone 모드에서는 Next.js 실행에 필요한 패키지만 남기고, 불필요한 개발용 패키지(devDependencies, ESLint, TypeScript 등)는 제외됩니다.


사실상 꼭 실행에 꼭 필요한 node_modules만 남기고 나머지를 제거하는게 포인트입니다.

그리고 당연한 이야기겠지만, Docker 이미지 크기를 줄이면 배포 시간도 단축할 수 있습니다. 일반적으로 도커 이미지는 AWS ECR, Docker Hub 등 원격 레지스트리에 이미지를 푸시하는데요. 용량이 줄어든 만큼 전송 속도가 크게 향상됩니다.

Next.js의 standalone 모드는 불필요한 파일을 제거하고, 실행에 필요한 최소한의 환경만 남겨 Docker 이미지를 최적화하는 유용한 기능입니다. 이를 활용하면 배포 속도 개선, 인프라 비용 절감, 더 빠른 컨테이너 시작 시간 등의 효과를 얻을 수 있습니다.


https://nextjs.org/docs/pages/api-reference/config/next-config-js/output

next.config.js Options: output | Next.js

nextjs.org

next.config.js Options: output | Next.js

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2025년 1월 19일 오전 2:09

댓글 0

    함께 읽은 게시물

    < 이직을 고민하는 당신이 던져야 할 단 3가지 질문 >

    1. 커리어를 선택하는 기준은 다양하다. 일단 내가 가진 가치관이 가장 큰 영향을 준다. 남들의 시선과 판단도 무시할 수 없다. 이직 트렌드와 경향도 살펴봐야 한다.

    ... 더 보기

     • 

    댓글 1 • 저장 4 • 조회 745


    리더는 업무를 위임하는 능력을 반드시 갖춰야 한다. 하지만 많은 리더가 위임을 제대로 하지 못하며 효율성을 떨어뜨리는 실수를 반복하고 있다.

    ... 더 보기

    IT 리더가 업무를 위임할 때 피해야 할 실수 7가지

    CIO

    IT 리더가 업무를 위임할 때 피해야 할 실수 7가지

    이직하고 싶을 때 보세요

    ... 더 보기

    - YouTube

    youtu.be

     - YouTube

    경쟁력 있는 주니어 인재

    ... 더 보기

    경쟁력 있는 주니어 개발자가 되는 방법

    F-Lab : 상위 1% 개발자들의 멘토링

    경쟁력 있는 주니어 개발자가 되는 방법

     • 

    저장 7 • 조회 925


    샌프란시스코의 자율주행 택시 웨이모를 타 보았습니다. 생각보다 많은 수의 웨이모가 다니고 있었고, 웨이모는 귀여웠습니다. ☺️

    ... 더 보기

    조회 1,333


    🤏 백엔드 개발에 도움되는 학습 도서 📚

    많은 분들께서 긱뉴스에서 공개한 무료 학습 자료를 공유해주셨는데요, 저는 그중에서 백엔드 개발에 도움되는 도서는 어떤게 있을지 골라보았습니다. 제가 하고있는 업무와 연관이 있는 도서들을 골라본거라 모든 백엔드 개발자가 반드시 배워야 한다는 아니지만, 적어도 배워두면 써먹을 수 있다는 수준으로 이해해 주세요 🙏 ✔️ Java (https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-ko.md#java) Java 는 현재 매우 인기있는 백엔드 개발 언어입니다. 특히 대량의 트래픽을 대응하거나 다양한 솔루션과의 연계를 위해 많은 회사에서 Java 를 사용하고 있습니다. 점프 투 자바는 이런 Java 의 기초적인 내용을 학습하기 좋은 도서로 저도 많은 도움을 받았던 도서입니다. ✔️ Git (https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-ko.md#git) 이건 사실 백... 더 보기

     • 

    댓글 8 • 저장 949 • 조회 26,032