Node.js

정지웅·2024년 10월 1일

Node.js는 크롬 V8엔진을 기반으로 한 자바스크립트 런타임이다.

크롬 V8 엔진

  • 익스플로러의 독주를 막을 수 있었던 크롬의 고성능 엔진(매우빠름)
  • 웹브라우저에서만 사용되던 엔진을 웹브라우저 바깥에서 사용해보자!
  • 그런데 이제 asynchronous event-driven을 곁들인
    -> 런타임 환경으로서의 node.js 등장

Node.js의 장점

  • 프론트엔드 개발자가 자바,C# 등을 학습하지 않아도 자바스크립트로 서버 개발 가능
  • 자바스크립트의 쉬운 문법
  • asynchronous event-driven 아키텍쳐 방식으로 작동되기 때문에 한번에 여러 작업을 처리할 수 있어 입출력이 많은 프로그램에 적합함
  • npm과 같이 매우 큰 개방형 패키지 생태계를 활용할 수 있어 다른 사람이 개발한 유용한 모듈을 사용할 수 있음

Node.js의 단점

  • 단일 스레드 방식이므로 CPU 집약적인 작업에 대해서는 성능이 안좋아질 수 있음
    -> 다만 '멀티 스레드와 비슷한 방식'으로 코드를 작성할 수 있음(worker_thread)
  • 콜백 지옥
    -> 비동기 방식의 단점으로 비동기함수 호출 후 수행하는 콜백함수들 간의 작업으로 코드가 복잡해지고 유지보수가 어려워질 수 있음
    -> Promise, async await에 대한 학습이 필요

출처 - https://pso62.tistory.com/entry/NodeJS%EC%9D%98-%EC%9E%A5%EC%A0%90%EA%B3%BC-%EB%8B%A8%EC%A0%90

0개의 댓글