관리 메뉴

Enjoy what you do!

node js 쓰는이유 본문

컴공 여러가지/node.js

node js 쓰는이유

쵸코맛 비비빅 2018. 2. 5. 17:09

http://www.nextree.co.kr/p7292/


Node.js 쓰는이유

서버에서는 파일i/o, network access 할때 시간이 오래걸린다.

따라서 이때 마냥 기다리지 말고 다른일도 같이 해줘야 효율적이다.


->


그래서 멀티 쓰레드라는 개념이 나왔다. 하지만 멀티 쓰레드는 한계가 있는데

 쓰레드가 늘어날수록 자원이 늘어나 쓰레드 갯수가 한정적일 수밖에없고(아니면 서버 증설해야됨) load balancing 해야한다.

또한 critical data에 접근할때 동기화를 해줘야하는 등 고려할게 많다.


->


따라서 비동기 방식이 필요하고 node js가 바로 비동기로 작동한다.

node js 는 싱글 쓰레드로 작동해서 멀티 쓰레드의 문제점도 없다. 또한 마냥 기다리지않는 비동기 방식이라 여러 일처리에 좋다.




Node.js 의 올바른 사용

Node.js 는 Google Chrome V8 엔진 기반으로 동작하며 내부의 Event Loop는 Single-Thread 기반에서 비동기 메시지를 처리합니다. 이러한 Event Loop는 고성능의 병렬처리를 보장하도록 설계되어 있습니다. 따라서 이벤트에 의해 처리해야 할 단위 작업이 아주 짧은 시간 안에 처리된다면 Node.js의 고성능의 장점을 극대화 할 수 있습니다.

만일 처리 작업이 CPU를 많이 소모한다든지 대용량 파일을 처리하는 작업이라면 Node.js 는 독약과도 같습니다. 그러나 IO 작업이 별로 없는 애플리케이션이나 단위작업이 짧은 메시징 애플리케이션의 경우에는 Node.js는 고성능을 보장해 줍니다.

한편 Node 애플리케이션 개발자가 처리 로직을 비동기로 하지 않고 동기방식으로 구성한다면 Node를 잘못 활용하는 결과를 낳을 수 있습니다. 따라서 Node 애플리케이션은 가능한 한 전부 비동기로 처리해야 하며 Node 개발자는 비동기 프로그래밍 방식에 익숙해져야 할 필요가 있습니다.



Comments