
<목차>
1. Nodejs 란?
2. 왜 Nodejs를 쓸까?
3. Nodejs의 장점
4. Nodejs의 단점
1. NodeJS 란?
많은 사람들이 NodeJS가 프로그래밍 언어라고 생각을 한다. 하지만 NodeJS는 프로그래밍 언어가 아니라 JavaScript라 프로그래밍 언어를 실행시켜주는 런타임이다. 여기서 런타임이란 특정 언어로 만든 프로그램들을 실행할 수 있는 환경을 뜻한다.
2. 왜 NodeJS를 쓸까?
그냥 자바스크립트를 써도 될텐데 왜 굳이 프로그램을 하나 더 사용해서 자바스크립트를 실행시켜서 사용하는걸까?
같은 일을 하는 웹페이지가 2개 있다 치고 한개는 일반서버, 나머지 한개는 Nodejs로 만든 서버라고 가정을 해보자
일반 서버의 경우 많은 요청이 들어올 경우 한번에 요청을 다 받지 않고 한가지의 요청을 받은 뒤 처리하고, 다음 요청을 받고, 또 처리한 뒤 요청을 받는 식으로 출력을 할것이다.
하지만 Nodejs로 만든 서버의 경우 들어오는 요청을 한번에 다 받은다음에 요청받은 순서에 상관없이 한번에 처리를 한 뒤 처리되는 순서대로 출력을 한다.
이를 동기와 비동기라고 하는데 동기는 직렬적으로 일을 처리하는 반면 비동기는 병렬적으로 일을 처리하기때문에 순서를 기다릴 일이 사라지게 된 것이다.
3. NodeJS의 장점
NodeJS는 SNS이나 메신저에 많이 사용된다. 보통 이런 서비스들의 특징이 요청이 매우 많다는 점인데, 일반 서버로 구현하게 되면 많은 요청을 순서대로 처리해야되기때문에 실시간 채팅이 불가능해지고 자기가 보낸 메세지가 보내지는걸 기다리려면 한 세월을 기다려야 할수도 있다. 하지만 NodeJS로 서버를 구현하게 된다면 순서에 상관없이 자기가 보낸 메세지가 바로 요청처리 되어 상대방에게 실시간으로 보여질수 있게 될것이다.
4. NodeJS의 단점
NodeJS는 모두 싱글스레드로 처리가 된다. 그래서 CPU 연산을 많이 요구하게 된다면 속도가 느려지고 오류가 발생할 확률이 높다. 그래서 크기가 큰 비디오나 이미지를 처리하기에 적합하지 않고, 큰 데이터를 처리해야 하는 서버에서는 NodeJS를 권장하지 않는다. 굳이 NodeJS가 아니더라도 적합한 프로그래밍 언어가 많기 때문이다.
'NodeJS' 카테고리의 다른 글
express는 무엇일까? (0) | 2024.06.19 |
---|