콘텐츠로 이동

API Routes / Server Actions 특성

Next.js는 API RoutesServer Actions를 통해
프론트엔드와 서버 로직을 단일 프로젝트 안에 공존시킬 수 있다.

그러나 이는 편의성의 대가로
운영 경계와 보안 경계가 흐려질 수 있는 구조이기도 하다.


1. API Routes

  • pages/api/* 또는 app/api/* 경로 기준
  • HTTP 요청/응답 기반 서버 사이드 코드
  • Next.js 라우팅·빌드·배포 모델에 종속됨

운영 특성

  • Express API 서버와 달리:
    • 독립 프로세스 아님
    • Next.js 배포 모드(Node/Serverless)에 따라 동작 방식 변경
  • 프레임워크 업데이트/설정 변경의 영향 직접 수용

2. Server Actions

  • App Router 전용 기능
  • 클라이언트 컴포넌트에서 직접 호출 가능한 서버 코드
  • 네트워크 요청이 코드상에서 명시적으로 드러나지 않음

운영 특성

  • 인증·권한 검증 누락 위험
  • 호출 경로가 추상화되어:
    • 트래픽 분석
    • 장애 추적
      이 어려워질 수 있음
  • 서버 부하가 UI 동작과 밀접하게 연결됨

3. 운영 리스크 비교

항목 API Routes Server Actions
호출 방식 명시적 HTTP 암묵적
경계 인식 비교적 명확 불명확
보안 통제 미들웨어 기반 명시적 구현 필요
운영 추적 용이 어려움

4. 운영 기준 (Baseline)

  • API Routes를:
    • 독립적인 Express API 서버처럼 가정하지 않는다
  • Server Actions 사용 시:
    • 인증/인가 로직을 반드시 명시적으로 구현한다
    • 외부 입력을 신뢰하지 않는다
  • 중요한 비즈니스 로직은:
    • 호출 경계가 명확한 구조로 분리하는 것을 검토한다

5. 운영 체크리스트

  • API Routes 사용 범위 정의
  • Server Actions에 인증/권한 검증 존재 여부 확인
  • 배포 모드(Node/Serverless)에 따른 동작 차이 검토
  • 장애/로그 추적 전략 수립