IT 삽질기

동기(Sync)와 비동기(Asyn) 프로그래밍 본문

개발

동기(Sync)와 비동기(Asyn) 프로그래밍

화이팅빌런 2019. 5. 26. 22:09

동기(Sync)와 비동기(Asyn) 프로그래밍

동기 프로그래밍과 비동기 프로그래밍에 대해서 알아보도록 하자.

 

동기(synchronous)

  • 동시에 일어나는
  • 일을 순차적으로 처리하며 끝내는 방식
  • 요청한 결과가 한 자리에서 동시에 일어남

동기 시스템에 대한 예를 들어보도록 하자.

동기 시스템은 일을 순차적으로 처리하며 요청한 결과가 한 자리에서 동시에 일어나는 것인데

계좌이체를 예로 들어보도록 하자.

A가 B의 계좌로 돈을 송금한다고 할 때, A의 계좌에서 돈이 빠져나감과 동시에 B의 계좌에 돈이 들어가야 한다.

이를 동기 시스템이라고 생각하면 된다.

비동기(Asynchronous)

  • 동시에 일어나지 않는
  • 해야 할 일을 위임하고 기다리는 방식
  • 요청한 그 자리에서 결과가 주어지지 않음

비동기 시스템에 대한 예를 들어보도록 하자.

비동기 시스템은 일을 시켜놓고 다른 일을 하는 것이라고 생각하면 되는데,

세탁기를 돌린다고 생각해보자.

세탁기를 돌리면서 세탁기가 끝날 때까지 세탁기 앞에서 기다리는 사람은 없을 것이다.

세탁기에 세탁방법등 다양한 값을 셋팅한 후 다른 일을 하다가 세탁이 끝난 알림음을 통해 빨래를 꺼내 너는 작업을 시작할 것이다.

이와 같은 방식이 바로 비동기 시스템이다.

 

동기와 비동기의 장단점

동기

  • 설계가 간단
  • 직관적
  • 결과가 주어질 때까지 대기해야 하므로 자원을 효율적으로 활용하지 못할 수 있음.

 

비동기

  • 복잡한 방식
  • 결과가 주어질 때까지 다른 작업을 수행할 수 있으므로 자원을 효율적으로 사용 가능

 

참고자료

https://private.tistory.com/24

https://velog.io/@sjquant/%ED%8C%8C%EC%9D%B4%EC%8D%AC%EA%B3%BC-%EB%B9%84%EB%8F%99%EA%B8%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-1-%EB%B9%84%EB%8F%99%EA%B8%B0-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D%EC%9D%B4%EB%9E%80

 

 

 

 

 

'개발' 카테고리의 다른 글

LDAP(Lightweight Directory Access Protocol)이란?  (0) 2021.08.01
CentOS 7 serviced 등록 및 실행  (0) 2021.05.17
WAL(Write-ahead logging)란 ?  (0) 2021.05.14
Windows WSL Version up 및 초기화  (2) 2021.01.25
jupyter 외부접속 허용  (0) 2019.06.16
Comments