일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- level1
- groomide
- 동네도서관이용후기
- 코딩문제풀이
- 사이드프로젝트
- @action
- 무료로책보기
- LinkedList
- 수포자
- SpringBoot
- restapi
- java
- 도서관대출
- 강서구도서관
- 해쉬맵
- 특정값 개수
- @observable
- HashMap
- 코딩문제
- 경력기술
- goormIDE
- Decorator
- 1일1커밋
- mobx
- 전자도서관
- 로봇 관련 윤리문제
- MES
- 프로그래머스
- 월간코드챌린지시즌1
- 오류잡기
- Today
- Total
Maenya's Techlog
[20210505] Node.js 와 비동기 I/O 처리 본문
[Node.js]
서버사이드 자바스크립트.
구글의 자바스크립트 엔진인 V8을 기반으로 구성된 일종의 소프트웨어 시스템이다.

이벤트 기반으로 개발이 가능하며 Non-Blocking I/O를 지원하기 때문에 비동기식 프로그래밍이 가능.
이 때문에 I/O 부하가 심한 대규모 서비스를 개발하기 적합하다.
또한 자바스크립트의 표준라이브러리 프로젝트인 CommonJS의 스펙을 따르고 있다
[싱글 쓰레드와 이벤트 기반의 비동기 I/O 처리]
싱글 쓰레드를 가진 노드는 I/O 작업이 시작되면 I/O 작업 처리에 대한 응답을 기다리지 않고,
바로 다음 작업을 실행한다.
대신 I/O 작업이 종료되면 이벤트를 발생시키고, 이 이벤트는 해당 프로세스의 이벤트 큐에 등록된다.
노드로 개발된 프로세스는 이 이벤트 큐에 등록된 새로운 이벤트를 감지하여,
해당 이벤트 시 수행하여야 할 작업을 실행한다.
(*쓰레드: 프로세스를 여러개로 나눈 단위)
[이벤트 루프]
작업을 요청하면서 그 작업이 완료되었을 때 어떤 작업을 진행할지
콜백 함수를 지정하여 동작이 완료되었을 때 해당 콜백 함수를 실행되는 방식의 동작 방식

만약 클라이언트가 웹 서버에 HTTP 형식으로 요청하게 되면
서버에서는 이벤트 루프가 계속 돌고 있다가 이를 감지하고 알맞은 작업을 워커 쓰레드를 생성하여 실행한다.
이벤트 루프는 어떤 요청이 발생하면 그 작업에 대해 쓰레드 실행만 일으킬 뿐이고
이후 작업을 할당받았던 해당 쓰레드가 모든 작업을 마치면 미리 전달받은 콜백 함수를 실행하도록
이벤트 루프로 응답하게 되며 이벤트 루프는 이것을 실행하여 클라이언트에게 결과를 응답하게 된다.
출처 | 구름EDU
'프로그래밍 > JS | React' 카테고리의 다른 글
[20210629] 스터디 프로젝트 제작기 - React 프로젝트 구조 설정과 로그인 페이지 작성중 (0) | 2021.06.29 |
---|---|
[20201230] groom IDE 에서 git에 커밋하기 (0) | 2020.12.30 |
[20201230 groomIDE] React 프로젝트에 MobX 설치하기, decorator 에러 해결 과정 (0) | 2020.12.30 |
[20201228] 구름IDE 사용 첫걸음 (0) | 2020.12.28 |
mobx 프로젝트 파일 생성 (0) | 2020.04.11 |