전체 목록
Next.jsMedium#230

Route Handler는 어떤 용도로 사용하나요?

#Next.js#RouteHandler#API#AppRouter

답변 포인트

HTTP 메서드별 서버 요청 처리를 기준으로 정의, 장점, 한계, 예시를 함께 설명해보세요.

정답 및 해설

빠른 요약

Route Handler는 app 디렉터리에서 GET, POST 같은 HTTP 메서드를 처리하는 서버 엔드포인트입니다. 웹훅, 폼 제출, 외부 API 프록시에 사용할 수 있습니다.

Route Handler는 App Router에서 API 엔드포인트를 정의하기 위한 파일입니다. app/api/.../route.ts에 HTTP 메서드 함수를 export하여 JSON 응답, webhook, proxy, 파일 다운로드 등을 처리합니다.

기본 예시

TypeScript
// app/api/health/route.ts
import { NextResponse } from 'next/server';

export async function GET() {
  return NextResponse.json({ ok: true });
}

메서드별 처리

TypeScript
export async function POST(request: Request) {
  const body = await request.json();
  const created = await createOrder(body);
  return Response.json(created, { status: 201 });
}

사용 사례

  • 외부 webhook 수신
  • 브라우저에 노출하면 안 되는 API key를 사용하는 server-side proxy
  • 인증이 필요한 JSON API
  • sitemap/rss/파일 응답 생성

주의점

Route Handler는 기본적으로 서버에서 실행되므로 secret 접근은 가능하지만, 응답 캐싱과 runtime을 이해해야 합니다. 인증/인가 검증 없이 내부 로직을 열어두면 API route 취약점이 됩니다.

TypeScript
export const runtime = 'nodejs'; // crypto, db driver 등 Node API가 필요할 때

면접 답변 포인트

Route Handler는 App Router의 서버 API 계층이며 HTTP 메서드별 함수를 export해 요청/응답을 다룹니다. 페이지 렌더링이 아니라 API, webhook, proxy 같은 서버 로직에 사용한다고 설명하면 됩니다.

관련 질문

같은 카테고리/태그 기준