OS

동기와 비동기에 대해 알아보자.

Bhark 2024. 3. 16. 13:05
목차
1. 동기란 무엇일까?
2. 비동기란 무엇일까?
3. 동기와 비동기 장단점

 

데이터 처리 모델

데이터 처리 모델을 쉽게 말하면 데이터를 받는 방식이라고 할 수 있다. 이 방식에는 동기식 처리와 비동기식 처리 모델이 존재한다. 이 둘의 개념에 대해 알아보고 둘의 차이점을 알아보자.

 

1. 동기란 무엇일까?

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

동기는 데이터의 요청과 결과가 한 자리에서 동시에 일어나는 것을 말한다.

바로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다. 순서에 맞춰 진행되는 장점이 있지만, 여러 가지 요청을 동시에 처리 할 수 없다.

 

예를 들어, 내가 가게에서 아이스크림을 사고 싶어한다고 상상해보자.
내가 아이스크림을 원하면, 가게 직원에게 요청해야 한다. 그리고 가게 직원이 그 요청을 받으면, 곧바로 나에게 아이스크림을 주는 것이다. 내가 요청하자마자 아이스크림을 받을 수 있다.

하지만 문제는 동시에 여러 가지 요청을 할 수 없다는 것이다. 예를 들어, 나와 내 친구가 같은 가게에 있고, 나는 초콜릿 아이스크림을 주문하고, 내 친구는 바닐라 아이스크림을 주문한다면, 가게 직원은 둘 다 동시에 처리 할 수 없다. 가게 직원은 한 번에 하나의 요청만 처리할 수 있어서, 누가 먼저 주문했는지에 따라 순서대로 아이스크림을 주어야한다.

 

열심히 PowerPoint로 그려봤습니다😅

 

 

2. 비동기란 무엇일까?

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

비동기는 동시에 일어나지 않는다를 의미한다.

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

 

동기와 비교하기 위해 같은 주제로 예시를 들어보겠습니다.

예를 들어, 내가 가게에 가서 아이스크림을 주문한다고 생각해보자.

비동기에서는 주문한 순간에 아이스크림을 받지 않아도 된다. 대신에 주문한 순간에 나의 요청이 받아들여지고, 그런데 아이스크림을 컵에 담고 포장까지의 시간이 걸리니까 그 시간동안 다른 일을 할 수 있다. 내가 주문한 아이스크림이 준비되는 동안에, 다른 손님이 들어와서 주문을 하거나, 테이블을 정리하거나, 다른 손님에게 음료수를 제공할 수 있다. 그리고 나의 아이스크림이 만들어지면, 점원이 그 때 나에게 아이스크림을 건네줄 것이다.

 

이렇게 비동기 방식에서는 요청과 결과가 동시에 일어나지 않아도 된다. 대신에 여러 가지 일들이 동시에 처리될 수 있다.

 

 


3. 동기와 비동기 장단점

동기(Synchronous)

  • 장점
    • 설계가 매운 간단하고 직관적이다.
    • 작업의 순서가 명확하고 예측하기 쉽다.
  • 단점
    • 결과가 주어질 때까지 아무것도 못하고 대기해야 한다.
    • 한 작업이 끝날 때까지 다음 작업을 시작할 수 없다.

비동기(Asynchronous)

  • 장점
    • 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있다.
    • 시간과 자원을 효율적으로 사용할 수 있다.
  • 단점
    • 동기에 비해 복잡하다.
    • 작업이 동시에 일어나기 때문에 작업의 순서나 상태를 추적하기 어렵다.

간단히 말하자면, 동기는 순차적으고 직관적이지만 대기 시간이 발생하고, 비동기는 복잡할 수 있지만 대기 시간동안에도 다른 작업을 할 수 있어서 효율적으로 자원을 사용할 수 있다.