배포 모드: 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 기반 운영 전제 여부 확인
- 배포 모드 변경 시 운영 기준 재검토