Web/NodeJS

Node JS에 관하여

songye 2024. 2. 22. 12:36

1.  역사

Node.js는 2009년 Ryan Dahl에 의해 처음 발표되었으며

 

Google Chrome V8 JavaScript Engine으로 Build JavaScript 런타임 환경입니다.

V8 엔진

 

브라우저환경에서만 사용하던 Java Script를 서버측에서도 사용가능케 만들었습니다.

 

2.  장점

* Non-blocking I/O

이게 왜 장점이냐 DB와 웹표시가 별도로 이루어질수 있다는 것입니다.

비동기의 장점은 언제나 오래걸리는 작업을 기다리는 것이 아니라

라면 물을 올려놓고 파와 양파를 써는 것처럼 오래걸리는 작업보다 빠르게 처리할 수 있는 작업들을 먼저 처리할 수 있다는 장점이 있습니다.

일반적인 동기 프로그래밍의 경우 DB작업이 오래걸리고 그에 따라 웹표시가 지연되어 사용자가 답답함을 느낄 수 있기 때문입니다.

 

* 간편한 프로그래밍

실제 JavaScript 언어로 구성되어 있다보니 훨씬 쉽게 서버를 구축할 수 있습니다.

또한 단일 스레드 모델이기 때문에 복잡한 멀티 스레드의 동기화 문제를 걱정하지 않아도 됩니다 (개꿀)

 

3. 단점

* 장점이 곧 단점

단일 스레드로 인해 성능에 제약이 있습니다,,

 

* 상대적으로 새 기술이기에 취약점이 많다고 합니다

 

* 콜백지옥

비동기로 인해 콜백함수가 중첩될 경우 지저분해질 수 있습니다 (순차적으로 사용할 때 자주 발생)

await / async 같은 함수로 비동기 함수를 동기처럼 해결하는 것이 필요합니다.