TIL(20.04.07)Node.js

이민택·2020년 4월 27일
0

TIL

목록 보기
37/44

Node.js란 v8엔진으로 만들어진 자바스크립트 런타임이다.

v8: 자바스크립트 컴파일러로 써 자바스크립트를 네이티브 머신코드로 컴파일 해준다

런타임: 프로그램이 구동되는 환경

즉 Node.js 란 자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이다.

node.js는 Non-blocking I/O 와 단일 스레드 이벤트 루프를 통한 높은 Request처리 성능을 가지고 있다. 데이터베이스로 부터 대량의 데이터를 취득할 때 표시가 지연되는 현상이 발생한다. 이럴 때 noed.js는 Non-blocking I/O가 가능하기 때문에 좋은 성능을 가지고 있다

이벤트 기반 및 논블록킹 I/O 모델

  • 블로킹 - 다음 함수의 실행이 현재함수의 종료 이후에 이루어 지는 것
  • 논블록킹 - 다음 함수의 실행이 현재 함수의 종료를 기다리지 않음

Node.js 맛보기

Node.js모듈은 http서버 모듈을 내장하고 있어서 아파치와 같은 별도의 웹서버를 설치할 필요가 없다.

// app.js
const http = require('http'); // 1

http.createServer((request, response) => { // 2
  response.statusCode = 200;
  response.setHeader('Content-Type', 'text/plain');
  response.end('Hello World');
}).listen(3000); // 3

console.log('Server running at http://127.0.0.1:3000/');
  • node.js 에서 module은 파일과 1대1 대응 관계를 가지며 하나의 모듈은 자신만의 독립적인 실행 영역을 가지게 된다. 따라서 클라이언트 사이드 자바스크립트와는 달리 전역 변수의 중복 문제가 생기지 않는다

NPM(Node Package Manager)

자바스크립트의 패키지 매니저이다 Node.js에서 사용할 수 있는 모듈들을 패키지화하여 모아둔 저장소 역할

지역 설치와 전역설치

전역으로 패키지를 설치하면 전역에서 참조할 수 있다 모든 프로젝트가 공통 사용하는 패키지는 지역으로 설치하지 않고 전역에 설치한다.

  • 지역설치
# 지역 설치
$ npm install <package>
  • 전역 설치
# 전역 설치
$ npm install -g <package>

package.json 과 의존성관리

node.js프로젝트에서는 많은 패키지를 사용하게 되고 패키지의 버전도 빈번하게 업데이트 되므로 프로젝트가 의존하고 있는 패키지를 일괄 관리할 필요가 없다 npm 은 package.json파일을 통해서 프로젝트 정보와 패키지 의존성을 관리한다. package.json파일을 생성하기 위해서는 npm init 명령어를 실행한다.

npm init -y
* y를 쓰게 되면 init시 기본값으로 파일을 생성한다.

- - save

-- save 명령어와 같이 사용해서 패키지를 설치하면 package.json의 dependencies에 설치된 패키지 이름과 버전이 기록된다.

-- save -dev의 경우 devDependencies에 포함시킨다.

profile
데이터에 소외된 계층을 위해 일을 하는 개발자를 꿈꾸는 학생입니다

0개의 댓글