Node.js는 단순히 웹서버 개발의 용도로만 사용되지 않고, 네이티브 앱 개발, 프론트엔드 개발, 커맨드라인 명령어 프로그램 개발 등, 다양한 분야에서 사용되고 있으며, JavaScript를 웹 브라우저라는 제약에서 벗어나 범용 스크립트 언어로 만들어 준 장본인 이라고 할 수 있다.
다음과 같은 특징을 갖고 있다.
- V8 JS Engine
- Event-driven
- 비동기 non-blocking IO
Node.js와 관련된 자세한 내용은 아래 공식 문서 참조!
문서 | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
개발 환경
Node.js 설치
공식 홈페이지 (https://nodejs.org/ko/) 에서 다운로드 받아 설치하거나, 아래 명령어를 이용하여 설치할 수 있다.
# MacOs
$ brew install node
# Linux
$ sudo apt install nodejs
$ sudo apt install npm
설치 확인은 다음 명령어를 이용하여 버전을 확인하면 된다.
# Node.js 버전 확인
$ node -v
v14.16.0
설치 확인은 다음 명령어를 이용하여 버전을 확인하면 된다.
# npm 버전 확인
$ npm -v
6.14.11
npm은 Node의 패키지 관리자로, 개발자들이 만든 패키지를 관리하고 사용할 수 있도록 도와주는 도구이다. (python의 pip?)
Express/Express-generator
Express?
웹 서버에 필요한 라우팅, 미들웨어 등의 기능들을 제공하는 웹 프레임워크.
Express-generator?
Express 프레임워크에 필요한 package.json 파일과 기본 구조를 생성해 준다.
다음 명령어를 통해 설치할 수 있다.
$ npm install express-generator -g
Express 프로젝트 생성은 다음과 같이 진행한다.
$ express --view=pug <프로젝트 명>
<프로젝트 명>에 해당하는 디렉토리가 생성되고, Express 프로젝트에 필요한 기본 파일이 해당 디렉토리 하위에 생성된다. 디렉토리로 이동하여 필요한 모듈들을 설치한다.
$ cd <프로젝트 명>
$ npm install
Express project structure
Express-generator를 사용하여 생성한 프로젝트는 다음과 같은 구조를 갖게 된다.
.
├── app.js # 핵심적인 서버의 역할을 하며, 미들웨어를 관리한다.
├── bin
│ └── www # 서버를 실행하는 스크립트
├── node_modules # npm 으로 설치된 모듈을이 저장된다.
├── package-lock.json
├── package.json # 프로젝트의 이름, 버전, 의존 패키지 리스트 등의 정보를 담고 있는 파일
├── public # 외부에서 접근 가능한 리소스들을 모아둔다.
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes # 라우터들을 관리. 서버의 로직들...
│ ├── index.js
│ └── users.js
└── views # view 파일들을 관리.
├── error.pug
├── index.pug
└── layout.pug
Run Server
다음 명령어를 통해 서버를 실행할 수 있다.
$ npm start
이는 서버 실행 스크립트인 "bin/www" 를 실행 시킨다.
'일하는 > Cloud, Web' 카테고리의 다른 글
[AWS] EC2 인스턴스에서 CodeCommit 사용 설정하기 (0) | 2021.06.07 |
---|---|
[AWS] AWS CodeCommit (0) | 2021.06.07 |
Fast API (0) | 2021.02.03 |
Django REST Framework : (6) ViewSets & Routers (0) | 2020.11.09 |
Django REST Framework : (5) Relationships & Hyperlinked APIs (0) | 2020.11.06 |