태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Network2014.03.25 17:45

비동기 (Asynchronous: 동시에 일어나지 않는, 非同期: 같은 시기가 아닌)

비동기란 말 그대로 동시에 일어나지 않는다는 의미입니다. 무엇이 같이 일어나지 않는다는 말일까요? 바로 요청과 그 결과가 동시에 일어나지 않을 거라는 약속입니다. 즉, 요청한 그 자리에서 바로 결과가 주어지는 것이 아니라, 이따가 줄게라고 약속하는 것이죠.

동기 (synchronous: 동시에 일어나는, 同期: 같은 시기)

동기란 동시에 일어난다는 말입니다. 무엇이 동시에 일어날까요? 요청과 그 결과가 동시에 일어난다는 약속입니다. 바로 요청을 하면 그 요청한 자리에서 바로 결과가 주어져야 한다는 말이죠. 시간이 얼마가 걸리든지 상관없습니다, 동기방식으로 하겠다는 것은 시간이 얼마가 걸리든 요청한 그 자리에서 결과를 주겠다는 약속이기 때문이죠. 즉, 요청과 결과가 한자리에서 동시에 일어난다는 말입니다.

동기와 비동기를 구분하는 이유

동기와 비동기를 굳이 구분하는 이유는 상황에 따라서 장단점이 있기 때문입니다. 동기방식은 매우 설계가 간단하고 직관적이지만, 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있습니다. 비동기방식은 좀더 복잡하지만 결과가 주어지는 시간이 길어져도 그 시간 동안 다른 작업을 할 수 있으므로 좀더 효율적으로 자원을 사용할 수 있는 장점이 있습니다.

블로킹(Blocking)

블로킹은 말 그대로 작업이 중단된다는 의미입니다. 네트워크 통신에서 요청이 발생하고 완료될 때까지 모든 일을 중단한 상태로 대기해야 하는 것을 블로킹 방식이라 합니다.

소켓통신을 해보신 분들은 알겠지만, 블로킹 방식의 소켓통신은 결과가 올 때까지 다른 작업을 중단하고 하염없이 기다리게 됩니다.

논블로킹(Non-blocking)

논블러킹은 말 그대로 중단되지 않는다는 말입니다. 통신이 완료 될 때까지 중단되는 블로킹의 반대 개념입니다.

논블로킹 방식은 아무래도 통신이 완료될 때까지 기다리지 않고 다른 작업을 수행할 수 있으므로 경우에 따라 효율이나 반응속도가 더 뛰어납니다. 반면에 좀더 설계가 복잡해진다는 단점이 있습니다.

'Network' 카테고리의 다른 글

[HTTP] 301과 302 Redirect의 차이  (0) 2017.01.05
동기와 비동기, 블로킹과 논블로킹  (1) 2014.03.25
IP Masquerade 란?  (0) 2014.03.19
Custom URI Scheme 만들기  (0) 2013.01.20
PING 허용/차단  (0) 2011.08.22
Posted by NakedStrength thankee

댓글을 달아 주세요

  1. 학생

    감사합니다

    2015.12.15 16:27 [ ADDR : EDIT/ DEL : REPLY ]