본문 바로가기

CS 전공지식

23.12.18 동기와 비동기의 차이

1. 동기

    - 동시에 일어난다는 뜻

    - 요청과 결과가 동시에 일어난다는 약속

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

    - 예) A 가 B 에게 10,000원을 송금

            A) A 의 계좌는 10,000원을 뺄 생각을 하고있다.

            B) A 의 계좌가 B 의 계좌에 10,000원을 송금한다.

            C) B 의 계좌는 10,000원을 받았다는 걸 인지하고, A 의 계좌에 10,000 을 받았다고 전송한다.

            D) A 의 계좌는 차감, B 의 계좌는 증가가 동시에 발생한다.

 

            E) A 와 B의 계좌는 서로 요청과 응답(A ~ C 과정) 을 확인한 후 같은 일을 동시에 진행(D 과정)

 

  1) 장점

      - 설계가 매우 간단하고 직관적이다.

  2) 단점

      - 결과가 주어질 때 까지 아무것도 못하고 대기해야 한다.

 

2. 비동기

    - 동시에 일어나지 않는다

    - 요청한 결과가 동시에 일어나지 않을 거라는 약속

    - 하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간 동안 또다른 요청에 대해 처리 가능한 방식

    - 예) 시험날의 학생과 선생

            A) 학생은 시험문제를 푼다

            B) 시험문제를 모두 푼 학생은 선생에게 전송한다.

            C) 선생은 학생의 시험지를 채점한다

            D) 채점이 다된 시험지를 학생에게 전송

            E) 학생은 선생이 전송한 시험지를 받아 결과 확인

            F) 학생과 선생은 시험지라는 연결고리가 있지만 시험지에 행하는 목적은 서로 다르다.

                학생은 시험지를 푸는 역할을 하고, 선새은 시험지를 채점하는 역할을 한다. 

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

 

  1) 장점

      - 요청에 따른 결과가 반환되는 시간동안 다른 작업을 수행할 수있다

  2) 단점

      - 동기식 보다 설계가 복잡하다