이번 포스팅은 Node.js와 Express 이용해 웹서버를 구축해 보도록 하겠습니다. Express는 웹 및 모바일 애플리케이션을 위한 일련의 강력한 기능을 제공하는 간결하고 유연한 Node.js 웹 애플리케이션 프레임워크입니다. Express는 자유롭게 활용할 수 있는 수많은 HTTP 유틸리티 메소드 및 미들웨어를 통해 쉽고 빠르게 강력한 API를 작성할 수 있습니다.
Express의 장점
Express 이용시 아래와 같은 장점을 얻을 수 있습니다.
- Express는 단위시간당 처리량과 어플리케이션에서 확장성을 최적화 시켜 훌륭한 퍼포먼스를 가집니다.
- 코드는 순수한 자바스크립트로 작성됩니다. 이는 개발자가 각각 브라우저와 웹 서버 코드를 작성할때 언어들 사이에 접근성을 다루는 시간을 줄일 수 있습니다.
- 자바스크립트는 비교적 새로운 프로그래밍 언어이고 또다른 전통적인 웹서버 언어들과 비교할때 언어적 설계에서 이득을 가집니다.
- 노드 패키지 매니저(NPM)는 수천만개의 재사용가능한 패키지에 접근할 수 있도록 합니다. 이것은 최고의 의존성 해결과 또한 수많은 빌드 문제들을 자동화되도록 합니다.
- 또한 활발한 개발 생태계와 커뮤니티를 지니고 있어 개발함에 있어 쉽게 도움을 받을 수 있습니다.
1. 프로젝트 생성하기
원하시는 위치에 프로젝트 디렉터리를 생성하고 프로젝트 root 폴더에서 아래 커맨드를 실행해주세요.
npm 은 nodeJS에서 여러 패키지들을 설치하고 관리할 때 사용되는 패키지 매니저로 위 커맨드를 실행할 시 프로젝트 폴더 내에서 package.json이라는 파일이 생성됩니다.
명령어 : npm init |
2. express 패키지를 설치
express 서버 구현에 필요한 express 패키지를 설치하도록 하겠습니다. 커맨드 창에 아래의 명령어를 실행합니다. 설치가 완료되면 프로젝트에 node_modules과 dependencies에 express 가 추가됩니다.
명령어 : npm install express --save |
3. app.js 파일추가
이제 루트 폴더에 app.js라는 파일을 만들고 아래 코드를 복사하여 붙여 넣도록 해보겠습니다.
복사하셔서 실행하시기 쉽게 소스를 넣었습니다. 각 소스에 해당하는 설명은 주석으로 대신하겠습니다.
// node_modules의 express 패키지를 가져온다.
var express = require('express')
//app이라는 변수에 express 함수의 변환 값을 저장한다.
var app = express()
//환경변수에서 port를 가져온다. 환경변수가 없을시 5050포트를 지정한다.
var port = app.listen(process.env.PORT || 5050);
//REST API의 한가지 종류인 GET 리퀘스트를 정의하는 부분입니다.
//app.get이라고 작성했기 때문에 get 요청으로 정의가 되고
//app.post로 작성할 경우 post 요청으로 정의가 됩니다.
//REST API의 종류 (get, post, update, delete 등등)을 사용하여 End Point를 작성하실 수 있습니다.
app.get('/', function(req, res) {
res.send("<h1>Express server Start</h1>")
})
// express 서버를 실행할 때 필요한 포트 정의 및 실행 시 callback 함수를 받습니다
app.listen(port, function() {
console.log('start! express server');
})
|
4. 서버실행
아래의 명령어로 서버를 실행시키고 http://localhost:5050으로 접속하면 아래와 같이 서버가 동작하는것을 볼 수 있습니다.
명령어 : node app.js |
5. node 실행 간편화 하기
package.json 파일의 scripts부분에 아래와 같이 코드를 추가하고 아래의 명령어를 실행하면 쉽고 편하게 node서버를 실행하실 수 있습니다.
명령어 : npm start |
여기까지 Node.js + Express 웹서버 구축에 대한 포스팅을 마치도록 하겠습니다.
'개발 Recording > vue.js & javascript' 카테고리의 다른 글
Node.js + Express Router 클래스를 이용한 라우팅 (0) | 2021.12.03 |
---|---|
Node.js + Express 웹서버에서 CORS 이슈해결 (0) | 2021.11.30 |
[Vue.js] Firebase에 PWA로 만든 Vue 프로젝트 배포하기 (0) | 2021.11.26 |
[Vue.js] Vue 프로젝트 PWA 사이트 만들기 (0) | 2021.11.24 |
[PWA] 모바일에서 네이티브 앱 경험을 제공하는 Progressive Web Apps (0) | 2021.11.22 |