프로그래밍을 하다보면 동기와 비동기에 대해서 듣게 된다. 데이터를 받는 방식인 동기와 비동기 둘의 개념에 대해 알아보고 차이점에 대해서 정리해보고자 한다.
1. 동기(Synchronous: 동시에 일어나는)
동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 그 결과가 동시에 일어난다는 뜻으로 요청을 하면 시간이 얼마나 걸리던지 요청한 자리에서 결과가 주어져야 한다. 때문에 사용자가 데이터를 서버에게 요청한다면 그 서버가 데이터 요청에 따른 응답을 사용자에게 다시 리턴해주기 전까지 사용자는 다른 활동을 할 수 없으며 기다려야 한다.
2. 비동기(Asynchronous: 동시에 일어나지 않는)
비동기는 동시에 일어나지 않는다는 듯으로 요청한 결과는 동시에 일어나지 않을거라는 뜻이다. 하나의 요청에 따른 응답을 즉시 처리하지 않아도, 그 대기 시간동안 또 다른 요청에 대해 처리 가능한 방식이다. 서버에게 데이터를 요청한 후 요청에 따른 응답을 계속 기다리지 않아도되며 다른 외부 활동을 수행하여도 되고 서버에게 다른 요청사항을 보내도 상관 없다.
동기와 비동기의 장단점
동기의 장단점
설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있다
위에서 예시처럼 페이지에 들어올 때 카테고리 로딩으로 이어진 후 카테고리로 탭으로 들어오는 경우가 동기 방식으로 볼 수 있다. 직관적이지만, 로딩되는 동안 사용자는 아무것도 할 수 없다.
비동기의 장단점
동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있다.
보통 데이터가 서버에 전송되면 렌더링이 되면서 새로고침이 되지만, 비동기로 구현하면 요청에 따른 응답을 즉시 처리하지 않고 또 다른 요청을 할 수 있게 된다. 동기보다 훨씬 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.
참고:
https://private.tistory.com/24
'Computer Science' 카테고리의 다른 글
TCP/IP 계층 개념과 OSI7계층 비교 (0) | 2023.01.03 |
---|---|
네트워크 라우터 개념(Router) (0) | 2023.01.03 |
OSI 7 Layer 디테일 정리(+ TCP/IP 4계층) (2) | 2022.12.30 |
프로토콜(Protocol)의 개념, 요소, 특징, 계층 구성 (2) | 2022.12.29 |
마이크로서비스 아키텍처(MSA)란? (0) | 2022.12.29 |