일반적으로는 웹 브라우저에서 javascript로 작성된 코드가 실행되었음.
웹 브라우저 바깥에서 javascript 코드를 돌릴 수 있게 한게, Node.js 임.
즉, Node.js는 프로그래밍 언어가 아니고, 일종의 환경(Container) 이라고 볼 수 있음.
그렇다면 Node.js라는 환경에서 javascript 코드는 누가 돌려주나? 라는 질문에 대한 대답으로, V8엔진이라는 개념이 나옴.
이 V8엔진이, js코드를 보고 파싱해서, 기계어로 만들어주는 작업을 하는것으로 볼 수 있음.
Node.js의 장점
- 이벤트 드라이븐, non-blocking I/O 모델에 기반한 Single-thread 동작
- fast, scalable data-intensive 앱 빌딩에 좋음
- FE/ BE 모두를 javascript라는 stack으로 개발할 수 있어서 사이클이 빠르다.
- NoSQL같은 데이터베이스 api가 제공된다
- data streaming에 사용하면 좋다 (Youtube 같은 느낌)
- 실시간 채팅 앱에 사용하면 좋다
- server-side web app 에 사용하면 좋다. (다만 CPU집약적인 무거운 sse에는 좋지 않다, Ruby on rails, php, python을 대안으로 사용해보면 좋다)
댓글
댓글 쓰기