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 같은 서버 로직에 사용한다고 설명하면 됩니다.