메모_210430

멜로디·2021년 5월 3일
0

Node.js 다시 알아보기

what is Node.js?

공홈에 가면 이렇게 써있다
Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임

이게 무슨말이냐면
V8 engine : 자바스크립트를 기계어로 컴파일해주는 엔진
runtime : 프로그래밍 언어가 구동되고 있는 환경

다시 말하자면
자바스크립트를 컴파일해주는 엔진으로 빌드된, 자바스크립트가 구동중인 환경
이라고 말할 수 있다.

Node.js는 이벤트 기반 및 논블로킹 I/O 모델인데,
여기서 말하는 이벤트란, 유저의 버튼 클릭이나 네트워크에 리소스를 요청하는 것처럼 무언가 실행되는 것을 말하고,
논블로킹은 바로 전에 배웠던 비동기식 실행을 말한다
(다음 함수의 실행이 현재 함수의 종료를 기다리지 않음)

그래서 특징이 뭐냐면

자바스크립트를 컴파일하여 구동하고, 이벤트 기반의 논블로킹 모델이라 속도가 빠르다
그리고 별도의 설치를 하지 않아도 Node.js상에서 사용할 수 있는 모듈들이 있는 데, 이게 아주 유용하게 사용된다.

번들 모듈 소개

아래 모듈들은 Node.js에 기본적으로 번들링 된 모듈 중 일부이다.
require('') 방식으로 사용할 수 있다.

  • fs
  • http
  • url
  • path

번들링되지 않은 모듈은 NPM으로 다운받으면 된다!

Package.json 다시 알아보기

이거 개중요함

package.json에는 npm을 활용하기 위한 정보들이 모여있고,
프로젝트 전반에 관한 정보가 모여있다.

package.json

  • 프로젝트에 관한 정보
  • 설정된 script 코드
  • 개발과 관련된 dependency (라이브러리 등)

의 정보를 포함하고 있고, 이 패키지 파일을 넘겨주어 다른 사람도 관련 모듈들을 확인하고 설치할 수 있도록 하고, 스크립트를 실행할 수 있도록 한다.

run script

package.json에 포함된 설정된 script코드들을 CLI환경에서 실행할 수 있도록 한다

devDependencies

결과물과 관계 없이, 개발에 필요한 dependency의 정보들이다.
devDependencies를 설치할 때는 반드시 뒤쪽에 --dev옵션을 포함하여 등록한다.

예시
$ npm install @babel/core --dev
$ npm install @babel/core --save-dev

dependencies

결과물과 직접 관련된 dependency의 정보들이다.
npm을 사용하여 설치할 때는 반드시 --save옵션을 포함하여야 한다.

예시
$ yarn add react
$ npm install --save react

왜 save를 해야하는가
우리가 git에서 프로젝트 파일들을 받아 오면 노드 모듈들은 포함되어 있지 않고 npm install을 하여 package.json에 있는 dependency를 바탕으로 설치하게 된다.
그런데 Save를 하지 않으면 git에 업로드하고 다른 사람이 내려받았을 때 코드에서는 해당 모듈을 쓰고 있지만 npm install로는 설치되지 않는 상황이 발생한다. (오류 발생. 팀 프로젝트에서 개쳐맞을수 있음)

profile
하루하루 배울때마다 기록하는 일기장

0개의 댓글