NodeJS란 자바스크립트를 이용하여 서버를 제작할 수 있게 해주는 언어이다.
NodeJS를 관리하는 OpenJS 재단에서는 아래와 같이 정의를 내렸다.
NodeJS의 특징
- 빠른 응답속도
- 빠른 개발속도(생산성 향상)
- 비동기 IO
- 단일 스레드 이벤트 루프 기반
- NPM(Node Package Manager)
장점
- 자바스크립트를 이미 알고있을 경우 학습곡선이 낮거나 거의 없기에 서버 기술을 빠르게 습득, 응용할 수 있음
- 이벤트 기반의 비동기 방식이므로 서버에 오는 부하가 적다.
- 단일 스레드 이벤트 루프 기반으므로 응답 속도 및 처리 성능이 높다.
- NPM(Node Package Manager)을 통해 다양하고 방대한 모듈들을 제공하여 개발 속도 및 효율성이 향상
단점
- 에러가 발생할 경우 서버가 즉시 멈추므로 매우 높은 코드품질을 요구한다.
- 코드 및 로직이 복잡할 경우 콜백 지옥의 늪에 빠진다.
- 단일 스레드 기반이므로 단일 작업이 오래 걸리는 작업에서는 어울리지 않다.
이러한 치명적인 단점에도 불구하고 빠른 응답시간과 대용량 서비스를 처리를 해야하는 업체에서는 점차 많이 사용하는 추세입니다.
대표적으로 Netflix, LinkedIn, Paypal, Uber, Groupon 등이 있습니다.
다음 강좌에서는 개발환경에 필요한 모듈을 소개해보겠습니다.