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 |