프로그래밍을 하거나 컴퓨터 과학을 학습할 때, 동기와 비동기 그리고 블로킹과 논블로킹이란 단어들을 쉽게 접할 수 있다. 다만 '동기==블로킹', '비동기==논블로킹'이란 개념을 쉽게 가질 수 있는데, 이는 잘못된 개념이다. 두개념들 사이에는 서로 연관관계가 없고, 별개의 개념이다. 두 개념은 서로 다른 관점을 가지고 있다. 간단히 정리하자면 다음과 같다. 동기 vs 비동기 : 처리해야 할 작업들을 어떠한 흐름으로 처리 할 것인가에 대한 관점 (2개이상의 주체) 블로킹 vs 논블로킹 : 처리되어야 하는 작업이 전체적인 작업 흐름을 막느냐 안막느냐에 대한 관점 (2개이상의 대상) 이렇게 두 개념이 작업에 대해 서로 바라보는 관점이 다르기때문에 이 두 개념은 비동기+논블로킹, 동기+논블로킹, 비동기+블로킹, ..