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

2023. 3. 28. 22:38·Back/NestJS

이벤트 루프를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있다

작업에는 동시에 실행될 수 있는 작업과 동시에 실행될수 없는 작업이 있는데

기본적으로 자바스크립트 코드는 동시에 실행될 수 없다

하지만 파일 시스템 접근이나 네트워크를 통한 입출력 작업은 동시에 처리될 수 있다

 

블로킹이란 이전 작업이 끝나야만 다음 작업을 수행하는 것을 의미하고

논블로킹은 이전 작업이 완료될 때 까지 기다리지 않고 다음 작업을 수행함을 뜻한다

 

논브로킹 방식이 더 짧은 시간안에 같은 작업을 처리할 수 있다(모든 작업이 동시에 처리될 수 있는 작업이라는 전제)

 

setTime(콜백, 0)은 코드를 논블로킹으로 만들기 위해 사용하는 기법 중 하나이다

 

아무리 논블로킹 방식으로 코드를 작성하더라도 코드가 전부 내가 작성한 것이라면 시간은 짧아지지 않는다

단순히 실행 순서만 바뀔 뿐이다

그렇지만 실행 순서를 바꿔줌으로서 간단한 작업을이 대기해야 하는 상황을 막을 수 있다는 점에서 의의가 있다


블로킹 / 논블로킹은 설명만 들었을 때 마치 동기 / 비동기 와 매우 유사해보이지만 같은 의미는 아니다

 

동기 / 비동기 : 백그라운드 작업 완료 확인 여부

블로킹 / 논블로킹 : 함수가 바로 return 되는지 여부

 

노드에서는 동기-블로킹 방식과이 대부분이다 비동기 - 논블로킹 방식은 없다고 봐도 된다

 

동기 - 블로킹 방식

: 백그라운드 작업 완료 여부를 계속 확인하며, 호출한 함수가 바로 return 되지 않고 백그라운드 작업이 끝나야 return 됨

 

비동기 - 논블로킹 방식

: 호출한 함수가 바로 return 되어 다음 작업으로 넘어가며, 백그라운드 작업 완료 여부는 신경 쓰지 않고 나중에 백그라운드가 알림을 줄 때 비로소 처리함

저작자표시 (새창열림)

'Back > NestJS' 카테고리의 다른 글

페이지네이션(Pagenation) 구현하기 - (1)  (0) 2025.03.12
[NextJS] 프로젝트 생성하기 with Yarn berry 4.4.0  (0) 2025.01.26
[NestJS] JWT(JSON Web Token) - 로그인 API 구현과 암호화  (0) 2024.08.10
[NestJs] @InjectRepository 데코레이터 with TypeORM  (1) 2024.07.27
[Node.js] 이벤트 루프 (event loop)  (0) 2023.03.28
'Back/NestJS' 카테고리의 다른 글
  • [NextJS] 프로젝트 생성하기 with Yarn berry 4.4.0
  • [NestJS] JWT(JSON Web Token) - 로그인 API 구현과 암호화
  • [NestJs] @InjectRepository 데코레이터 with TypeORM
  • [Node.js] 이벤트 루프 (event loop)
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • Web (22)
        • Web (1)
        • HTTP (0)
      • Language (29)
        • Java Script (3)
        • Type Srcipt (1)
        • Java (25)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (41)
        • Spring(Springboot) (9)
        • JSP (21)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    springboot
    서블릿
    과학기술인 등록번호 발급
    csr과ssr의 차이
    React
    과학기술인 등록
    SSR
    Spring
    중복제거
    자바스크립트set
    과학기술인번호 조회
    강의후기
    csrvsssr
    React Next.js
    김영한
    과학기술인등록번호 조회
    인프런
    javascript
    java의 정석
    sql강의
    백엔드
    Next.js
    스프링부트
    강의 후기
    과학기술인 번호 발급
    Java
    SQL강의 추천
    프론트엔드
    Next.js 필요성
    데이터베이스 강의
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
soyeon26
[Node.js] 블로킹 / 논블로킹
상단으로

티스토리툴바