개발은 재밌어야 한다
article thumbnail
Published 2021. 4. 16. 16:01
동기와 비동기의 개념과 차이 CS
반응형

 

데이터를 받는 방식인 동기와 비동기. 이 둘의 개념과 차이에 대해 알아보겠습니다.

 

동기 (Synchronous : 동시에 일어나는)


  • 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 약속이다.
  • 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다.
  • 요청과 결과가 한 자리에서 동시에 일어난다.

장점 : 설계가 매우 간단하고 직관적

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

 

비동기 (Asynchronous: 동시에 일어나지 않는)


  • 동시에 일어나지 않는다를 의미한다. 요청과 결과가 동시에 일어나지 않을 것이라는 약속이다.
  • 요청한 그 자리에서 결과가 주어지지 않는다.
  • 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.

장점 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안에 다른 작업을 할 수 있으므로 자원들을 효율적으로 사용 할 수 있다.

단점 : 동기보다 복잡한 설계



동기와 비동기의 예


 

동기식 처리 모델(Synchronous processing model)은 직렬적으로 태스크(task)를 수행한다.

요청이 들어온 순서에 맞게 하나씩 처리하는 방식이다. 순서에 맞춰 진행되는 장점이 있지만, 여러 가지 요청을 동시에 처리할 수 없다.

 

위 그림의 (a)처럼 커피 주문을 받고 나올 때까지 기다리는 것이 동기 방식의 예시라고 할 수 있다.

 

비동기식 처리 모델(Asynchronous processing model 또는 Non-Blocking processing model)은 병렬적으로 태스크를 수행한다.

하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다. 여러 개의 요청을 동시에 처리할 수 있는 장점이 있지만 동기 방식보다 속도가 떨어질 수도 있다.

 

위 그림의 (b)처럼 점원 한명이 커피 주문을 받고 다른 점원이 커피를 건네주는 것이 비동기 방식의 예시다.

 

 

 

 

 

참고 : https://private.tistory.com/24

        seunghyun90.tistory.com/51

        webclub.tistory.com/605

반응형

'CS' 카테고리의 다른 글

프로세스와 스레드의 차이  (0) 2021.03.18
profile

개발은 재밌어야 한다

@ghyeong

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!