728x90
RESTful API의 특징과 장점
REST(Representational State Transfer)는 웹에서 클라이언트-서버 간 데이터 전송을 처리하는 아키텍처 스타일입니다.
RESTful API의 주요 특징
- 리소스 기반:
- 서버의 모든 데이터는 고유 URL로 식별됩니다.
- 예: http://localhost:3000/products는 제품 데이터를 나타냅니다.
- HTTP 메서드 사용:
- HTTP 메서드(GET, POST, PUT, DELETE 등)를 활용해 작업을 수행합니다.
- GET: 리소스 조회
- POST: 리소스 생성
- PUT: 리소스 수정
- DELETE: 리소스 삭제
- HTTP 메서드(GET, POST, PUT, DELETE 등)를 활용해 작업을 수행합니다.
- 무상태성:
- 서버는 클라이언트의 이전 요청 상태를 기억하지 않음. 클라이언트는 매 요청마다 필요한 정보를 포함해 전송해야 함.
- 확장성과 유지보수성이 뛰어납니다.
- 표준 응답 형식(JSON):
- 데이터를 JSON 형식으로 주고받아 플랫폼 간 호환성이 좋습니다
왜 RESTful API를 사용해야 하나?
현대 애플리케이션 개발에서의 중요성
- 다중 플랫폼 환경에서 클라이언트-서버 간 데이터 교환을 쉽게 처리하기 위한 표준화된 솔루션이 필요합니다.
- RESTful API는 간단하면서도 데이터 전송 방식을 제공하여 대부분의 현대 웹 및 모바일 애플리케이션에서 사용됩니다.
비교: REST vs 다른 방식
- SOAP: XML 기반의 무거운 프로토콜로, 구현과 유지보수가 복잡.
- GraphQL: REST보다 유연하지만, 초심자에게는 학습 곡선이 높음.
- REST는 학습과 구현이 쉬워, 중소규모 애플리케이션에 적합합니다.
1. 터미널에서 프로젝트를 초기화합니다
mkdir my-rest-api
cd my-rest-api
npm init -y
2. Express 설치합니다.
Express는 Node.js로 서버를 쉽게 만들 수 있게 해주는 프레임워크입니다. 다음 명령어로 Express를 설치합니다:
npm install express
3. 서버코드
const express = require('express');
const app = express();
const port = 3050;
// JSON 요청 본문을 처리하기 위한 미들웨어
app.use(express.json());
// 간단한 GET 엔드포인트
app.get('/', (req, res) => {
res.send('Hello, World!');
});
// 사용자 목록을 반환하는 엔드포인트
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
app.get('/users', (req, res) => {
res.json(users);
});
// 새로운 사용자를 추가하는 POST 엔드포인트
app.post('/users', (req, res) => {
const newUser = { id: users.length + 1, name: req.body.name };
users.push(newUser);
res.status(201).json(newUser);
});
// 특정 사용자를 삭제하는 DELETE 엔드포인트
app.delete('/users/:id', (req, res) => {
const userId = parseInt(req.params.id, 10);
users = users.filter(user => user.id !== userId);
res.status(204).send();
});
// 서버 시작
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
4. 서버 실행
터미널에서 node index.js 을 입력하여 서버를 실행합니다.
실행이되면 아래의 사진처럼 Sever is running on.... 이렇게 나옵니다.
http://localhost:3050 을 복사하여 인터넷 주소창에 붙여넣고 접속해보기
시연영상
'Nodejs' 카테고리의 다른 글
[Nodejs] 웹 스크래핑을 활용한 네이버 뉴스 헤드라인 텍스트 추출 (2) | 2025.02.03 |
---|---|
[Nodejs] sha256 사용해 해시값 생성하기 (0) | 2025.01.24 |
[Nodejs] OS 모듈 활용하기 (0) | 2025.01.17 |
[Nodejs] 환경변수 파일 활용해 환경변수 설정 및 사용하기 (0) | 2025.01.10 |
[Nodejs] process 객체 활용해 환경변수 값 가져오기 (0) | 2025.01.04 |