Node.js 마스터 클래스 Ep 3. Express.js로 REST API 만들기
Ep 3. Express.js로 REST API 만들기
자바스크립트 파일(`*.js`)을 실행하는 것까지는 해봤는데, 웹 브라우저에서 접속할 수 있는 '서버'는 어떻게 만들까요? Node.js의 기본 모듈인 `http`를 써도 되지만, 우리는 더 쉽고 강력한 도구인 Express.js를 사용할 겁니다.
---
1. Express.js란 무엇인가?
Node.js를 위한 웹 프레임워크입니다. "바퀴를 다시 발명하지 말라"는 말처럼, 웹 서버를 만들 때 필요한 기본적인 기능(라우팅, 요청 처리 등)을 미리 만들어 둔 것이죠.
전 세계 Node.js 웹 서버의 대다수가 Express.js(혹은 이를 기반으로 한 NestJS 등)를 사용합니다.
2. 핵심 개념: 라우팅(Routing)과 미들웨어(Middleware)
(1) 라우팅 (Routing)
사용자가 어떤 주소로 들어왔느냐에 따라 다른 안내를 해주는 표지판입니다.
- `/` (홈) -> "환영합니다!"
- `/users` (사용자 목록) -> "여기 회원 명단입니다."
app.get('/', (req, res) => {
res.send('Hello World!');
});
(2) 미들웨어 (Middleware)
요청(Request)과 응답(Response) 사이에서 특정한 작업을 수행하는 함수입니다. 공항 보안 검색대와 비슷합니다. 비행기를 타기 전(응답을 받기 전)에 짐 검사(로그인 확인, 데이터 파싱)를 거치는 과정이죠.
---
🛠️ 오늘의 미션: 나만의 API 서버 만들기
이제 직접 서버를 띄워봅시다!
1. 프로젝트 폴더를 만들고 초기화합니다.
mkdir my-server
cd my-server
npm init -y
2. Express를 설치합니다.
npm install express
3. `server.js` 파일을 만들고 아래 코드를 입력합니다.
const express = require('express');
const app = express();
const PORT = 3000;
// JSON 데이터를 받을 수 있게 설정 (미들웨어)
app.use(express.json());
// 1. 홈 화면 (GET /)
app.get('/', (req, res) => {
res.send('<h1>나의 첫 번째 Node.js 서버!</h1>');
});
// 2. 데이터 반환 API (GET /api/profile)
app.get('/api/profile', (req, res) => {
const me = {
name: "홍길동",
skill: "Node.js",
level: "Beginner"
};
res.json(me);
});
// 서버 시작
app.listen(PORT, () => {
console.log(`서버가 http://localhost:${PORT} 에서 실행 중입니다.`);
});
4. 터미널에서 `node server.js`를 실행하세요.
5. 웹 브라우저를 열고 `http://localhost:3000`과 `http://localhost:3000/api/profile`에 접속해 보세요.
화면에 글자와 JSON 데이터가 보이나요? 축하합니다! 여러분은 방금 백엔드 개발자가 되셨습니다. 🎉
---
🔗 다음 예고
서버를 껐다 켜면 데이터가 사라지죠? 데이터를 영원히 저장할 수 있는 "데이터베이스 연동과 비동기 처리"에 대해 알아보겠습니다.