자바스크립트는 기본적으로 스크립트 언어다 - 한줄씩 코드가 실행된다는 뜻!!
IO는 지금까지와는 다르게 작동해야한다.
- 노드JS만들사람이 말했다고 함(번역은 셀프) => 이벤트루프와 비동기를 만든 핵심 이유
Let databaseResult = queryDatabase()
이렇게 한줄 한줄 처리하는거
Let apiResult = getSomethingFromAPI()
요청하고 기다리기 방식은 너무 많은 클럭수를 낭비!!
queryDatabase(result => {
//뭘할지 여기 적기
})
getSomethingFromAPI(result => {
//뭘할지 여기 적기
})
이거는 queryDatabase 가 완전히 끝나기 전에 아래줄이 요청하는게 가능
자바스크립트는 언어수준에서 이미 비동기 문제를 해결
저수준(네트워크 통신 등)의 오래걸리는 일은 node에게 맡기면 자동으로 처리해준다
고수준의 로직은 메인스레드에서 해결 -> 오프로딩!!(삐른속도와 매우 높은 확장성을 갖는 근본적인 이유)
얼마나 많은 요청이 들어와도 싱글스레드여서 혼합 될 경우도 없다
그래서 nodejs는 c와 webassembly모듈을 바인딩해 사용하는 방법을 제공
c는 node-gyp / webassembly(이진수로표현된 브라우저를 위한 어셈블리)는 node12부터 제공
이제부터 기본 설정은 이렇게 만들어서 코드를 작성할 예정이다.
터미널에 sudo install N을 하면 노드 버전을 관리해주는 N을 설치할 수 있다.
sudo n 14.15.4라고 적으면 n에는 이 버전이 저장
-> n에 들어가서 우리가 저장한 다양한 버전들 중 하나 선택하면 끝
오늘 하루는 솔직히 3시간정도 밖에 공부를 안한거 같다.
그리고 이 3시간도 기본 코딩을 위한 설치를 위해 대부분을 썼다.
내일은 이제 이런거 신경 쓰지말고 코딩에 집중하자.