데브코스 웹풀스택 과정/TIL

[8기 9회차] 0915 백엔드 기초 - express와 REST API 실습

thinktank911 2025. 9. 15. 09:16

express란?

express는 Javascript로 작성되고 Node.js 런타임 환경에서 구동되는 웹 프레임워크. 다시 말해 웹 및 모바일 어플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 어플리케이션 프레임워크다.

만약 Node.js를 사용한다고 하면 대부분의 이유가 웹 서버를 구축하기 위해서이다. 또한 Node.js로 웹 서버를 구축한다고 하면 대부분 Express를 사용할 것이다.

 

express 설치

npm i express

 

http 와 express 비교

 

1) http 웹 서버 구동

let http = require('http');

// 클라이언트와 소통 함수
function onRequest(request, response){
    // head 적기 : 상태코드, 요청타입
    response.writeHead(200, {'Content-Type' : 'text/html'});
    // write body. body 적기
    response.write('Hello Node.js');
    // response 종료. 전송바람
    response.end(); 
}

// 서버 생성
http.createServer(onRequest).listen(8888);

 

2) express 웹 서버 구동

- express 모듈을 가져오는 방식이 CommonJs 방식과 ES module 방식이 조금 다르다.

- ES module 방식을 사용하려면 package.json에  "type" : "module"을 추가해야 한다.

- express 모듈을 app 변수에 담고, app.메서드 함수에 파라메터로 경로와 콜백함수를 넘긴다.

- res.send() 함수를 이용해 데이터를 화면에 보낼 수 있다.

// CommonJs 방식
const express = require('express');
// ES module 방식. package.json에 "type": "module" 추가
// import express from 'express'

// express 호출해 app변수에 서버 담음
const app = express()

// http://localhost:3000/ 
// '이 주소값으로 요청이 오면'을 간단히 표현
// app.get('요청경로',콜백함수[요청,응답])
// GET + "/"
app.get('/', (req, res) => {
  res.send('Hello World')
})

// 서버 셋팅. 순서 상관 없음
// 포트넘버 3000으로 설정함
app.listen(3000)

 

express REST API 실습/응용 - res.send()와 res.json()

1) res.send()

- json, text, html 등 모든 걸 통칭해서 전달한다.

app.get('/test', (req, res) => {
  res.send('TEST SUCCESS')
})

app.get('/test/1', (req, res) => {
  res.send('One!!')
})

 

2) res.json()

- json 객체를 전달한다.

app.get('/hello', (req, res) => {
  res.json({
    say: '안녕하세요'
  })
})

app.get('/bye', (req, res) => {
  res.json({
    say: '안녕히 가세요'
  })
})

// GET 메소드로, '/nicetomeetyou' 날라오면
// 매개변수로 전달받은 콜백함수를 호출 => 서버에 셋팅
app.get('/nicetomeetyou', (req, res) => {
  res.json({
    say: '만나서 반갑습니다'
  })
})

 

 

**객체란?
현실 세계의 사물이나 개념을 추상화하여 프로그래밍 등에서 다루는 단위로, 특정 속성(데이터)과 행위(기능)를 함께 묶어 놓은 것

ex."Node.js를 공부해보자"라는 책의 데이터 덩어리
- 상품명 : Node.js를 공부해보자
- 상품가격 : 20000
상품소개 : 이 책 좋음

 

JSON 이란? 

JSON은 JavaScript Object Notation의 약자로, 사람이 읽기 쉽고 시스템 간에 데이터를 주고받을 때 사용되는 텍스트 기반의 표준 데이터 형식이다. 서버와 클라이언트 간에 데이터를 교환하거나 데이터를 저장하는 데 널리 쓰이며, 속성-값 쌍(key-value pairs)으로 구성되는 구조화된 데이터를 효율적으로 표현한다.

 

let book  = {
    title  : "Node.js를 공부해보자",
    price : 20000,
    description : "이 책 좋음"
}

function print(obj){
    console.log(obj.title);
    console.log(obj.price);
    console.log(obj.description);
}

print(book);

 

객체 보내기

res.json()에 json 객체를 담아 메소드 전달한다.

// response를 json으로 받기
app.get('/products/1', (req, res) => {
  let book  = {
      title  : "Node.js를 공부해보자",
      price : 20000,
      description : "이 책 좋음"
  }

  res.json(book);
})

 

파라미터id를 변수로 받아서 데이터 전달하기

  • products/ ___빈칸에 오는 값을 n이라는 변수에 담기
  • : => 나한테 URL로 매개변수를 전달해줄 건가 보다
  • req.params : 요청 변수를 담는 메소드
  • req.params.변수id로 출력 가능
// products/ ___빈칸에 오는 값을 n이라는 변수에 담기
// : => 나한테 URL로 매개변수를 전달해줄 건가 보다
// req.params
app.get('/products/:n', (req, res) => {
    res.json({
        num : req.params.n
    })
    // console.log(req.params.n);
})