노드의 장단점
- 장점
1) 내장된 웹서버가 있다.
-> 아파치나 nginx, IIS같은 별도의 웹서버를 설치할 필요가 없다.
2) 자바스크립트를 사용한다.
-> 하나의 언어(js)로 웹사이트를 개발할 수 있어 개발 생산성을 높일 수 있다.
-> json이 자바스크립트 형식이므로 노드에서는 쉽게 처리할 수 있다.
3) 싱글스레드
-> 멀티 스레딩 방식에 비해 쉽다.
-> 적은 컴퓨터 자원을 사용한다.
4) 논블록킹
-> I/O 작업이 많은 서버에 적합하다. (ex. 실시간 채팅, 주식차트)
5) 많은 회사에서 이미 노드를 사용하고 있다.
-> 나사, 에어비앤비, 우버, 넷플릭스, 네이버, 카카오, 위메프, 페이팔 등 안전과 보안을 중요시 여기는 회사에서도 많 이 사용할 만큼 안전성과 보안성이 검증되었다.
- 단점
1) 싱글스레드
-> 에러로 스레드가 죽을 경우 서버가 멈춘다.
-> CPU 코어를 하나만 사용 = CPU작업이 많은 경우 부적합하다. (ex. 이미지, 비디오, 대규모데이터처리에 부적합)
정리하면 노드를 서버로 사용할 경우에는 CPU 작업보단 I/O 작업이 많은 작은 크기의 데이터를 실시간으로 주고 받는 경우에서 사용하기 적합하다는 결론을 내릴 수 있습니다. 이제 노드는 서버 외에도 대표적으로 앵귤러, 리액트, 뷰, 일렉트론 등 노드 기반의 웹 프레임워크도 많이 등장하며 웹, 모바일, 데스크톱 애플리케이션 개발에도 사용되고 있습니다.
이렇게 정리하고 보니 노드가 더 매력적으로 느껴지네요..!! 이렇게 의지 하나를 더 얻어갑니다. *^U^*
'Framework & Library > node.js' 카테고리의 다른 글
[npm] npm과 패키지 관리하기, 패키지 배포하기, npm의 명령어 (0) | 2021.04.10 |
---|---|
[Node.js] Node.js를 위한 기본 개념 (서버, 클라이언트, 런타임, 이벤트, 동기/비동기, 블록킹/논블록킹, 프로세스/스레드) (0) | 2021.03.23 |