국비지원 공부 정리/Node.js

Node.js의 특징

worldstroy 2025. 3. 25. 14:03

Node.js 특징

특징 설명
JavaScript 언어 사용 javascript 라는 언어는 원래 웹 브라우저 환경에서만 동작했음
즉, 프론트엔드를 만들기 위해 만들어진 언어
하지만 Node js의 등장으로 백엔드 서버를 만드는데, 이용할 수 있게 되었음
Single Thread



Node.js는 사용자가 직접 제어할 수 있는 스레드는 하나이다.
즉 하나의 파일 CPU가 점유하고 있으면 다른 파일을 실행하려면 대기해야 함.
에러를 처리하지 못하면 멈춰버림
비교적 프로그래밍 난이도가 쉽게, CPU, 메모리 자원을 적게 사용하는 장점을 지님.
Non-blocking I/O Node js에서의 모든 명령어는 동시에 일어나지 않으며, 요청을 내리면 응답을 기다리지 않고, 다른 활동을 수행함.
단, 비동기 처리를 해준다면 기다림
Event-Driven 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식
이벤트 리스너를 이용해 등록한 콜백 함수가 실행됨
즉, 호출 우선적으로 처리됨

 

Event Loop

1. 호출 스택에 진행해야 할 이벤트가 쌓임
2. setTimeout 함수가 있다면 백그라운드로 함수를 보냄
3. 백그라운드에서 지정된 타임이 지나면 태스크 큐로 함수를 보내둠
4. 함수 실행이 끝나 비워지면 이벤트 루프가 태스트 큐의 콜백 함수를 호출 스택에 옮김
5. run이 호출 스택에서 실행되고 비워짐
6. 이벤트 루프는 태스트 큐에 콜백이 들어올 때까지 대기

 

Node.js 를 쓰면 좋을 때

비교적 간단한 CLUD로만 동작하는 프로젝트일때
대량의 클라이언트가 접속하는 서비스일 경우
빠른 개발이 필요하고, 빠른 응답시간을 요구할 때
비동기 방식이 어울리는 스트리밍 서비스, 채팅 서비스
#. 필자는 java로 reactive 프로그래밍을 간단하게 나마 써봤는데, 확실히 node가 편할 것 같았다.

 

 

 

'국비지원 공부 정리 > Node.js' 카테고리의 다른 글

단축평가란?  (0) 2025.03.31
파일업로드 - body-parser, multer  (0) 2025.03.25
JSON이란?  (1) 2025.03.25
Node.js란? - 기초 설명(런타임, 설치방법, package.json)  (0) 2025.03.25