개발을 하다 보면 헷갈리는 동기와 비동기, 블로킹과 논 블로킹의 개념을 정리해 보자. 한 줄 요약을 하자면 블로킹/논 블로킹은 제어권, 동기/비동기는 요쳥/완료 시간을 기준으로 개념을 이해하면 된다. 먼저 블로킹과 논 블로킹의 개념을 이해해 보자. 블로킹(blocking) 자신의 작업을 진행하다가 다른 작업이 시작되면 다른 작업이 끝날 때까지 기다림 호출된 다른 작업에게 제어권을 다른 작업에게 넘겨주고 해당 작업이 종료되면 제어권을 반환받아 작업 재개 논 블로킹(Non-blocking) 호출된 다른 작업에게 제어권을 넘겨주지 않으므로 다른 작업과는 관련 없이 자신의 작업을 진행 호출한 다른 작업에서 바로 리턴 블로킹과 논 블로킹은 제어권을 어느 작업이 갖고 있는 지에 따라 다르다. A 함수에서 B 함수를..