Next.js 주니어 배포·운영 기술면접

Next.js 주니어 (1~3년) 배포 · 운영 5문항 조회수 32 · 2026-08-07 (금) 17:41:05
1 빌드 최적화
Easy

Q. Next.js 프로젝트에서 'npm run build' 명령어를 실행했을 때 생성되는 .next 폴더의 역할과, 이 폴더 안에서 배포에 필요한 주요 파일들이 무엇인지 설명해주세요.

빌드 결과물이 저장되는 위치와 정적 파일, 서버 코드가 어떻게 구분되는지 생각해보세요.

A. 모범답안

.next 폴더는 Next.js 빌드 프로세스의 결과물이 저장되는 디렉토리로, 실제 프로덕션 환경에서 실행되는 모든 파일이 포함됩니다. 이 폴더 안에는 서버 사이드 렌더링을 위한 서버 코드, 정적으로 생성된 HTML 파일, 클라이언트 측 JavaScript 번들, CSS 파일 등이 포함됩니다. static 폴더에는 빌드 시점에 생성된 정적 자산이, server 폴더에는 SSR을 위한 코드가 저장됩니다. 배포 시에는 .next 폴더 전체와 public 폴더, node_modules(또는 package.json), next.config.js 등이 함께 필요합니다.

핵심 포인트
  • .next 폴더는 빌드 결과물이 저장되는 디렉토리
  • 서버 코드, 정적 HTML, 클라이언트 번들이 모두 포함됨
  • 배포 시 .next 폴더와 의존성 파일들이 함께 필요함
답변에 넣으면 좋은 키워드
빌드 .next 정적 파일 서버 코드 번들 배포
실무에서는

배포 자동화 구축 시 빌드 산출물의 위치와 구조를 이해해야 올바른 배포 스크립트를 작성할 수 있습니다.

Follow-up 질문

.next 폴더를 Git에 커밋하지 않는 이유와, CI/CD 파이프라인에서 이 폴더를 어떻게 처리해야 하는지 설명해주세요.

2 환경 변수 관리
Medium

Q. Next.js 애플리케이션을 개발, 스테이징, 프로덕션 환경으로 나누어 배포할 때, 각 환경별로 다른 API 엔드포인트와 설정값을 관리하는 방법을 설명하고, .env.local, .env.development, .env.production 파일의 우선순위와 사용 전략을 설명해주세요.

환경별로 자동으로 로드되는 환경변수 파일의 우선순위와 빌드 시점의 처리 방식을 고려해보세요.

A. 모범답안

Next.js는 환경별로 .env.development(개발), .env.production(프로덕션), .env.local(모든 환경에서 로컬 오버라이드) 파일을 자동으로 로드합니다. 우선순위는 .env.local이 가장 높고, 그 다음 환경별 파일(.env.development 또는 .env.production), 마지막으로 .env 순입니다. 실무에서는 공통 설정은 .env에, 환경별 차이는 .env.development와 .env.production에, 민감한 정보나 로컬 테스트용은 .env.local에 작성합니다. CI/CD 파이프라인에서는 각 환경의 시크릿 관리 도구(GitHub Secrets, AWS Systems Manager 등)를 통해 환경변수를 주입하고, 빌드 시점에 적절한 .env 파일을 생성하거나 환경변수를 설정합니다.

핵심 포인트
  • 환경별 .env 파일이 자동으로 로드되며 우선순위가 존재함
  • .env.local이 가장 높은 우선순위를 가짐
  • CI/CD에서는 시크릿 관리 도구로 환경변수를 주입함
답변에 넣으면 좋은 키워드
환경변수 .env 우선순위 CI/CD 시크릿 빌드
실무에서는

멀티 환경 배포 시 각 환경의 설정을 안전하게 분리하고 관리하는 것은 운영의 기본입니다.

Follow-up 질문

NEXT_PUBLIC_ 접두사가 붙은 환경변수가 빌드 타임에 번들에 포함되는 특성 때문에, 배포 후 환경변수 값을 변경하려면 어떻게 해야 하는지 설명해주세요.

3 Docker 컨테이너화
Medium

Q. Next.js 애플리케이션을 Docker 컨테이너로 만들어 배포하려고 합니다. Dockerfile을 작성할 때 멀티 스테이지 빌드를 사용하는 이유와, 프로덕션 이미지의 크기를 줄이기 위해 적용할 수 있는 최적화 방법들을 설명해주세요.

빌드 환경과 실행 환경을 분리하는 이유와 불필요한 파일을 제거하는 방법을 생각해보세요.

A. 모범답안

멀티 스테이지 빌드는 빌드 단계와 실행 단계를 분리하여 최종 이미지에 빌드 도구나 개발 의존성이 포함되지 않도록 합니다. 첫 번째 스테이지에서는 node:alpine 같은 이미지로 npm install과 npm run build를 실행하고, 두 번째 스테이지에서는 프로덕션 의존성만 설치한 후 빌드 결과물(.next 폴더)만 복사합니다. 최적화 방법으로는 alpine 기반 이미지 사용, .dockerignore로 불필요한 파일 제외, npm ci --only=production으로 개발 의존성 제외, 레이어 캐싱을 위해 package.json을 먼저 복사하는 방법 등이 있습니다. 이를 통해 이미지 크기를 수백 MB에서 수십 MB로 줄일 수 있습니다.

핵심 포인트
  • 멀티 스테이지 빌드로 빌드 환경과 실행 환경 분리
  • alpine 이미지와 프로덕션 의존성만 포함하여 크기 최적화
  • .dockerignore와 레이어 캐싱으로 빌드 효율성 향상
답변에 넣으면 좋은 키워드
Docker 멀티 스테이지 alpine .dockerignore 프로덕션 의존성 이미지 최적화
실무에서는

컨테이너 기반 배포에서 이미지 크기는 배포 속도와 비용에 직접적인 영향을 미치므로 최적화가 필수입니다.

Follow-up 질문

Docker 컨테이너로 배포한 Next.js 애플리케이션에서 환경변수를 런타임에 주입하는 방법과, 컨테이너 오케스트레이션 도구에서 이를 관리하는 방법을 설명해주세요.

4 배포 전략
Medium

Q. Vercel이나 AWS 같은 플랫폼에 Next.js 애플리케이션을 배포할 때, 블루-그린 배포와 카나리 배포의 개념을 설명하고, 각각의 장단점과 어떤 상황에서 사용하는 것이 적합한지 설명해주세요.

무중단 배포를 위한 두 가지 전략의 트래픽 전환 방식 차이를 생각해보세요.

A. 모범답안

블루-그린 배포는 기존 환경(블루)과 새 환경(그린)을 동시에 운영하다가 트래픽을 한 번에 전환하는 방식으로, 빠른 롤백이 가능하지만 두 배의 리소스가 필요합니다. 카나리 배포는 새 버전을 일부 사용자에게만 먼저 배포하여 모니터링한 후 점진적으로 트래픽 비율을 늘리는 방식으로, 리스크를 최소화하지만 배포 시간이 길어집니다. 블루-그린은 빠른 배포와 즉각적인 롤백이 중요한 경우, 카나리는 사용자 영향을 최소화하고 싶거나 대규모 변경사항이 있을 때 적합합니다. Next.js에서는 Vercel의 Preview Deployment나 AWS의 로드 밸런서 가중치 조절로 이를 구현할 수 있습니다.

핵심 포인트
  • 블루-그린은 전체 트래픽을 한 번에 전환하는 방식
  • 카나리는 점진적으로 트래픽 비율을 늘리는 방식
  • 각 전략은 롤백 속도와 리스크 관리에서 트레이드오프가 있음
답변에 넣으면 좋은 키워드
블루-그린 카나리 무중단 배포 트래픽 전환 롤백 배포 전략
실무에서는

프로덕션 배포 시 사용자 영향을 최소화하면서 안전하게 배포하기 위한 필수 전략입니다.

Follow-up 질문

Next.js 애플리케이션에서 새 버전 배포 후 문제가 발견되어 즉시 이전 버전으로 롤백해야 할 때, 어떤 방법들을 사용할 수 있는지 설명해주세요.

5 모니터링과 로깅
Easy

Q. Next.js 애플리케이션을 프로덕션에 배포한 후, 서비스의 안정성을 모니터링하기 위해 추적해야 할 주요 지표들과, 에러 발생 시 빠르게 파악하기 위한 로깅 전략을 설명해주세요.

성능 지표와 에러 추적, 그리고 실시간 알림의 중요성을 생각해보세요.

A. 모범답안

프로덕션 환경에서는 응답 시간, 에러율, 트래픽량, 서버 리소스 사용률(CPU, 메모리) 등의 지표를 모니터링해야 합니다. Next.js에서는 Web Vitals(LCP, FID, CLS) 같은 사용자 경험 지표도 중요합니다. 에러 로깅을 위해서는 Sentry나 LogRocket 같은 도구로 클라이언트와 서버 에러를 모두 수집하고, 에러 발생 시 스택 트레이스와 사용자 컨텍스트를 함께 기록합니다. 심각한 에러나 임계치 초과 시 Slack이나 이메일로 실시간 알림을 받도록 설정하여, 문제를 빠르게 인지하고 대응할 수 있어야 합니다.

핵심 포인트
  • 응답 시간, 에러율, Web Vitals 등 핵심 지표 모니터링
  • Sentry 같은 도구로 에러 추적 및 컨텍스트 수집
  • 실시간 알림으로 빠른 문제 인지와 대응
답변에 넣으면 좋은 키워드
모니터링 로깅 Web Vitals Sentry 에러 추적 알림
실무에서는

프로덕션 환경에서 사용자가 문제를 신고하기 전에 먼저 감지하고 대응하는 것이 서비스 품질 유지의 핵심입니다.

Follow-up 질문

Next.js API Routes에서 발생하는 에러와 클라이언트 컴포넌트에서 발생하는 에러를 각각 어떻게 수집하고 모니터링할 수 있는지 설명해주세요.

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!