728x90
반응형
Node.js란?
위키백과에 아래와 같이 정의되어 있습니다.
Node.js는 확장성 있는 네트워크 애플리케이션(특히 서버 사이드) 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로 자바스크립트를 활용하며 Non-blocking I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있다. 내장 HTTP 서버 라이브러리를 포함하고 있어 웹 서버에서 아파치 등의 별도의 소프트웨어 없이 동작하는 것이 가능하며 이를 통해 웹 서버의 동작에 있어 더 많은 통제를 가능케 한다.
특징
- Single-Thread의 non-blocking I/O 이벤트 기반 비동식 방식으로 작동한다.
- JavsScript 엔진(V8 Engine)로 빌드 된 JavaScript 런타임이다.
장점
- 자바스크립트를 사용하여 서버를 처리할 수 있다는 점 (새로운 언어를 익히지 않고 자바스크립트를 활용해 빨리 개발할 수 있습니다.)
- npm(node package manager)을 통한 다양한 모듈 제공 (npm을 이용해 필요한 라이브러리와 패키지를 설치하여 사용할 수 있기 때문에 개발속도와 효율성이 향상됩니다.)
단점
- 이벤트 기반 비동기방식이라 서버 로직이 복잡한 경우 콜백함수 늪(Callback Hell)에 빠질 수 있습니다.
- 단일 쓰레드(Single Thread)이기 때문에 단일 처리가 오래 걸리는 서비스에는 어울리지 않다.
- 코드가 수행되어야 코드에 에러가 있는지 알 수 있습니다.
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 |