Node.js를 시작해보기로 했다.
왜? 프론트엔드/백엔드 두가지를 경험해보고 싶었는데
Node.js는 자바스크립트 언어로 백엔드를 할 수 있기 때문이다.
학원 다닐때 자바스크립트를 배우며 어렵다고 느꼈다.
더 파고들 시간도 없이 확 넘어가버린 언어중 하나.
그리고 Node.js가 요즘 스타트업에서 많이 쓰이고 있다는걸 알게되었다.
정리해보자면
그 다음, 특징을 몇가지 살펴보면
1. single thread 이다.
하나를 하면 끝날때까지 아무것도 하지말고 기다려! (싱글스레드)
자바는 multi thread인데 이것은 장점도 있고 단점도 있다.
multi thread란 내가 음악을 재생하고 있어도 다른 것들(검색,설정)등을 할 수 있는 것이다.
cpu(뇌)가 일을 병렬적으로 처리해준다. 단점은 비용이 많이 든다는 점, 느려질 수도 있다는 점
멀티스레드가 더 좋은거 아니야? 한다면, 그대신 노드에 이런게 있다
2. 동작원리
너 이거 해 - 응 - 다했으면 이벤트(event-driven)로 알려주렴(callback을 던져주렴) 나는 다른일 하러 갈게(non-blocking, 비동기식)
그 다음 callback을 task Queue에 넣어준다. 그 후 call Stack이 비워지면 Event Loop가 call back 함수를 call Stack에 넣는다.
** Loop를 막지 말아라(callBack이 callStack안으로 들어오지 않고 막힌다면, 즉 무거운 계산이라면) Node는 원활하게 동작하지 않을것이다. **