컴퓨터를 공부하고자 마음먹은지 N일차
[193일차]nodejs로 서버앱을 개발했을 때 장점 본문
nodejs로 서버앱을 개발했을 때 장점
nodejs는 정말 쉽고 간편하게 REST API를 만들수 있게 한다.
가볍고 큰 규약이 없으며, express를 만나면 더 간결하고 쉽게 서버앱을 만들 수 있다.
nodejs는 출시후 10년동안 개발의 패러다임을 바꿔놓을 정도로 많은 각광을 받았다.
쉽고 간편한것 이외에 성능적인 면이나 기타 다른부분에서 장점은 없을까?
논 블록킹 I/O
Node.js가 "논 블록킹"이며 효율적으로 I/O를 처리한다는것은 한번쯤은 들어봤을것이다.
논블로킹이란 이전 작업이 끝날때 까지, 기다리지 않고, 다음작업을 동작하는 패러다임이다.
시간이 걸릴만한 작업들을 뒤로빼놓고, 다음코드를 먼저 실행시키는것으로 이해하면된다.
그리고 싱글스레드이지만 비동기I/O작업을 통해 요청들을 서로 블로킹하지 않는다..!
싱글스레드 이벤트루프
Nodejs의 이벤트루프는 싱글스레드로 작업을 처리하는데,
동시에 많은 요청들이있더라도, 이벤트루프를 통해 비동기처리를 하기때문에, 논블로킹이 가능하며
처리속도 또한 준수하다.
따라서 입출력이 잦거나 실시간으로 여러 데이터를 다루는 어플리케이션에서 효율이 좋다
NPM
노드는 확장성이 뛰어난 모듈시스템을 가지는데, npm을통해 기본적으로 제공되는 모듈 이외에,
다른사람이 만든 모듈이나, 내가직접 모듈을 만들어서 프레임워크나 라이브러리를 쉽게 만들고 받을 수 있다.
클러스터링
클러스터링 시스템은 분산시스템을 말한다.
분명 nodejs는 싱글스레드라고 배우지만, cluster모듈을 활용해서 원하는 만큼의 cpu를
점유하게 해서 프로세스를 각각 공유하고 처리할수있게 하는등 멀티스레드인것 처럼 활용이가능하기때문에,
서버의 확장성이 용이하다.
'🫒Node.js' 카테고리의 다른 글
[193일차]nodejs의 이벤트루프 (0) | 2021.03.25 |
---|---|
[192일차]nodejs환경과 브라우저 환경의 차이 (0) | 2021.03.24 |
[191일차]쿠키와 세션의 차이 (0) | 2021.03.23 |
[164일차] nestjs와 fastify를 dockerize해보자. (0) | 2021.02.24 |
[120일차]crud 방명록만들기 -1 api만들기 (express) (0) | 2021.01.08 |