Express란 무엇인가

서수·2022년 12월 11일
1

Node.js

목록 보기
1/2
post-thumbnail

Express란 무엇인가

express는 경량화 웹 개발 프레임 워크로, Node를 이용한 웹 어플리케이션 개발에 가장 널리 쓰이는 확장 모듈 중 하나입니다.
express는 기본 모듈 중 하나인 http 모듈을 이용하여 웹 서버를 구축하고 데이터를 표시하는 방식을 좀 더 추상화하여 웹 서비스나 웹 어플리케이션 개발을 더 편리하고 수월하게 할 수 있도록 다양한 API를 제공합니다. express는 기본 모듈 중 하나인 http 모듈을 이용하여 웹 서버를 구축하고 데이터를 표시하는 방식을 좀 더 추상화하여 웹 서비스나 웹 애플리케이션 개발을 더 편리하고 수월하게 할 수 있도록 다양한 API를 제공한다. Node.js에서의 구현과 동일하게 이벤트 처리를 통합해 가는 기본적인 개발 스타일은 변함이 없지만, 준비되어 있는 다양한 객체를 통해 쉽게 필요한 처리를 만들 수 있다. Express는 단지 서버를 편리하게 가져오게 해주는 모듈일 뿐이다. Node.js를 사용한 REST 서버를 편리하게 구현하게 해주는 프레임워크로는 Koa, Hapi, Express 등이 있다.

REST는 Representational State Transfer를 의미한다.
자원을 이름으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미한다고 한다.
자원은 해당 소프트웨어가 관리하는 모든 것을 의미하며, 상태의 전달은 데이터가 요청되어지는 시점에서 요청받은 자원의 상태(정보)를 전달하는 것을 의미하는데, 보통 Json 형태나 XML형태를 이용하여 자원의 상태를 전달하게 된다. REST의 구체적인 개념은 HTTP URL을 통해 자원을 명시하고 HTTP Method(POST, GET, DELETE, PUT) 을 통해 해당 자원에 대한 CRUD(CREATE, READ, UPDATE, DELETE) 오퍼레이션을 적용하는 것이라고 할 수 있다.

Express 를 이용한 서버구현

server.js 라는 파일을 만들어 주고 아래 코드를 작성한다.

const express = require('express')
const app = express();

app.get("/", (req, res) => {
	res.send("hello Javascript")
});

app.listen(3000, ()=>{
	console.log("3000번 포트로 서버가 열렸습니다!")
});

app이라는 변수명에다 express() 의 반환 값을 저장한다. app.listen 안에 숫자는 서버로 접근하기 위한 port 번호이며, 서버로 가는 길이라고 생각하면 된다.

app.get("/", (req, res) => {
	res.send("hello Javascript")
});

REST API 한가지 종류인 GET request 를 정의하는 부분입니다. GET 요청으로 정의가 되고 있습니다. 위와 같이 엔드포인트 생성 시 파라미터는 두가지를 받습니다. 첫번째는 URL 정의이며 해당 URL에서 수행할 작업 및 응답을 정의 할 수 있습니다. URL 정의를 통해서 "http://localhost:3000" 일 때, 두 번째 파라미터 함수를 실행합니다.

이 함수에는 두개의 파라미터를 받는데 요청에 해당하는 req (reqeust) 와 응답에 해당하는 res (response)입니다. 요청에 대한 정보는 req 에 저장되어 있고 응답 할 때 res 파라미터를 사용하여 응답 정보를 수신합니다. res의 send 메소드를 통해 "hello Javascript"를 보이게끔 보내주는 것입니다. (send)

참고 자료

https://inpa.tistory.com/entry/EXPRESS-%F0%9F%93%9A-%EC%9D%B5%EC%8A%A4%ED%94%84%EB%A0%88%EC%8A%A4-%EC%84%A4%EC%B9%98-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0
https://basemenks.tistory.com/254
https://basemenks.tistory.com/261

profile
패션디자인과 출신 비전공자가 개발자로 성장하려 만든 노트

0개의 댓글