* API ROUTER
일반적으로 웹 애플리케이션은 프론트엔드(사용자 인터페이스)와 백엔드(서버 및 데이터베이스 로직)로 구성됩니다. 백엔드 로직은 데이터베이스에 데이터를 저장하거나 가져오는 작업, 외부 서비스와의 통신, 비즈니스 로직 등을 처리하는 역할을 합니다.
Next.js의 API 라우트는 프론트엔드와 같은 코드베이스에서 이러한 백엔드 로직을 구현할 수 있는 기능을 제공합니다. 예를 들어, 사용자가 특정 데이터를 요청하면 API 라우트에서 데이터베이스를 조회하고, 해당 데이터를 JSON 형식으로 반환할 수 있습니다. 이로써 프론트엔드와 백엔드가 더 긴밀하게 통합되고, 개발자가 같은 환경에서 두 영역을 모두 다룰 수 있게 됩니다.
* HANDLER 함수
핸들러 함수는 API 라우트에서 특정 HTTP 요청을 처리하는 함수입니다. 이 함수는 HTTP 요청을 받아서 응답을 생성하는 역할을 합니다. Next.js에서는 이러한 함수를 pages/api 폴더에 정의하고, 해당 경로로 들어오는 모든 요청을 이 함수가 처리하게 됩니다.
핸들러 함수는 보통 두 가지 매개변수를 받습니다:
- req (요청 객체, NextApiRequest 타입): 클라이언트가 보낸 요청 정보를 담고 있습니다. 요청의 메서드(GET, POST 등), 헤더, 본문 등을 접근할 수 있습니다.
- res (응답 객체, NextApiResponse 타입): 서버가 클라이언트에게 보낼 응답을 구성합니다. 상태 코드 설정, JSON 데이터 반환, 헤더 설정 등을 할 수 있습니다.
이 함수는 JavaScript/TypeScript 코드로 작성되며, JavaScript의 일반적인 함수와 동일한 개념입니다. 다만, Next.js에서는 이를 사용하여 서버 사이드에서 HTTP 요청을 처리하는 역할을 합니다.
- API Routes는 Serverless Function 컨셉에 맞게 handler 함수 하나만 작성하는 컨셉으로 만들어짐.
* Serverless 함수
API Routes는 Serverless Function으로 구성되어 있습니다. Serverless Function의 컨셉은 요청(이벤트)이 들어올 때마다 지정된 함수를 실행시켜 원하는 API를 클라이언트에게 전달하는 것입니다. Serverless Function은 인프라를 관리하지 않아도 되며, 요청이 들어올 때마다 함수를 실행시키기 때문에 적은 비용으로 운영할 수 있고, 이벤트 기반이기 때문에 Serverless에서 동작하는 코드는 상태를 가지고 있지 않습니다. 즉, 데이터를 유지하지 않습니다.
'백앤드 수업복습' 카테고리의 다른 글
AWS Route 53 & vercel을 활용한 도메인 연결과 배포 방법 (2) | 2024.10.26 |
---|---|
EC2(AWS)에서 VPC(인스턴스) 생성 (+mobaXterm으로 서버 접속) (4) | 2024.10.24 |
HTTP 상태 코드 (status code) (1) | 2024.07.24 |
REST API URL 문제 풀이 (1) | 2024.07.24 |
API (Application Programming Interface) 란? / POSTMAN 기초 (2) | 2024.07.24 |