Express.js로 간단한 REST API 만들기 — 올바른 방법
Source: Dev.to

대부분의 Node.js 개발자는 백엔드 개발을 배우면서 Express부터 시작합니다. 하지만 경험이 풍부한 개발자조차도 확장성, 유지보수성 및 보안에 영향을 미치는 핵심 아키텍처 결정을 간과하는 경우가 많습니다.
오늘은 Express.js를 사용해 깔끔하고 모듈화된 REST API를 만드는 과정을 살펴보겠습니다. 다룰 내용은 다음과 같습니다:
- API 구조
- 라우팅
- 컨트롤러
- 미들웨어
- 오류 처리
- 환경 설정
🧱 Project Structure
깨끗한 구조로 시작합니다:
project-root/
├── controllers/
├── routes/
├── middlewares/
├── models/
├── config/
├── utils/
├── app.js
└── server.js
이러한 모듈식 설정은 애플리케이션이 성장함에 따라 잘 확장됩니다.
🧪 Step-by-Step: Create a Simple API
1. Install Express
npm init -y
npm install express dotenv
2. Create server.js
const app = require('./app');
const PORT = process.env.PORT || 5000;
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
3. Create app.js
const express = require('express');
const app = express();
const userRoutes = require('./routes/userRoutes');
app.use(express.json());
app.use('/api/users', userRoutes);
// Global error handler
app.use((err, req, res, next) => {
res.status(err.status || 500).json({ message: err.message });
});
module.exports = app;
4. Add a Controller (controllers/userController.js)
exports.getAllUsers = (req, res) => {
res.json([{ id: 1, name: 'Dipak' }]);
};
5. Add a Route (routes/userRoutes.js)
const express = require('express');
const router = express.Router();
const userController = require('../controllers/userController');
router.get('/', userController.getAllUsers);
module.exports = router;
🛡️ Add Environment Config
.env파일을 생성합니다:
PORT=5000
NODE_ENV=development
server.js에서 로드합니다 (dotenv는 이미 설치되어 있음):
require('dotenv').config();
🔒 Add Error Handling Middleware
middlewares/errorHandler.js 파일을 생성합니다:
const errorHandler = (err, req, res, next) => {
console.error(err.stack);
res.status(500).json({ message: 'Something went wrong!' });
};
module.exports = errorHandler;
app.js에 등록합니다:
const errorHandler = require('./middlewares/errorHandler');
app.use(errorHandler);
📦 Bonus: Add CORS & Helmet for Security
npm install cors helmet
const cors = require('cors');
const helmet = require('helmet');
app.use(cors());
app.use(helmet());
✅ Final Output
서버를 실행합니다:
node server.js
http://localhost:5000/api/users 에 접속하면 다음과 같은 결과를 확인할 수 있습니다:
[
{ "id": 1, "name": "Dipak" }
]
깨끗하고 모듈화된, 프로덕션 준비가 된 API입니다!
🔚 Final Thoughts
Node.js에서 REST API를 만드는 것은 간단합니다 — 하지만 올바르게 만들려면 계획이 필요합니다. 깨끗하게 시작하고, 로직을 모듈화하며, 보안된 엔드포인트를 구축하세요. 이제 단순히 Express를 배우는 것이 아니라, 더 나은 백엔드 엔지니어가 되는 길을 걷고 있습니다.