마케팅스프린트
[ GitHub ]

[ jungyijun@naver.com ]


  • Category
    • 마케팅 자동화
    • old posting
      • ChatGPT
      • Java
      • MySQL
      • JSP
      • Spring Framework
      • Node.js
Total
Today
Yesterday
hELLO · Designed By 정상우.
[Node.js] 논 블로킹 I/O
old posting/Node.js

[Node.js] 논 블로킹 I/O

2021. 10. 14. 01:58

1. 논 블로킹 I/O

 

기본적으로 작성한 Javascript Code는 동시에 실행될 수 없다. 하지만 Javascript 상에서 돌아가는 것이 아닌 I/O 작업 같은 것은 동시에 처리될 수 있다. I/O는 입력(Input) / 출력(Output)을 의미하며, 파일 시스템 접근(파일 읽기, 파일 쓰기 등)이나 네트워크를 통한 요청 같은 작업이 I/O의 일종이다. 이러한 작업을 할 때 Node는 논 블로킹 방식으로 처리하는 방법을 제공한다.

 

논 블로킹 :

이전 작업이 완료될 때까지 대기하지 않고 다음 작업을 수행한다.

 

블로킹 :

이전 작업이 끝나야만 다음 작업을 수행한다.

 

 

* 그림을 보면 블로킹 방식보다 논 블로킹 방식이 같은 작업을 더 짧은 시간에 처리할 수 있음을 알 수 있다. 다만 작업들이 모두 동시에 처리될 수 있는 작업이라는 전제가 있어야 한다.

 

* Node는 I/O 작업을 백그라운드로 넘겨서 동시에 처리하곤 한다. 따라서 동시에 처리될 수 있는 작업들은 최대한 묶어서 백그라운드로 넘겨야 시간을 절약할 수 있다.



 

* 1개의 작업당 1초를 소요한다는 가정하에 그림을 보면 순서의 중요성을 알 수 있다.

 

* 동시에 처리될 수 있는 I/O 작업이라도 논 블로킹 방식으로 코딩하지 않으면 의미가 퇴색되므로 논 블로킹 방식으로 코딩하는 습관을 들여야한다.

 

저작자표시 (새창열림)
'old posting/Node.js' 카테고리의 다른 글
  • [Node.js] 동기와 비동기, 블로킹과 논 블로킹
  • [Node.js] 싱글 스레드
  • [Node.js] 이벤트 루프(Event Loop)
  • [Node.js] 이벤트 기반(Event-driven)
마케팅스프린트
마케팅스프린트
쿠팡, 스마트스토어 자동화 솔루션

티스토리툴바