반응형
📌 개요
Node.js를 이용해 백엔드를 만들 때 가장 많이 쓰이는 프레임워크가 바로 Express.js입니다.
이번 포스팅에서는 Express를 이용해 간단한 REST API 서버를 만드는 방법을 실습 형태로 알려드릴게요.
- 설치부터 시작해서
- 라우팅 구조 설계
- JSON 데이터 처리
- CRUD API 완성
까지 차근차근 따라올 수 있습니다.
🧠 핵심 개념
🚀 Express란?
- Node.js에서 동작하는 웹 프레임워크
- 라우팅, 미들웨어, 에러 처리 등을 간단하게 처리 가능
- REST API 설계에 적합한 구조 제공
🌐 REST API란?
- URI(자원) + HTTP 메서드로 동작하는 API 패턴
- 예:
- GET /posts → 글 목록 가져오기
- POST /posts → 새 글 등록하기
- DELETE /posts/:id → 특정 글 삭제하기
💡 실전 팁 또는 실습
📁 1단계: 프로젝트 생성
mkdir my-rest-api
cd my-rest-api
npm init -y
npm install express
🧱 2단계: 기본 서버 코드 작성
// index.js
const express = require('express');
const app = express();
const PORT = 3000;
app.use(express.json()); // JSON 파싱
app.get('/', (req, res) => {
res.send('Hello REST API!');
});
app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});
실행:
node index.js
📚 3단계: 간단한 CRUD API 만들기
let posts = [
{ id: 1, title: "첫 번째 글" },
{ id: 2, title: "두 번째 글" }
];
// 전체 글 조회
app.get('/posts', (req, res) => {
res.json(posts);
});
// 단일 글 조회
app.get('/posts/:id', (req, res) => {
const post = posts.find(p => p.id === Number(req.params.id));
post ? res.json(post) : res.status(404).send("글 없음");
});
// 글 추가
app.post('/posts', (req, res) => {
const newPost = {
id: posts.length + 1,
title: req.body.title
};
posts.push(newPost);
res.status(201).json(newPost);
});
// 글 삭제
app.delete('/posts/:id', (req, res) => {
posts = posts.filter(p => p.id !== Number(req.params.id));
res.status(204).send();
});
실행:
node index.js
🧪 테스트 방법
Postman 또는 curl로 테스트 가능:
# 전체 글 조회
curl http://localhost:3000/posts
# 글 등록
curl -X POST -H "Content-Type: application/json" -d '{"title": "새 글"}' http://localhost:3000/posts
✅ 마무리
Express는 배우기 쉽고 빠르게 API 서버를 만들 수 있어 토이 프로젝트, 포트폴리오, MVP 제작에 매우 적합한 프레임워크입니다.
기초부터 차근차근 실습하며 익히다 보면,
곧 JWT 인증, DB 연결, 미들웨어 분리 등 고급 기능도 쉽게 확장할 수 있습니다.
📎 다음 글 예고
- Swagger로 REST API 문서 자동화하기
- Express + MongoDB 연결 실습
- JWT로 사용자 인증 API 만들기
반응형
'개발' 카테고리의 다른 글
🧼 OCR 성능 향상을 위한 이미지 전처리 전략 (0) | 2025.03.26 |
---|---|
📃 Swagger로 REST API 문서 자동화하기 (0) | 2025.03.26 |
⚔️ REST vs GraphQL: 언제 무엇을 써야 할까? (1) | 2025.03.26 |
⚔️ Git 충돌(conflict) 해결 방법: 실전 가이드 (0) | 2025.03.26 |
🤝 실전 협업 시 Git 사용법 (1) | 2025.03.26 |