콘텐츠로 이동

배포 모드: Node 서버 vs Edge / Serverless

Next.js는 동일한 코드베이스라도 배포 모드에 따라 실행 환경과 동작 방식이 달라진다.
Node 서버 모드와 Edge/Serverless 모드를 혼동할 경우
예상치 못한 런타임 오류나 운영 사고로 이어질 수 있다.


1. Node 서버 모드

  • 전통적인 Node.js 런타임 환경
  • 장시간 실행되는 서버 프로세스 모델
  • 특징:
    • Node.js API 전체 사용 가능
    • 파일 시스템 접근 가능
    • native module 사용 가능
  • 운영 방식:
    • PM2 / systemd 기반 프로세스 관리
    • Nginx reverse proxy 구성
  • 본 문서 세트는 Node 서버 모드를 기준으로 작성됨

2. Edge / Serverless 모드

  • 요청 단위 실행 환경
  • 런타임 제약이 강함
  • 주요 제약 사항:
    • Node.js API 일부 또는 전체 사용 불가
    • 파일 시스템 접근 제한
    • native module 사용 불가 또는 제한
    • 장시간 연결(WebSocket 등) 부적합
  • 운영 특성:
    • 프로세스 개념 없음
    • PM2 / systemd 운영 불가
    • cold start로 인한 초기 지연 가능

3. 운영 리스크 비교

항목 Node 서버 Edge / Serverless
실행 모델 상시 실행 프로세스 요청 단위 실행
Node API 전체 사용 가능 제한적
파일 시스템 사용 가능 제한
프로세스 관리 PM2/systemd 불가
성능 특성 예측 가능 cold start 존재

4. 운영 기준 (Baseline)

  • 운영 서버 환경에서는 Node 서버 모드만을 기준으로 문서화 및 운영한다
  • Edge/Serverless 모드는:
    • 별도의 운영 기준 문서
    • 별도의 제약 검증
      없이는 혼용하지 않는다
  • 배포 모드 변경은:
    • 단순 설정 변경이 아닌
    • 운영 모델 변경으로 간주한다

5. 운영 체크리스트

  • 현재 배포 모드(Node / Edge / Serverless) 확인
  • Node API / 파일 시스템 의존 코드 존재 여부 점검
  • PM2/systemd 기반 운영 전제 여부 확인
  • 배포 모드 변경 시 운영 기준 재검토