Study/BackEnd

Node.js 란?

ujam 2021. 8. 10. 22:25
728x90
반응형

Node.js란?

위키백과에 아래와 같이 정의되어 있습니다.

Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.

특징

  • Single-Thread의 non-blocking I/O 이벤트 기반 비동식 방식으로 작동한다.
  • JavsScript 엔진(V8 Engine)로 빌드 된 JavaScript 런타임이다.

 

장점

  1. 자바스크립트를 사용하여 서버를 처리할 수 있다는 점 (새로운 언어를 익히지 않고 자바스크립트를 활용해 빨리 개발할 수 있습니다.)
  2. npm(node package manager)을 통한 다양한 모듈 제공 (npm을 이용해 필요한 라이브러리와 패키지를 설치하여 사용할 수 있기 때문에 개발속도와 효율성이 향상됩니다.)

 

단점

  1. 이벤트 기반 비동기방식이라 서버 로직이 복잡한 경우 콜백함수 늪(Callback Hell)에 빠질 수 있습니다.
  2. 단일 쓰레드(Single Thread)이기 때문에 단일 처리가 오래 걸리는 서비스에는 어울리지 않다.
  3. 코드가 수행되어야 코드에 에러가 있는지 알 수 있습니다.

 

Node.js 쓰기 적합한 곳

  • 간단한 로직을 필요로 하는 경우
  • 대용량 처리가 필요한 경우 (동시에 여러 request를 처리 가능)
  • 빠른 응답시간과 개발이 필요한 경우

 

Node.js 쓰기 부적합한 곳

  • 단일 처리가 오래 걸리는 경우 (싱글 쓰레드)
  • 서버 체크로직이 많은 경우 (비동기 방식이기 때문에 CallBack Hell에 빠질 수 있다.)

 

 

 

항상 부족한 부분이나 피드백할 부분을 댓글로 남겨주시면 적극적으로 수용하여 수정하겠습니다.

728x90
반응형

'Study > BackEnd' 카테고리의 다른 글

동기 vs 비동기, 블로킹 vs 논블로킹  (0) 2021.08.31
NestJS란  (0) 2021.08.30
객체 지향 프로그래밍(OOP, Object-Oriented Programming) 이란?  (0) 2021.08.18
Sequelize 란? 설치 및 사용법  (0) 2021.08.14
MVC 패턴이란?  (0) 2021.08.08