Server
: 섬기는[시중드는] 사람, 봉사자, 근무자
그냥 쉽게 말해, 무엇을 요청했을 때 가져다 주는 것 !
ex) 음식점에서 서빙(serving)을 하는 서버(server/근무자)에게 "OO을 해주세요" 라고 주문하는 것과 같다.
우선 공식 홈페이지에서는 Node.js에 대해서 어떻게 설명을 할까? -> [ Node.js 공식홈페이지 ]
Node.js에 대해 찾아보면 Node.js는 "JavaScript Runtime" 이라는 말이 자주 보인다.
1. JavaScript에 대해서 잠깐 알아보고 가자.
기존의 움직임 없이 글 뙇! 그림 뙇! 만 넣을 수 있는 언어의 역할을 한 HTML
JavaScript를 사용해서 웹페이지를 다이나믹하게 바꿀 수 있게 되었다.
2. 크롬의 V8이 뭘까?
JavaScript는 누가 해석해주냐? 브라우저(Chrome, Explorer 등)가 해석해준다.
각 브라우저들 마다 JavaScript를 해석해주는 해석엔진이 존재한다!
1. Chrome - V8(브라우저 중에서도 JS를 가장 잘 해석함. 속도가 빠름)
2. Explorer - Chakra
3. FireFox - SpiderMonkey
3. Chrome의 해석엔진인 V8을 따로 떼어내 살을 붙인게 Node.js다.
V8엔진의 JavaScript를 잘 해석한다는 강점을 활용한다는거!
브라우저를 따로 실행하지 않더라도 Node.js만 있으면 cmd창에서도 console.log를 찍을 수 있다.
Non-blocking I/O 특징이 좋아서!
엥? Non-blocking I/O? 논블로킹 I/O라고?
Block
: <길 등을> 막다, 봉쇄하다, 방해하다
일반적인 서버 같은 경우는 과도한 업무가 요청들어왔을 경우 순차적 처리업무로 멈춤이나 대기가 있을 수 있다.(Blocking이 존재한다)
Non-blocking은 말그대로 Bloking이 존재하지 않는 부분으로서, 채팅이나 SNS같이 과도한 요청이 많을 경우 순차 처리가 아닌, 처리속도가 빠른 것부터 처리를 해줌으로서 멈춤이나 대기 현상을 줄여준다.
글이 잘 정리되어 있네요. 감사합니다.