로딩
요청 처리 중입니다...

헷갈리는 개념 정리: Sync vs Async, Blocking vs Non-Blocking

 헷갈리는 개념 정리: Sync vs Async, Blocking vs Non-Blocking

"동기/비동기", "블로킹/논블로킹" 프로그래밍을 공부하다 보면 자주 듣게 되지만, 그 개념이 비슷해 보여 헷갈리기 쉽습니다. 이번 글에서는 이 네 가지 개념을 예제와 함께 차근차근 정리하고, 특히 사람들이 자주 오해하는 비동기(Asynchronous)에 대해 정확하게 짚고 넘어가겠습니다.

용어 정리 구분 정의 설명 동기(Synchronous) 호출한 작업이 끝날 때까지 기다림 순차적으로 실행됨 비동기(Asynchronous) 호출한 작업을 나중에 실행되도록 등록 이벤트가 발생하면 처리됨 블로킹(Blocking) 호출한 함수가 제어권을 점유한 채로 대기 다른 작업을 못함 논블로킹(Non-Blocking) 호출한 함수가 곧바로 제어권을 반환 다른 작업을 계속 진행 가능 자주 혼동하는 개념 많은 분들이 비동기(Async)를 “끝날 때까지 기다리지 않고 다른 일을 한다” 라고만 이해하는 경우가 많은데, 이는 결과적으로는 맞지만 설명으로는 부정확합니다. 비동기의 핵심은 다음과 같습니다....