자바스크립트를 사용함으로써 얻을 수 있는 소소한 장점도 있습니다. 요즘은 XML 대신 JSON을 사용해서 데이터를 주고받는데, JSON이 자바스크립트 형식이므로 노드에서 쉽게 처리할 수 있습니다.
▼ 표 1-2 노드의 장단점
장점 |
단점 |
멀티 스레드 방식에 비해 적은 컴퓨터 자원 사용 |
기본적으로 싱글 스레드라서 CPU 코어를 하나만 사용 |
I/O 작업이 많은 서버로 적합 |
CPU 작업이 많은 서버로는 부적합 |
멀티 스레드 방식보다 쉬움 |
하나뿐인 스레드가 멈추지 않도록 관리 필요 |
웹 서버가 내장되어 있음 |
서버 규모가 커졌을 때 서버를 관리하기 어려움 |
자바스크립트를 사용함 |
어중간한 성능 |
JSON 형식과 쉽게 호환됨 |
웹 사이트 중에는 쇼핑몰, 블로그 같은 웹 사이트도 많습니다. 이러한 사이트들은 정적인 콘텐츠를 많이 제공합니다. 이들에게도 노드 서버가 적합할까요? 이런 사이트는 보통 기본적인 틀이 있고, 그 안의 내용물(텍스트, 이미지)만 조금씩 달라집니다. 노드가 다른 서버에 비해 이러한 콘텐츠를 제공하는 데 뚜렷한 장점을 갖지는 않습니다. 하지만 그렇다고 적합하지 않다는 것도 아닙니다. 넌적스(Nunjucks), 퍼그(Pug), EJS 같은 템플릿 엔진을 통해 다른 언어와 비슷하게 콘텐츠를 제공할 수 있습니다. 템플릿 엔진은 6.5절에서 다룹니다.
안정성과 보안성 측면의 문제도 이미 충분히 검증되었습니다. 미국항공우주국(NASA), 에어비엔비, 우버, 넷플릭스, 링크드인 등 세계 유수의 기관과 기업에서 노드를 사용하고 있습니다. 페이팔, 월마트, 이베이와 같이 결제 시스템을 사용하는 대기업들도 노드로 서비스를 운영합니다. 국내에서도 네이버, 카카오, 위메프, 야놀자 같은 기업들이 노드를 사용합니다.
▲ 그림 1-15 노드를 사용하는 결제 서비스