what is node.js?
node.js는 chrome V8 Javascript 엔진으로 빌드된 JavaScript 런타임.
- V8(엔진이름) compiles JavaScript directly to native machine code (by wikipedia)
자바스크립트를 기계어로 컴파일 해줌
what is runtime?
프로그래밍 언어가 구동되는 환경.
node.js는 자바스크립트를 컴파일 해주는 엔진으로 빌드 된 자바스크립트가 구동중인 환경이라고 할 수 있다
이벤트 기반 및 논블로킹 I/O 모델
: 유저의 클릭이나 네트워크에 리소스를 요청하는 이벤트가 논블로킹으로 이루어지는 Input Output Model.
- 이벤트
- 유저의 버튼 클릭이나 네트워크에 리소스를 요청하는 것 등
- 블로킹(동기)
- 다음 함수의 실행이 현재 함수의 종료 이후에 이루어 지는 것.
- 논블로킹(비동기)
- 다음 함수의 실행이 현재 함수의 종료를 기다리지 않음.
- I/O model
- Input을 주면 Output을 반환하는 모델(request를 하면 resource를 주는)
Node core modules
별도의 설치를 하지 않아도, node상에서 쓸 수 있는 모듈.
- node와 함께 번들링 되어있는 모듈이다.
- require('')방식으로 사용할 수 있다.
- 예시로 fs(file system(?)), http, url, path 등이 있다.
NPM
Node Package Manager. 세계에서 가장 큰 오픈소스 라이브러리 생태계 중 하나
package.json은 npm을 활용함에 있어 가장 중심이 되는 파일.
프로젝트의 속성들을 나타내며, 프로젝트를 좀더 편리하게 setup할 수 있게하는 정보들이 담겨있다.
예를 들어, 내가 jquery를 설치했다면 dependencies에 설치한 정보가 담겨있다.