-
728x90
Node.js란?
크롬 V8 자바스크립트 엔진으로 빌드된 자바스크립트 실행창(런타임) (서버는 X)
자바스크립트는 HTML에 종속되어 브라우저(크롬, 파이어폭스, 익스플로러)에서 구동되는 언어였지만, 브라우저 외부에서도 실행할 수 있게 해주는 실행기가 Node.js 이다.
Node.js 특징
싱글 스레드
Nods.js는 사실 멀티 스레드이지만, 자바스크립트는 멀티 스레드가 아니며 우리가 직접 제어할 수 있는 스레드는 하나이기 때문에 싱글 스레드라고 표현한다.
프로세스: 운영체제에서 할당하는 작업의 단위 (프로그램 하나 띄울 때마다 프로세스가 하나씩 뜨는 것)
스레드: 프로세스 내에서 명령을 실행하는 단위. 한 개의 스레드는 한 번에 한가지 동작만 실행 가능싱글스레드 장점은 스레드가 늘어나지 않기 때문에 리소스 관리에 효율적이지만, 스레드 기반의 작업들의 효율이 떨어진다는 단점이 있다.
🔎 싱글 스레드 vs 멀티 스레드
싱글스레드는 한 번에 한 가지 동작만 수행. 일하는 사람 한명! (프로그래밍 난이도가 쉽고 CPU, 메모리 자원 적게 사용)
멀티 스레드는 동시에 여러 동작 수행 가능. 일 하는 사람 여러명! (프로그래밍 난이도가 어렵고 스레드 수만큼 자원을 많이 사용함)비동기 - 논블로킹 I/O(Input / Output)
블로킹은 이전 동작이 끝나야만 다음 동작을 수행할 수 있지만 논블로킹은 동작을 실행한 후 완료가 되는 걸 기다리지 않는 방식으로 기다리지 않기 때문에 다른 동작을 바로 실행 가능하다.
오래 걸리는 함수를 백그라운드로 보내서 다음 코드가 먼저 실행되게 하고 나중에 오래 걸리는 함수를 실행하는 것이다.
이벤트 기반
이벤트란? 어떤 동작을 할 때 그에 따른 다른 동작이 일어나는 것.
비동기 동작의 완료를 처리하는 방법으로 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 말한다. (클릭, 네트워크 요청, 타이머 등)
비동기 방식은 특정 동작을 실행한 후 해당 동작을 전혀 신경 쓰지 않지만, 해당 동작이 완료될 경우 실행할 함수를 미리 등록하여 비동기 동작이 완료가 되면 미리 등록된 함수를 실행한다.
'Node.js' 카테고리의 다른 글
[Node.js] path 모듈 (0) 2023.04.10 [Node.js] Express 미들웨어란? (0) 2023.04.06 [Node.js] Express.js 서버 구축, 라우팅 (0) 2023.04.05 [Node.js] http 서버 만들기 (0) 2023.04.03 [Node.js] 모듈 require(), Exports, Module.exports (0) 2023.03.28 댓글