- UI 와 API는 무엇인가를 정리해보세요.
- http 모듈로 server를 생성하는 것과 express로 server를 생성하는 것의 차이점을 설명하세요.
- response를 반환할 때 사용하는
res.end()
,res.send()
,res.json()
의 차이점을 설명하세요.- 자주 사용하는 status 코드와 어떤 상황에서 사용하는지 정리해서 제출해 주세요.
👀 공통된 의미
Interface
UI
: User Interface
시스템 <----접점(중개자)----> 사용자
시스템이 사용자를 만나는 지점
API
: Application Programming Interface
웹 브라우저 상에서 나타난 이 얼럿은 누가 만들었을까?
해당 웹 브라우저 사의 개발자!
얼럿은 "코드"의 형태를 띄고 있는 Interface!
이 것들을 응용해서 우리는 application을 만든다!javascript:alert("Hello API!")
- http 모듈 : Node.js에서 가장 기본적이고 중요한 웹 모듈.하단과 같은 방식들을 이용하여 HTTP 서버를 생성하고 구동할 수 있다.
주요개념 | 설명 |
---|---|
Server객체 | 웹 서버를 생성할 때 사용하는 객체 |
response객체 | 응답 메시지를 작성할 때 request이벤트 리스너의 두 번째 매개변수로 전달되는 객체 |
request객체 | 응답 메시지를 작성할 때 request이벤트 리스너의 첫 번째 매개변수로 전달되는 객체 |
createServer() 메서드로 간단하게 생성완료
const http = require('http'); //http 모듈호출
http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/plain'
});
res.end('Hello World');
}).listen(3000);
👻 하지만, HTTP 모듈은 로우 레벨의 API 를 제공하기 때문에,
쿠키핸들링, 세션처리, 라우팅 등의 처리를 직접 구현해야한다.
- Express : 노드(Node.js) 상에서 동작하는 웹 개발 프레임워크이다. 따라서 Express 에서 제공하는 함수를 익히고 사용해야 한다.
Express를 쓸 때 장점은?
🐸 라우팅이 편하다
http와 달리 라우팅을 정의하는 함수와 서버를 생성하는 역할의 함수가 분리되어 있어서, 유지보수가 편하고 과정이 간편하다.
🐷 미들웨어 제공 및 추가
미들웨어
는 요청에 대한응답과정 중간에서 어떠한 동작을 하는 프로그램
이다. Express를 사용하면 미들웨어를 제공받을 수 있고, 또 직접 추가도 가능하다. 따라서 요청이 들어온 후, 응답 전에 미틀웨어가 지정한 동작을 수행할 수 있다.
.app.use((req, res, next) => { console.log('Hello~'); next(); });
res.end()
, res.send()
, res.json()
- res.send()
: 기본적으로 response를 보내주는(send) 역할을 한다.
이 때 res.send는 Content-Type을 파악하고 자동적으로 알맞게 지정해준다.buffer
,string
,Object
,Array
등이 있다.- res.json()
: json이 아닌 것도json
형식으로 바꾸어 보내준다. 즉, content-type 헤더를 application/JSON으로 고정한다.- res.end()
: 응답으로 보내줄 데이터가 없으므로 response를 끝내고 싶을 때 사용.(그닥 404 리턴 케이스 외에는 사용하지 않는다고함)app.get("/api/login", (req, res) => { // ... do something ... });
보통 HTTP 요청을 서버가 받게되면, res 반환한다.