익스프레스에서 사용하는 요청(req-Request) 객체와 응답(res-Response) 객체는 http 모듈에서 사용하는 객체들과 같지만, 몇 가지 메소드를 더 추가할 수 있다. 응답 객체 주요 메소드 메소드 이름 설명 send([body]) 클라이언트에 응답 데이터를 보낸다. 전달할 수 있는 데이터엔 HTML 문자열, Buffer 객체, JSON 객체, JSON 배열 등이 있다. status(code) HTTP 상태 코드를 반환한다. 상태 코드는 end()나 send() 같은 전송 메소드를 추가로 호출해야 전송할 수 있다. sendStatus(statusCode) HTTP 상태 코드를 반환한다. 상태 코드는 상태 메시지와 함께 전송된다. redirect([status,] path) 웹 페이지 경로를 ..
익스프레스 공식 사이트에 들어가면 다음과 같은 예제를 확인할 수 있다. const express = require('express') const app = express() const port = 3000 app.get('/', (req, res) => { res.send('Hello World!') }) app.listen(port, () => { console.log(`Example app listening at http://localhost:${port}`) }) 코드에서 반복적으로 등장하는 app 객체는 express() 메소드 호출로 생성되는 익스프레스 서버 객체를 의미한다. 그리고 이 서버 객체는 다음과 같은 주요 메소드들을 지니고 있다. 메소드 이름 설명 set(name, value) 서버 ..
이벤트 루프(Event Loop) Node.js는 이벤트(Event)를 기반으로 비동식 방식으로 처리하기 때문에, 객체 간에 이벤트를 전달한다. Node.js를 기반으로 한 웹 서버는 이벤트를 대기하는 메인 루프가 있고, 이벤트가 감지되면 콜백함수를 호출하는 형태를 띈다. Node.js에서의 이벤트 이벤트를 단순하게 말하자면 한쪽에서 다른 쪽으로 알림 메시지를 보내는 것과 비슷하다. 콜백함수는 비동기 함수에서 결과 값을 반환할 때 호출되는 반면에, 이벤트는 옵저버 패턴에 의해 작동된다. 이벤트 리스너(Event Listener)가 이벤트가 발생하기를 기다리다가, 이벤트가 발생하면 이벤트 핸들링 함수를 실행한다. Node.js에는 이런 이벤트를 보내고 받을 수 있도록 EventEmitter 클래스가 정의되..