node.js 강의 필기

이후띵·2022년 1월 28일
0

Node.js

목록 보기
2/10


코어 모듈은 node 프로그램에 내장된 모듈로 require 함수의 인자로 써줄 때, 경로없이 이름만 써서 사용합니다. 여기서 코어는 영어 단어 core('핵심의', '중심의')를 의미합니다.

Node.js VS 브라우저?

  • 둘다 자바스크립트의 실행환경
  • 가장 큰 차이는 제공하는 API가 다르다는 점이다.

Application Programming Interface

  • 어떤 플랫폼이나 실행환경 등에서 제공하는 인터페이스
  • 특정 환경에서 자유롭게 가져다 쓸 수 있는 함수나 객체 등을 의미

Node.js에서 제공하는 API와 브라우저에서 제공하는 API는 다르다!

Node.js는 시각적인 표현이 필요 없고, 브라우저는 필요하다.
-> UI 관련 API가 Node.js에서는 필요없다.

Node.js는 window, document와 관련된 객체가 필요없다.
Node.js에서는 컴퓨터를 조금 더 깊숙하게 제어할수 있는 API가 존재한다. (파일생성, 컴퓨터 정보확인 등..)
-> cf) Node.js + Electron(framework) = PC 프로그램 제작.
-> VS code 또한 Electron으로 개발된 프로그램이다.
-> VS code도 Node.js위에서 실행된다.

Node.js는 구글 크롬이 사용하는 v8엔진을 사용한다.
-> cf) FireFox : SpiderMonkey, MS Edge : Chakra, V8

Node.js 개발 팁:

  • 특정 브라우저가 자바스크립트의 표준 문법 중에서 어디까지를 지원하는지 확인하는 것이 중요.
  • 각 브라우저별 자바스크립트 표준 구현 현황: https://kangax.github.io/compat-table/es6/

서드파티 (3rd Party) 모듈.

  • 서드파티 모듈을 인터넷 상의 공개저장소에서 내 컴퓨터로 가져와야 사용할 수 있다.

npm(node package manager)

in Terminal:

npm install cowsay ----(서드파티 모듈인 카우세이 모듈을 설치해라)

in Vscode/main.js:

const cowsay = require('cowsay');

console.log(cowsay.say({
	text : "I love javascript",
}));

결과 : text에 입력된 텍스트를 귀여운 소가 말한다.

서드파티 모듈 설치 후 생겨나는 것들

(1) package-lock.json이라는 파일
(2) node_modules라는 디렉토리

1. package-lock.json 파일

package-lock.json 파일에는, 해당(nodestudy) 디렉토리 안에 설치된 모든 서드파티 모듈들에 관한 정보가 기록된다.

package-lock.json 파일의 내용 중 dependencies필드에는 현재 nodeStudy 디렉토리에 설치된 서드파티 모듈들의 정보가 담겨져있다. dependencies는 말 그대로 의존하고 있는 서드파티 모듈들이다. cowsay모듈만 설치했는데 다른 서드파티 모듈들이 생기는 이유는 뭘까? cowsay또한 다른 서드파티 모듈에 의존하기 때문이다. requires 필드에 존재하는 직접적으로 의존하는 서드파티 모듈의 정보가 담겨있다. 하지만 require 필드에 없는 모듈들도 설치되는데 이유가 뭘까? require 필드의 cowsay가 의존하는 모듈이 의존하는 모듈들도 있기 때문이다. 다시말하면, 서드파티모듈을 설치하면, 해당 모듈이 직-간접적으로 의존하는 서드파티 모듈들까지 우르르 설치된다. 이런 '다단계 의존 관계'를 이해하는 것이 Node.js 세계에서 아주 중요하다고 한다.

2. node_modules 파일

방금 봤던 package-lock.json 파일이 어떤 서드파티 모듈들이 설치되었는지에 관한 정보를 담고 있다면, node_modules 디렉토리는 서드파티 모듈들이 실제로 설치되는 공간이다.

cowsay 서드파티 모듈의 이름이 잘 보이고, cowsay가 의존하는 다른 서드파티 모듈들의 이름들도 잘 보인다. 그런데 여기서 신기한 사실이 하나 있다. 왼쪽의 노락색 강조 표시를 보면, 지금 모든 서드파티 모듈들은 각각 하나의 디렉토리다. 이게 어떻게 된 걸까? 이때까지 우리는 모듈을 그냥 '하나의 자바스크립트 파일'이라고 배웠는데 말이다. 하지만 사실 모듈은 하나의 파일일 수도 있고, 하나의 디렉토리일 수도 있다.
이게 무슨 말인지는 챕터 4에서 설명한다고 한다. 나중에 챕터 4의 내용을 잘 이해하려면 이 노트의 내용을 꼭 기억해야겠다.

Node.js의 핵심개념 - 모듈, 비동기 프로그래밍

다음에 계속

profile
이후띵's 개발일지

0개의 댓글