대기업을 향한 디벨롭 블로그

Nodejs 첫걸음.. 본문

Node.js

Nodejs 첫걸음..

MHY.PRO 2022. 2. 23. 00:01

nodejs란 

Single-Thread비동기,동시성,non-blocking I/O 이벤트 기반 비동식 방식으로 작동한다.

    ◎여기서 Single-Thead란 하나의 프로세스에서 하나의 스레드를 실행한다. 메인스레드 하나로 작동되는동안은 한번에 하나의 작업만 수행할 수 있다

 

    ◎비동기,non-blocking I/O 같은 동시성을 가지는 작업들은 JS엔진을 구동하는 런타임환경에서 담당한다. 런타임은Nodejs,웹브라우저를 말한다

 

    ◎이벤트기반이벤트가 발생할때 미리 지정해둔 작업을 수행하는 방식이다. 이벤트 기반 시스템에서는 특정 이 벤트가 발생할 때 무엇을 할지 미리 등록해두고, 이를 이벤트 리스너에 콜백함수를 등록한다. 다음 이벤트가 발생 하면 리스너에 등록해둔 콜백함수를 호출하며, 이벤트가 끝나면 노드는 다음 이벤트가 발생할때까지 대기한다.

 

    ◎이벤트루프 여러이벤트가 동시에 발생했을때 어떤 순서로 콜백함수를 호출할지를 이벤트 루프가 판단한다. 노드는 이벤트가 종료될 때까지 이벤트 처리를 위한 작업을 반복해서 루프라고 부른다

 

       비동기이란 이전 작업이 완료될 때까지 대기하지 않고 동시에 작업을 수행한다. 동기는 이전 작업이 끝나야만 다음 작업을 수행한다.

 

     ●자바스크립트를 사용한언어로 서버,네트워크 프로그램을 만들때 유용한 프로그램(환경)이다.

     ● JavaScript 를 웹 브라우저에서 독립시킨 것으로 Node.js를 설치하게 되면 터미널프로그램(윈도우의 cmd, 맥의terminal 등)에서 Node.js를 입력하여 브라우저 없이 바로 실행할 수 있다.

 

노드는 기본적으로 싱글 스레드, 논 블로킹 모델을 채용하므로 I/O 요청이 많이 발생하면 노드를 서버로 사용하는 것이 좋다.  하지만 노드는 CPU 부하가 큰 작업에는 적합하지 않다.

우리가 작성하는 코드는 모두 스레드 하나에서 처리되기 때문에 코드가 CPU 연산을 많이 요구하면 스레드 하나가 혼자서 감당하기 어렵다.

즉, 개수는 많지만 크기는 작은 데이터를 실시간으로 주고받는데 노드는 적합하다. 예를 들어 네트워트나 데이터베이스, 디스크 작업 같은 I/O에 특화되어있다. 실시간 채팅 애플리케이션, 주식 차트도 포함된다.

결론적으로 노드의 장점은 첫 째, 멀티 스레드 방식에 비해 적은 컴퓨터 자원을 사용한다. 둘 째, I/O 작업이 많은 서버로 적합하다. 셋 째, 웹 서버가 내장되어 있어 별도의 웹서버를 설치할 필요가 없다. 넷 째, 자바스크립트를 사용하기 때문에 JSON 형식과 쉽게 호환된다.

 

 

 

 

출처 : https://hanamon.kr/nodejs-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0/

 

Node.js 노드 개념 이해하기 자바스크립트 JavaScript 런타임 이벤트

Node.js 노드 개념 이해하기 JavaScript 런타임 - 노드는 다양한 자바스크립트 애플리케이션을 실행할 수 있으며, 서버를 실행하는데 제일 많이 사용된다. 이벤트 기반 이벤트 루프 논블로킹 I/O 싱글

hanamon.kr

개인공부하는데에 도움이 많이되었습니다 감사합니다..