ExpressJS 소개 [+6 학습 리소스]

게시 됨: 2023-01-04

ExpressJS는 모바일 및 웹 애플리케이션 모두를 위한 일련의 기능을 제공하는 미니멀하고 유연한 Node.js 웹 프레임워크입니다.

이 오픈 소스 웹 프레임워크는 TJ Holowaychuk이 개발했습니다. ExpressJS는 Node.js 재단에서 관리합니다.

왜 ExpressJS인가?

ExpressJS는 개발자가 백엔드, 웹 앱 및 웹 사이트를 구축하는 데 도움이 되는 간단한 API를 제공합니다. 따라서 이 웹 프레임워크는 Python의 Django 및 Ruby의 Rails와 비교할 수 있습니다.

익스프레스

그러나 API/애플리케이션을 구축하는 독단적인 방식을 가진 Django 및 Rails와 달리 ExpressJS는 작업을 수행하는 '최선의 방법'이 없기 때문에 매우 유연하고 연결 가능합니다.

요약하면 이것이 ExpressJS를 사용해야 하는 이유입니다.

  • API 및 웹 애플리케이션을 쉽게 생성할 수 있습니다.
  • API가 강력하여 라우팅이 쉬워집니다.
  • 비동기 및 단일 스레드

ExpressJS의 특징

#1. MEAN 스택의 일부

JavaScript는 전체 스택 애플리케이션의 프런트엔드와 백엔드 모두에서 사용할 수 있는 프레임워크를 가지고 있기 때문에 여전히 가장 인기 있는 프로그래밍 언어 중 하나입니다.

일부 Javascript 개발자는 MEAN, MongoDB, Express, Node.js의 짧은 형식을 사용합니다. 전체 스택 애플리케이션을 만들기 위한 Node.js 및 AngularJS. 일부 개발자는 Reactjs를 선호하고 MERN(MongoDB, Express, Node.js 및 Reactjs) 스택을 사용합니다. 두 옵션 모두에서 Expressjs는 일정하게 유지됩니다.

#2. 유연하고 빠름

ExpressJS는 최소한으로 설계되었기 때문에 더 큰 프레임워크의 많은 다른 부분을 마스터할 필요가 없습니다. 뛰어난 라우팅 시스템, 즉시 사용할 수 있는 콘텐츠 협상 및 미들웨어의 존재로 인해 속도가 빨라집니다.

#삼. 확장 가능

많은 조직에서 Express를 사용하는 이유는 Express에 구축된 애플리케이션을 쉽게 확장할 수 있기 때문입니다. 대규모 애플리케이션을 개발할 때 Express는 추가 구성이 거의 또는 전혀 필요하지 않습니다. 많은 모듈, 패키지 및 추가 리소스가 있으므로 대규모 응용 프로그램을 쉽게 개발할 수 있습니다.

#4. 미들웨어의 존재

ExpressJS에는 개발 프로세스를 가속화하고 향상시키는 일련의 미들웨어 앱이 있습니다. 미들웨어를 사용하면 프레임워크에서 클라이언트 요청 전후에 일반 스크립트를 쉽게 실행할 수 있습니다. 미들웨어가 있으면 개발자가 가입/로그인 및 로그아웃과 같은 클라이언트 작업을 쉽게 확인할 수 있습니다.

#5. 강력한 라우팅 시스템

ExpressJS의 라우팅 시스템을 통해 개발자는 거의 모든 HTTP 요청을 처리하는 강력한 API를 만들 수 있습니다. 라우터 인스턴스를 사용하여 코드를 관리 가능한 파일로 분할할 수 있으므로 부풀려진 라우팅 시스템으로 끝날 필요가 없습니다. 애플리케이션을 더 잘 관리하기 위해 서로 다른 경로를 단일 디렉토리/폴더로 그룹화할 수도 있습니다.

ExpressJS의 아키텍처

ExpressJS-1 아키텍처
이미지 크레디트: turing.com

익스프레스 애플리케이션에는 다음과 같은 구성 요소가 있습니다.

  • 종속성 . ExpressJS 자체는 의존성입니다. npm 명령을 사용하여 다른 종속성을 설치할 수 있습니다.
  • 미들웨어 . ExpressJS 설정의 미들웨어는 요청/응답 주기를 결정하는 기능입니다.
  • 인스턴스화 . 이들은 객체를 생성하는 데 사용되는 단순한 명령문입니다.
  • 구성 . 구성은 인스턴스화 후 또는 별도의 파일에 정의된 사용자 지정 응용 프로그램 기반 설정입니다.
  • 경로 . 경로는 클라이언트가 다양한 리소스에 도달하거나 서버에서 정의한 특정 작업을 수행하는 데 사용하는 끝점입니다.
  • 부트스트래핑 서버 . app.listen() 함수가 실행되어 개발 서버를 시작합니다.

시작하기: ExpressJS

ExpressJS는 Node.js에서 실행되므로 PC에 설치해야 합니다.

개발 환경의 모든 종속성을 관리하려면 npm(노드 패키지 관리자)도 필요합니다.

운영 체제에 따라 공식 웹 사이트를 통해 Node를 설치할 수 있습니다.

완료되면 이 두 명령을 실행하여 각각 node와 npm이 설치되었는지 확인합니다.

 node --version
 npm --version

ExpressJS 설치

다음과 같이하세요

  • 간단한 ExpressJS 앱을 만듭니다. 수동으로 만들거나 다음 명령을 사용할 수 있습니다.
 mkdir myapp
 cd myapp
  • 이 명령을 사용하여 package.json 파일을 만듭니다.
 npm init
  • 제공된 프롬프트에 따라 명령을 수락합니다. 그러나 변경하십시오. 진입점: (index.js)에서 app.js로
  • 이 명령을 사용하여 ExpressJS를 설치하십시오.
 npm install express
  • "Hello World" 표시

루트 디렉터리 안에 있는 동안 파일을 만들고 이름을 app.js로 지정합니다.

이 코드 추가

 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 on port ${port}`) })

이 명령을 실행하여 로컬 서버를 시작하십시오.

 node app.js

브라우저에서 http://localhost:3000/으로 이동하면 다음 출력을 찾을 수 있습니다.

익스프레스 애플리케이션 생성기

위에서 수동으로 만든 응용 프로그램은 매우 기본입니다. 그러나 Express 생성기를 사용하여 ExpressJS 앱을 수동으로 생성하지 않아도 됩니다.

  • 이것은 ExpressJS 앱을 생성하는 명령입니다.
 npx express-generator
  • 8.2.0 이전의 node.js 버전을 사용하는 경우 애플리케이션 생성기를 설치하고 다음 명령을 사용하여 시작할 수 있습니다.
 npm install -g express-generator
 express
  • 앱 만들기
 express --view=pug myapp

위의 명령은 'myapp'이라는 앱을 생성합니다.

  • 이 명령을 사용하여 필요한 모든 종속성을 설치하십시오.
 cd myapp npm install
  • 운영 체제에 따라 개발 서버 실행

Windows PowerShell에서;

 PS> $env:DEBUG='myapp:*'; npm start

Windows 명령 프롬프트에서;

 > set DEBUG=myapp:* & npm start

macOS 또는 Linux에서;

 DEBUG=myapp:* npm start

브라우저에서 http://localhost:3000/에 액세스하면 이것이 표시됩니다.

발전기

ExpressJS를 사용하여 개발할 수 있는 도구/앱

#1. 핀테크 앱

은행과 금융 기관은 디지털화되어 핀테크 앱에 대한 수요가 증가하고 있습니다. 이러한 앱은 금융 및 뱅킹 서비스를 지원/활성화하는 데 사용됩니다. ExpressJS는 확장 가능한 핀테크 앱을 만들기 위한 강력한 프레임워크임이 입증되었습니다.

#2. 단일 앱 애플리케이션

전체 애플리케이션이 단일 페이지에 라우팅되는 단일 앱 애플리케이션은 최신 애플리케이션 개발 방식이 되었습니다. Airbnb, Netflix, Pinterest, Paypal, Gmail, Google 지도와 같은 대규모 모바일 및 웹 앱은 단일 앱 애플리케이션의 완벽한 예입니다. ExpressJS는 쉬운 라우팅으로 단일 앱 애플리케이션을 만들기 위한 완벽한 프레임워크입니다.

#삼. 스트리밍 애플리케이션

Spotify 및 Netflix와 같은 앱은 최종 사용자에게 단순하게 보일 수 있습니다. 그러나 이러한 앱은 여러 계층의 데이터로 인해 복잡합니다. ExpressJS는 비동기 데이터 스트림을 효율적으로 처리할 수 있으므로 이러한 앱을 만드는 데 탁월한 선택입니다.

#4. 실시간 협업 도구

현대 작업 환경은 공통 목표를 위해 서로 다른 작업에 대해 협력하는 팀으로 구성됩니다. ExpressJS는 협업 도구 개발을 지원하는 다양한 기능을 제공합니다. 이 프레임워크는 WebSocket과 쉽게 통합되므로 대시보드 및 실시간 애플리케이션 채팅을 만들 때도 유용합니다.

장점: ExpressJS

  • 무료 및 오픈 소스 . ExpressJS를 사용하기 위해 비용을 지불할 필요가 없습니다. 필요에 따라 기존 코드를 수정할 수도 있습니다.
  • 사용 용이성 . ExpressJS를 사용하면 복잡한 프로세스를 따르지 않고도 코드를 작성할 수 있습니다. 프레임워크에는 프로세스를 단순화하는 수많은 도구와 기능이 이미 있습니다.
  • 신속한 개발 . ExpressJS에는 처음부터 모든 것을 만들지 않도록 많은 템플릿이 있습니다.
  • 훌륭한 성능 . ExpressJS에서 만든 앱은 우수한 성능을 발휘하므로 소규모 앱과 엔터프라이즈 앱 모두에서 사용할 수 있습니다.

단점: ExpressJS

  • 일부 오류 메시지는 도움이 되지 않습니다 . 다른 백엔드/API 개발 프레임워크와 달리 ExpressJS의 404 응답이 반드시 오류를 나타내는 것은 아닙니다.
  • 최선의 방법이 없기 때문에 코드 구성에 능숙하지 않습니다.

학습 리소스: ExpressJS

#1. Node.js, Express, MongoDB 등

1

이 과정은 하나의 리소스에서 전체 백엔드 스택을 배우려는 경우에 이상적입니다. 과정이 끝나면 ExpressJS 및 기타 관련 기술을 사용하여 빠르고 확장 가능한 RESTful API를 만들 수 있습니다.

#2. 그냥 익스프레스

2

해당 Express Server를 REST API로 운영하려는 경우에 수행해야 하는 과정입니다. 이 과정은 또한 HTTP 기본 사항을 가르치고 요청/응답 주기를 쉽게 이해할 수 있도록 합니다.

#삼. 반응, NodeJS, Express 및 MongoDB

삼

이 MERN 풀스택 과정은 JavaScript 풀스택 애플리케이션을 만드는 방법을 배우려는 경우 이상적입니다. ReactJS를 NodeJS, Express 및 MongoDB와 연결하는 방법, 인증 및 권한 부여를 구현하는 방법 등을 배우게 됩니다.

#4. Express in Action: Node.js 애플리케이션 작성, 구축 및 테스트

Express in Action은 Node와 ExpressJS를 사용하여 웹 애플리케이션을 만드는 단계를 자세히 설명하는 책입니다. ExpressJS 앱을 설정하는 방법, MongoDB를 사용한 데이터 저장소, Express 앱을 테스트하는 방법 등을 배우게 됩니다.

시사 제품 평가 가격
Express in Action: Node.js 애플리케이션 작성, 빌드 및 테스트 Express in Action: Node.js 애플리케이션 작성, 빌드 및 테스트 $39.99

#5. Express.js: Node.js용 웹 프레임워크 가이드북

Express.js: Node.js용 웹 프레임워크 가이드북은 ExpressJS 웹 프레임워크에 대한 심층 탐색을 제공합니다. 이 책의 논의는 ExpressJS가 사용자에게 제공하는 다양한 모델을 기반으로 합니다.

시사 제품 평가 가격
Express.js: Node.js용 웹 프레임워크 가이드북 Express.js: Node.js용 웹 프레임워크 가이드북 $8.38

#6. ExpressJS 공식 문서

ExpressJS는 잘 문서화된 node.js 프레임워크이며 공식 문서에서 시작하는 데 필요한 모든 것을 배울 수 있습니다. 이제 막 시작했거나 고급 개발자인지 여부에 관계없이 이 리소스를 사용할 수 있습니다.

마무리

ExpressJS는 현대 세계에서 가장 유명한 Node.js 웹 프레임워크 중 하나입니다. 다양한 강력한 기능과 손쉬운 학습 곡선으로 인해 수년 동안 이 위치를 유지했습니다. ExpressJS는 Node.js의 기반 역할을 합니다. 즉, ExpressJS를 이해하면 다른 관련 프레임워크를 쉽게 파악할 수 있습니다.