피드로 돌아가기
You dont know about javascript : Synchronous vs Asynchronous
Dev.toDev.to
Frontend

Single-threaded 환경의 Blocking 문제 해결을 위한 Asynchronous 모델 분석

You dont know about javascript : Synchronous vs Asynchronous

Kunal2026년 4월 18일2beginner

Context

JavaScript의 기본 실행 모델인 Synchronous 방식은 단일 스레드 구조로 인해 순차적 실행을 강제함. 이로 인해 I/O 작업이나 API 호출과 같은 고비용 작업 발생 시 Main Thread가 점유되어 전체 시스템이 멈추는 Blocking 현상이 발생함.

Technical Solution

  • Call Stack 기반의 LIFO 구조를 통한 Synchronous 함수 실행 관리
  • Main Thread의 실행 흐름을 방해하지 않는 Background 처리 기반의 Asynchronous 메커니즘 도입
  • API 호출, File Read, Timer 등 지연 시간이 발생하는 작업을 비동기로 처리하여 응답성 유지
  • Event Loop 구조를 통한 비동기 작업의 완료 시점 제어 및 Main Thread로의 복귀 설계
  • Non-blocking I/O 구현을 통한 단일 스레드 환경의 처리량 최적화

1. 네트워크 요청이나 파일 시스템 접근 시 Synchronous 함수 사용을 지양하고 Asynchronous 패턴 적용 여부 확인

2. Long-running task가 Main Thread를 점유하여 UI 렌더링이나 사용자 입력 처리를 방해하는지 검토

3. Call Stack의 깊이와 비동기 콜백의 실행 순서에 따른 데이터 일관성 검증

원문 읽기