nodejs

인프런 node.js 웹개발로 알아보는 백엔드

동영상 강좌를 통해 node.js를 학습하며 정리하는 포스팅입니다.

Node.js & Express

팀 버너스리에 의해 등장한 WEB은 이젠 더이상 우리 생활에 없어서는 안될만큼 많은 비중을 차지하게 되었고 JavaScript의 등장 이후로 동적인 웹도 구현할 수 있게 되었습니다. JavaScript는 WEB의 환경에 국한되어 동작하던 시절이 있었지만 시간이 지나 2008년 구글이 브라우저 Chrome의 성능 향상을 위해 JavaScript Engine을 V8을 개발하였고 나아가 자바스크립트로 서버를 구성할 수 있는 Node.js까지 등장하게 되었습니다. 세계에서 가장 큰 오픈소스 라이브러리 생태계중 하나인 npm 패키지를 통해 node.js는 동작하며 Hapi.js, Koa.js, Express.js등 다양한 웹개발 프레임워크가 존재하며 이중 가장 많이 사용하는 프레임워크는 Express.js 엔진입니다. Node.js는 현재 Paypal, Groupon, LinkedIn, Netflix등 전세계적인 서비스를 하는 기업들이 사용하고 있으며 조금씩 영역을 넓혀가고 있습니다.


1. 프로젝트 설정(Npm Project)

npm express

npm은 미리 설치해두어야 하며 설치 방법은 구글에 검색하면 자세히 나와있어 참고하였습니다.

작업할 환경의 디렉토리를 설정 후 npm init 명령어를 입력 후 package name, description, author 등 속성을 입력 후 설정을 마무리하면 디렉토리에 package.json 파일이 생성된 것을 확인할 수 있습니다.

package.json 파일은 node.js를 위한 기본 설정 파일이며 자바스크립트의 Ojbect형태로 key:value 구성되어 있는걸 확인할 수 있습니다.

express를 활용하기 위해선 npm install express --save 명령어를 입력합니다. --save

설치된 express를 package.json에 설치된 정보를 저장 후 이 패키지를 통합적으로 관리하기 위한 옵션을 말합니다.

설치가 완료된 후 package.json 파일 내용에 아래와 같이 dependencies를 확인할 수 있습니다.

스크린샷 2019-09-14 오후 2 42 09


2. Express 기반 서버 환경 설정

  • ejs -> npm install ejs --save
    • express에서 지원하는 view template
    • app.set('view engine', 'ejs')
  • mysql -> npm install mysql --save
    • var mysql = require('mysql')
  • body-parser ->npm install body-parser --save

    • node.js의 모듈
    • 클라이언트의 응답 -> json, post 응답 설정
    • client request data의 body로부터 파라미터를 편리하게 추출
    • var bodyParser = require('body-parser')
  • app.use(bodyParser.json())

    • app.use(bodyParser.urlencoded({extended:true}))
  • nodemon -> sudo npm install nodemon -g

    • -g는 글로벌 (어떠한 디렉토리에서 명령어를 사용할 수 있게 하는 옵션)
    • sudo 는 관리자 권한
    • 설치 후 명령 -> nodemon app.js

3. 웹서버 구동

Express 기반의 웹서버를 구동하기 위한 설정 파일을 생성합니다.

app.js 파일 생성

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
var express = require('express')
var app = express()

app.listen(3000, function () {
  console.log('Example app listening on port 3000!');
});

app.get('/', function (req, res) {
  res.send('Hello World!');
  //요청이 왔을때 응답을 클라이언트에게 전달할 때 전송할 파일 지정
  //res.sendFile(__dirname, "/public/main.html")
});

app변수에 express를 함수로 불러오며 함수내의 다양한 기능을 설정할 수 있으며 app.listen 을 통해 port번호 3000을 설정 후 서버가 구동된 이후 root(/)에 접근시 Hello world 로 응답하는 것을 확인할 수 있습니다.

  • 서버 실행 명령어 -> node app.js