Node.js의 소개
IO needs to be done differently.
Node.js는 IO(입출력)의
IO 바운드 프로그램의 가장 큰 문제인 요청하고 기다리기에 대해서 혁신적일 수 있다.
자바 스크립트는 이벤트 루프를 통해서 비동기적인
let databaseResult = queryDatabase() // 요청
let apiResult = getSomethingFromAPI() // 기다리기
JavaScript는 callback을 통한 비동기 처리방식을 가지고 있다.
queryDatabase(result => {
})
getSomethingFromAPI(result => {
})
저수준의 오래 걸리는 일은 Node에게, 고수준의 로직은 메인 스레드에서 해결한다.
복잡하고 어려운 일은 네트워크와 소통, 파일 받아오기 등 node에게 시키고, 메인 스레드는 일을 잘 분배하고 맡기는 역할만 진행하기 때문에 blocking이 거의 없고 퍼포먼스가 좋다.
C나 rust를 컴파일 하면 바이러니 파일들이 떨어지는 것처럼,
npm(node package manager) 방대한 오픈소스 생태계
LTS(Long Term Service)로 안정성, 신뢰성이 보장된 버전을 말한다.
node.js
node nvm 패키지 버전 관리 툴
https://github.com/nvm-sh/nvm
https://github.com/tj/n