Framework&Library/Node.js

[Node.js] Node.js란

기며니 2021. 6. 30. 23:08
728x90
728x90

📌Node.js란 무엇인가

크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 런타임으로, 이벤트 기반, 논블로킹 I/O 모델을 사용해 가볍고 효율적입니다.

 

쉽게 말하자면 노드제이에스는 웹브라우저 밖에서도 자바스크립트를 실행할 수 있는 환경입니다.

 

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

 

 

✅ 언제 생겨난 것일까?

2009년에 Ryan Dahl이라는 프로그래머가 JSConf EU 컨퍼런스에서 발표하면서 등장했습니다.

서버를 만들기 위해서 사용되던 그 당시 프레임워크들의 단점을 지적하며 해결하기 위해 node.js를 만들었습니다.

 

 

✅ 주요 특징

- 자바스크립트는 수많은 웹 개발자들이 이미 사용하는 언어

- 비동기 입출력 / 이벤트 기반 입출력 방식 사용

- 모듈과 패키지를 사용하면서 서버 프로그램 구성

- 이미 다른 사람들이 만들어 놓은 모듈들이 굉장히 많음

 

 

✅ 이벤트 기반

이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식입니다.

이벤트로는 클릭이나 네트워크 요청 등이 있을 수 있습니다.

 

이벤트 기반 시스템에서는 특정 이벤트 발생할 때 무엇을 할지 미리 등록해두어야 하며

이를 이벤트 리스너에 콜백 함수를 등록한다고 표현합니다.

 

버튼을 클릭할 때 경고창을 띄우도록 설정하는 것을 예로 들자면 클릭 이벤트 리스너에 경고창을 띄우는 콜백 함수를 등록해두면 클릭 이벤트가 발생할 때마다 콜백함수가 실행되어 경고창이 뜨는 것입니다.

 

 

✅ 비동기 입출력 방식

하나의 요청 처리가 끝날 때까지 기다리지 않고 다른 요청을 동시에 처리 -> Non-Blocking IO

 

Non-Blocking IO란, 입출력 처리는 시작만 해둔 채 완료되지 않은 상태에서 다른 처리 작업을 계속 진행할 수 있도록 멈추지 않고 입출력 처리를 기다리는 방법

 

 

✅ 어디서 사용되고 있을까?

Walmart, LinkedIn, PayPal, YouTube, Yahoo!, Amazon.com, Netflix 등 여러 곳에서 노드를 활용하고 있습니다.

 

 

참고한 자료

https://www.zerocho.com/books 

728x90
728x90