Node.js 란 무엇인가
크롬 V8 JavaScript 엔진을 기반으로 서버 및 네트워크 애플리케이션 개발을 위한 JS 런타임 환경이다.
여기서 말하는 런타임 환경이란
프로그램이 실행되는 환경을 의미한다.
JavaSrcript의 경우 일반적으로 크롬(Chrome)과 같은 브라우저에 내장되어 있다.
크롬을 열고 검사창에 JS 명령어를 실행시켜보면 알 수 있다.
이때 브라우저 밖
즉, 개발 PC에서 다양한 용도로 사용하기 위해 만들어진 것이 Node.js 이다.
Node.js는 JS 런타임이고,
로컬에서 웹 서버를 만들 수 있는 하나의 방법에 불과하다.
주요 특징
- 비동기식 프로그래밍을 강조하며, 이벤트 루프를 사용하여 비동기 작업을 처리한다.
- 단일 스레드(Single Thread)로 동작하지만, 비동기 작업을 통해 동시성을 지원한다.
- 어플리케이션 자체는 Single Thread 지만, 실행 백그라운드에서 쓰레드 풀(Thread pool)을 구성해 수행한다.
- NPM(노드 패키지 매니저)을 통해 패키지 및 모듈을 관리할 수 있다.
- HTTP 요청 및 응답에 대한 편리한 API를 제공한다.
장점
- JS를 동일하게 사용하여 서버단 로직을 처리할 수 있다는게 가장 큰 장점이다.
- 이벤트 기반 비동기 방식이라 서버 무리가 적다.
- NPM을 통한 다양한 모듈(패키지) 제공, 효율성이 좋다.
단점
- 이벤트 기반 비동기 방식이라 로직이 복잡한 경우 콜백 지옥의 염려가 있다.
- Single Thread 라 단일 작업이 오래걸리는 웹서비스의 경우 어울리지 않다.
- 코드가 수행되어야 (런타임 때) 에러를 알 수 있다.
'Javascript > Node.js' 카테고리의 다른 글
Node.js 동작원리 (0) | 2024.01.15 |
---|---|
Node 에서 import export 사용하기 위한 babel 과 type: module 의 차이 (0) | 2023.09.23 |
node-cache (0) | 2023.07.30 |
Method (0) | 2023.06.13 |