카테고리 없음

동기(synchronous)화와 비동기(Asynchronous)화

행복하게사는게꿈 2020. 3. 21. 20:36

동기(synchronous)화와 비동기(Asynchronous)화

 

1. 동기화

 

 - 동기화는 말 그대로 동시에 일어난다는 뜻

 

 - 클라이언트와 서버개념에서 클라이언트가 서버에 request을 보내면 서버에서 respone하는 것이 동시에 일어난다.

 

    즉, 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 함

 

    => 요청과 결과가 한자리에서 동시에 일어남

   

    => A노드와 B노드 사이의 작업 처리 단위(transaction)을 동시에 맞춰주겠다.

 


 

2. 비동기화

 

 - 동시에 일어나지 않는다는 뜻

 

 - 요청과 결과가 동시에 일어나지 않는다.

 

    => 요청한 그자리에서 결과가 주어지지 않음

 

    => 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.

 


 

동기화와 비동기화의 장단점

 

장점

 

- 동기 방식 : 설계가 매우 간단하고 직관적

 

- 비동기 방식 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있다.

 

                      * 자원을 효율적으로 사용 가능

 

단점

 

- 동기 방식  : 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점

 

- 비동기 방식 : 동기보다 복잡

 

 


 

동기방식과 비동기방식의 예

 

동기방식 예

 

 

비동기 방식의 예

 

 

서로의 행위(목적)이 다르기 때문에 둘의 작업 처리 시간은 일치하지 않고, 일치하지 않아도 된다.

 

 * 블록과 논블록

 

   학생이 시험지를 선생에게 건넨 후 가만히 앉아 채점이 끝나서 시험지를 돌려받기만을 기다린다면

 

    학생은 블록 상태

 

   하지만 학생이 시험지를 건넨 후 선생에게 채점이 완료되었다는 전송을 받기 전까지 다른 과목을 공부하거나

 

   다른 행위를 하면 학생의 상태는 논블록 상태라고 한다.

 

 

 

=> 동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 시각의 차이

 

     동기는 추구하는 같은 행위(목적)가 동시에 이루어지며, 

 

     비동기는 추구하는 행위(목적)가 다를 수도 있고, 동시에 이루어지지도 않는다.