[nodejs] REST API 개념 이해
REST API(Representational State Transfer API)는 웹 서비스에서 사용되는 기술 중 하나인데, 이 기술은 HTTP 프로토콜을 사용하여 클라이언트와 서버 간의 통신을 처리합니다. REST API는 리소스와 리소스의 행동을 HTTP 메서드를 통해 정의하며, 클라이언트는 URL을 통해 해당 리소스에 접근하고 HTTP 메서드를 사용하여 해당 리소스의 행동을 수행합니다.
REST란 무엇인가요?
REST는 Representational State Transfer의 약자로, 웹 서비스를 구성하는 아키텍처 스타일 중 하나입니다. REST는 클라이언트와 서버 간의 통신을 위해 HTTP 프로토콜을 활용하며, 각 리소스에 대해 일관된 인터페이스를 제공합니다.
REST API의 특징
- 유니폼 인터페이스: 리소스에 접근하기 위한 표준화된 방법을 제공합니다.
- 무상태성(Stateless): 클라이언트의 상태를 서버에 저장하지 않고 요청 간에 모든 필요한 정보를 클라이언트가 제공하여 서버가 요청을 처리합니다.
- 캐시 가능(Cacheable): HTTP의 기능을 이용하여 응답을 캐시할 수 있습니다.
- 계층화(Layered System): 클라이언트는 서버와 직접적으로 통신하며, 서버는 다른 네트워크 계층을 통해 중개될 수 있습니다.
- 자체 설명성(Self-descriptiveness): 각 요청은 어떻게 처리되어야 하는지 설명하는 충분한 정보를 포함하고 있어야 합니다.
REST API의 예시
아래는 Node.js 환경에서 간단한 REST API를 작성한 예시입니다.
// express 모듈을 가져오고, 응용 프로그램을 생성함
const express = require('express');
const app = express();
// GET 메서드로 'hello world' 메시지를 반환
app.get('/', (req, res) => {
res.send('hello world');
});
// POST 메서드로 JSON 데이터를 수신
app.post('/api/data', (req, res) => {
const body = req.body;
// JSON 데이터를 처리하고 성공 메시지를 반환
res.send('Data received: ' + JSON.stringify(body));
});
// 서버를 3000번 포트로 실행
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
위의 예시는 Express 프레임워크를 사용하여 간단한 REST API를 작성한 것입니다. 클라이언트가 GET 요청을 보내면 ‘hello world’ 메시지를 반환하고, POST 요청을 보내면 JSON 데이터를 받아 처리한 후 성공 메시지를 반환합니다.
결론
REST API는 클라이언트와 서버 간의 효율적이고 일관된 통신을 가능하게 합니다. 이를 통해 웹 서비스의 개발 및 유지보수를 보다 효율적으로 처리할 수 있으며, 네트워크 상의 자원을 효율적으로 활용할 수 있게 됩니다.
참고 문헌: MDN Web Docs