프로그래밍을 공부하다 보면 맞닥뜨리는 헷갈리는 말중에 동기식과 비동기식이 있습니다. 저도 프로젝트 진행중에 동기와 비동기 전송의 이해 때문에 애를 먹었던 적이 있었기에.. (..//) 지금이라도 정리를 해서 저같이 헷갈려하는 사람이 없었으면 좋겠네요 :)


네이버 국어사전에 의하면..


동기식 전송 방식(STM : synchronous transfer mode)

전송로상에서 신호 정보를 일정 주기의 프레임(frame)으로 구획짓고, 프레임을 시간 슬롯(time slot)으로 분할해서 전송하는 시분할 다중 방식. ITU-T(구 CCITT)에서 1986년 광대역 종합 정보 통신망(B-ISDN)의 전송 방식을 검토할 때에 비동기 전송 방식(ATM)과 함께 용어를 결정했다. 
회선 교환 방식과 같이 하나의 호를 위하여 하나의 채널을 발착신 단말 사이에 점유시키지 않고 다중화하는 이점이 있으나, 동기화를 위해서 발신자와 수신자가 같은 클록 신호를 사용해야 하기 때문에 1채널당 최대 통신 속도가 일정해야 하는 제약이 있다....(이하 생략)

(출처 : http://krdic.naver.com/user.nhn?docid=e3b7bd1f0479a9750f4bd1504fd71736)


비동기 전송 방식(ATM : asynchronous transfer mode)

ITU-T에서 1988년에 광대역 종합 정보 통신망(B-ISDN)의 전송 방식으로 결정하여, B-ISDN의 핵심이 되는 전송ㆍ교환 기술. 모든 정보를 ATM 셀이라는 고정 길이의 블록으로 분할하여 이것을 순차적으로 전송하는 방식이다.

(중략) 이와 같이 ATM은 패킷 교환의 높은 전송 효율을 이어받고, 회선 교환의 단점인 교환 지연 회선 사용 효율의 저하를 시정하여 다양한 정보를 고속으로 처리할 수 있는 기술이다.

(출처 : http://krdic.naver.com/user.nhn?docid=c1c0b4c11bba29af8193679325726886)


네. 무슨 소리인지 저도 잘 모르겠습니다 :D 

저 내용을 모두 이해할 수 있다면 정말 좋겠지만! 소프트웨어 관점에서의 동기식/비동기식 전송 방식의 풀이를 최대한 간략하게 풀이하자면..


동기식 : Request의 결과값 = Return되는 값

비동기식 : Request의 결과값 != Return되는 값 (!는 아니함을 의미합니다. !=는 같지 않다는 뜻이 되죠)


중요한 차이점은 제어권을 어떻게 넘기느냐 입니다.

동기식은 한 개의 동작이 완전히 종료되고 나서 제어권을 반납하고, 비동기식은 한 개의 동작이 끝나지 않았어도 제어권을 반납하고 동작을 계속 수행합니다.


정말로 좋은 예시가 있기에 출처를 남기고 사진을 올려봅니다. (출처 : https://bluekms21.blog.me/10171193149)




동기와 비동기는 각각의 장단점이 존재합니다.

동기식은 명령이 들어온 순서대로 빠르게 하나하나 수행이 가능하지만 여러 일을 동시에 수행하는 멀티태스킹이 불가능합니다.

멀티태스킹을 목적으로 탄생한 비동기식은 여러 일을 동시 수행을 가능하게 한다는 장점이 있지만 동기식보다 속도가 저하될 가능성이 있고 과한 명령을 프레임에 쌓아둘 경우 부하가 발생할 수 있습니다. 이러한 Request들을 처리하기 위해 쓰레드에서 Callback(콜백)함수로 제어하고 Handler(핸들러)로 요청 결과를 확인합니다.



'IT Knowledge' 카테고리의 다른 글

정보처리기능사 필기 메모장  (0) 2017.12.31

+ Recent posts