[Express] Express란?
📌 Nodejs, 그리고 Express의 등장
2009년 Ryan Dahl에 의해 자바스크립트 런타임 Nodejs가 개발되면서 기존의 Web browser를 구성할 수 있는 언어인 JavaScript 로 클라이언트와 서버를 보다 쉽게 구현할 수 있게 되었다. 그 결과 Nodejs는 선풍적인 인기를 끌며 수 많은 개발자들에게 지금까지도 사랑받는 웹 어플리케이션 제작 소프트웨어로 자리잡게 되었다.
but... 거기서 쉽게 만족할 개발자들이 아니라는 것을 우리 모두는 잘 알고 있다.
항상 복잡하고 방대한 것보다 쉽고 간단한 것을 좋아하는 이 대단한 사람들은 이내 불편한 점을 찾게 되었는데 그것은 nodejs가 웹 어플리케이션 즉, 서버를 구현함에 있어서 고려해야할 사항 (HTTP request, 쿠키 파싱, 세션관리, 라우팅 구성 등등...) 이 너무 많다는 것에서 비롯된 투박하고 세련되지 못함이었다.
이 방대한 양의 코드와 복잡한 작동원리를 개선하기 위해 개발자들은 궁리하기 시작했고.. 그 결과 완벽히 Nodejs 위에서 동작하는 웹 프레임워크를 만들어내게 되었는데, 그것이 바로 "Express" 이다.
🔨 Framework
Express는 프레임워크이다. 그렇다면 프레임워크는 무엇일까?
웹 서버를 제작함에 있어서 항상해야하지만 귀찮은 부분들이 분명 존재한다. 가령, URL 파라미터를 통해 데이터를 처리한다던지, 정적인 파일을 제공하는 것, 로그인 기능, 보안 등이다. 이러한 것들은 분명 필수적인 내용이지만 공통적인 내용이며 매번 반복되는 내용이다.
Framework는 놀랍게도 이렇게 귀찮고 복잡한 일을 미리 기능적으로 마련해주는 tool이다. 한 마디로 우리의 프로그램을 쉽게 만들기 위한 요소와 규약, 룰 등을 Framework가 제공해 주는 것이다. 이제 복잡하고 어려운 일들은 Framework를 통해 쉽게 구현할 수 있게 되었고, 개발자는 웹 사이트의 개성적인 부분과 서비스와 같은 파트에 더욱 집중할 수 있게 되었다.
🌠 Express의 특징
Express는 nodejs에서 가장 보편적으로 사용되는 프레임 워크 중 하나이다. Express는 다음과 같은 매커니즘을 제공하게 된다.
- HTTP 통신 요청(Request; GET, POST, DELETE 등)에 대한 핸들러를 만든다.
- 템플릿에 데이터를 넣어 응답(response)을 만들기 위해 view의 렌더링 엔진과 결합(integrate)한다.
- 접속을 위한 포트나 응답 렌더링을 위한 템플릿 위치같은 공통 웹 어플리케이션 세팅을 한다.
- 핸들링 파이프라인(reqest handling pipeline) 중 필요한 곳에 추가적인 미들웨어 처리 요청을 추가한다.
이외에도 많은 라이브러리들이 탑재되어있다.
(출처: https://developer.mozilla.org/ko/docs/Learn/Server-side/Express_Nodejs/Introduction)
그 중에서도 특히, 라우터(router) 라는 메소드의 콜백함수를 사용하여 서버와 통신하는 방식은 정말 쉽고 편리하기 때문에 많은 유저들이 사용하고 있다.
router
app.get('/', function (req, res) {
res.send('Hello World!');
});
이렇게 다양한 기능을 제공하는 Express... 사용하기는 편리하지만 각각의 기능을 알고있어야한다. 즉, 공부하는데 시간과 노력을 쏟아부어야 한다는 것이다. 그렇기에 간단하고 쉬운 어플리케이션을 제작하는 것보다는 체계적이고 복잡한 어플리케이션을 구현하고자 할 때, Express는 더 큰 힘을 발휘할 것이다.
따라서 Nodejs를 기반으로 Express 프레임워크의 기능들을 적재적소에 알맞게 사용하여 훌륭한 웹 어플리케이션을 한번 만들어본다면 웹 개발자로써의 자질은 충분히 갖추게 될 것이다.
Author And Source
이 문제에 관하여([Express] Express란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjh950330/Express-Express란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)