10강. Express Routing(라우팅)
이번 강의에서는 Express의 핵심 기능인 Routing(라우팅)을 배웁니다.
목표: URL에 따라 다른 페이지를 보여주고, GET·POST·PUT·DELETE 요청을 처리할 수 있습니다.
1. Routing(라우팅)이란?
라우팅은 사용자가 요청한 URL에 따라 다른 작업을 수행하는 기능입니다.
예를 들어
브라우저
http://localhost:3000/
│
▼
홈페이지
http://localhost:3000/about
│
▼
회사소개
http://localhost:3000/login
│
▼
로그인
Express에서는 app.get(), app.post() 등을 이용해 라우팅을 정의합니다.
2. GET 요청
GET은 데이터를 조회할 때 사용합니다.
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("홈페이지");
});
app.listen(3000);
브라우저 접속
http://localhost:3000
3. 여러 개의 GET 페이지
app.get("/", (req,res)=>{
res.send("메인");
});
app.get("/about",(req,res)=>{
res.send("회사소개");
});
app.get("/product",(req,res)=>{
res.send("상품");
});
결과
/
↓
메인
/about
↓
회사소개
/product
↓
상품
4. POST 요청
POST는 데이터를 서버에 저장할 때 사용합니다.
app.post("/login",(req,res)=>{
res.send("로그인 완료");
});
브라우저 주소창에서는 POST 요청을 직접 보낼 수 없으며, 보통 폼(form) 또는 JavaScript(fetch)를 사용합니다.
5. PUT 요청
PUT은 기존 데이터를 수정할 때 사용합니다.
app.put("/member",(req,res)=>{
res.send("회원 수정");
});
6. DELETE 요청
DELETE는 데이터를 삭제할 때 사용합니다.
app.delete("/member",(req,res)=>{
res.send("회원 삭제");
});
7. REST API 구조
기능 Method URL
회원 조회 GET /member
회원 등록 POST /member
회원 수정 PUT /member/:id
회원 삭제 DELETE /member/:id
실무에서는 위와 같은 형태를 많이 사용합니다.
8. URL Parameter
주소에 값을 전달하는 방법입니다.
app.get("/user/:id",(req,res)=>{
console.log(req.params.id);
res.send(req.params.id);
});
브라우저
http://localhost:3000/user/10
결과
10
9. 여러 개의 Parameter
app.get("/user/:id/:name",(req,res)=>{
res.json(req.params);
});
브라우저
http://localhost:3000/user/1/홍길동
결과
{
"id":"1",
"name":"홍길동"
}
10. Query String
주소 뒤에 데이터를 전달하는 방법입니다.
app.get("/search",(req,res)=>{
console.log(req.query);
res.json(req.query);
});
브라우저
http://localhost:3000/search?keyword=node&page=1
결과
{
"keyword":"node",
"page":"1"
}
11. req.params
app.get("/product/:id",(req,res)=>{
res.send(req.params.id);
});
브라우저
/product/5
↓
5
12. req.query
app.get("/board",(req,res)=>{
console.log(req.query.page);
});
브라우저
/board?page=3
↓
3
13. req.method
현재 요청 방식을 확인합니다.
app.get("/",(req,res)=>{
console.log(req.method);
res.send("OK");
});
결과
GET
14. req.url
요청한 URL 확인
app.get("*",(req,res)=>{
console.log(req.url);
res.send("URL 확인");
});
예시
/about
15. 실습 1
회원 조회
app.get("/member",(req,res)=>{
res.send("회원 목록");
});
16. 실습 2
회원 등록
app.post("/member",(req,res)=>{
res.send("회원 등록");
});
17. 실습 3
상품 상세보기
app.get("/product/:id",(req,res)=>{
res.send(`상품번호 : ${req.params.id}`);
});
접속
/product/15
↓
상품번호 : 15
18. 실습 4
검색 기능
app.get("/search",(req,res)=>{
res.send(req.query.keyword);
});
접속
/search?keyword=React
↓
React
19. 실무 프로젝트 예시
GET /board
POST /board
GET /board/10
PUT /board/10
DELETE /board/10
GET /member
POST /member
GET /member/3
PUT /member/3
DELETE /member/3
이 구조는 게시판, 쇼핑몰, 회원관리 등 대부분의 웹 서비스에서 공통적으로 사용됩니다.
20. 이번 강의 핵심 정리
문법 설명
app.get() 조회(GET)
app.post() 등록(POST)
app.put() 수정(PUT)
app.delete() 삭제(DELETE)
req.params URL Parameter
req.query Query String
req.method 요청 방식
req.url 요청 주소
실무 팁
req.params와 req.query는 용도가 다릅니다.
구분 사용 예
req.params /product/15, /member/3처럼 특정 자원을 식별할 때
req.query /search?keyword=node&page=2처럼 검색, 정렬, 페이지 번호 등 옵션을 전달할 때
REST API를 설계할 때 이 둘을 적절히 구분하면 코드가 훨씬 명확해집니다.
실습 미션
다음 API를 만들어 보세요.
Method URL 결과
GET / 홈페이지
GET /member 회원목록
GET /member/1 회원번호 출력
POST /member 회원등록
PUT /member/1 회원수정
DELETE /member/1 회원삭제
GET /search?keyword=node 검색어 출력
이번 강의에서는 Express의 핵심 기능인 Routing(라우팅)을 배웁니다.
목표: URL에 따라 다른 페이지를 보여주고, GET·POST·PUT·DELETE 요청을 처리할 수 있습니다.
1. Routing(라우팅)이란?
라우팅은 사용자가 요청한 URL에 따라 다른 작업을 수행하는 기능입니다.
예를 들어
브라우저
http://localhost:3000/
│
▼
홈페이지
http://localhost:3000/about
│
▼
회사소개
http://localhost:3000/login
│
▼
로그인
Express에서는 app.get(), app.post() 등을 이용해 라우팅을 정의합니다.
2. GET 요청
GET은 데이터를 조회할 때 사용합니다.
const express = require("express");
const app = express();
app.get("/", (req, res) => {
res.send("홈페이지");
});
app.listen(3000);
브라우저 접속
http://localhost:3000
3. 여러 개의 GET 페이지
app.get("/", (req,res)=>{
res.send("메인");
});
app.get("/about",(req,res)=>{
res.send("회사소개");
});
app.get("/product",(req,res)=>{
res.send("상품");
});
결과
/
↓
메인
/about
↓
회사소개
/product
↓
상품
4. POST 요청
POST는 데이터를 서버에 저장할 때 사용합니다.
app.post("/login",(req,res)=>{
res.send("로그인 완료");
});
브라우저 주소창에서는 POST 요청을 직접 보낼 수 없으며, 보통 폼(form) 또는 JavaScript(fetch)를 사용합니다.
5. PUT 요청
PUT은 기존 데이터를 수정할 때 사용합니다.
app.put("/member",(req,res)=>{
res.send("회원 수정");
});
6. DELETE 요청
DELETE는 데이터를 삭제할 때 사용합니다.
app.delete("/member",(req,res)=>{
res.send("회원 삭제");
});
7. REST API 구조
기능 Method URL
회원 조회 GET /member
회원 등록 POST /member
회원 수정 PUT /member/:id
회원 삭제 DELETE /member/:id
실무에서는 위와 같은 형태를 많이 사용합니다.
8. URL Parameter
주소에 값을 전달하는 방법입니다.
app.get("/user/:id",(req,res)=>{
console.log(req.params.id);
res.send(req.params.id);
});
브라우저
http://localhost:3000/user/10
결과
10
9. 여러 개의 Parameter
app.get("/user/:id/:name",(req,res)=>{
res.json(req.params);
});
브라우저
http://localhost:3000/user/1/홍길동
결과
{
"id":"1",
"name":"홍길동"
}
10. Query String
주소 뒤에 데이터를 전달하는 방법입니다.
app.get("/search",(req,res)=>{
console.log(req.query);
res.json(req.query);
});
브라우저
http://localhost:3000/search?keyword=node&page=1
결과
{
"keyword":"node",
"page":"1"
}
11. req.params
app.get("/product/:id",(req,res)=>{
res.send(req.params.id);
});
브라우저
/product/5
↓
5
12. req.query
app.get("/board",(req,res)=>{
console.log(req.query.page);
});
브라우저
/board?page=3
↓
3
13. req.method
현재 요청 방식을 확인합니다.
app.get("/",(req,res)=>{
console.log(req.method);
res.send("OK");
});
결과
GET
14. req.url
요청한 URL 확인
app.get("*",(req,res)=>{
console.log(req.url);
res.send("URL 확인");
});
예시
/about
15. 실습 1
회원 조회
app.get("/member",(req,res)=>{
res.send("회원 목록");
});
16. 실습 2
회원 등록
app.post("/member",(req,res)=>{
res.send("회원 등록");
});
17. 실습 3
상품 상세보기
app.get("/product/:id",(req,res)=>{
res.send(`상품번호 : ${req.params.id}`);
});
접속
/product/15
↓
상품번호 : 15
18. 실습 4
검색 기능
app.get("/search",(req,res)=>{
res.send(req.query.keyword);
});
접속
/search?keyword=React
↓
React
19. 실무 프로젝트 예시
GET /board
POST /board
GET /board/10
PUT /board/10
DELETE /board/10
GET /member
POST /member
GET /member/3
PUT /member/3
DELETE /member/3
이 구조는 게시판, 쇼핑몰, 회원관리 등 대부분의 웹 서비스에서 공통적으로 사용됩니다.
20. 이번 강의 핵심 정리
문법 설명
app.get() 조회(GET)
app.post() 등록(POST)
app.put() 수정(PUT)
app.delete() 삭제(DELETE)
req.params URL Parameter
req.query Query String
req.method 요청 방식
req.url 요청 주소
실무 팁
req.params와 req.query는 용도가 다릅니다.
구분 사용 예
req.params /product/15, /member/3처럼 특정 자원을 식별할 때
req.query /search?keyword=node&page=2처럼 검색, 정렬, 페이지 번호 등 옵션을 전달할 때
REST API를 설계할 때 이 둘을 적절히 구분하면 코드가 훨씬 명확해집니다.
실습 미션
다음 API를 만들어 보세요.
Method URL 결과
GET / 홈페이지
GET /member 회원목록
GET /member/1 회원번호 출력
POST /member 회원등록
PUT /member/1 회원수정
DELETE /member/1 회원삭제
GET /search?keyword=node 검색어 출력
#10강. Express Routing(라우팅)