동기식(Synchronous) VS 비동기식(Asynchronous)
동기 : 순차적으로 코드를 실행하는 방식
비동기 : 동시에 여러 작업을 처리하는 방식
Table of Content
동기식(Synchronous) VS 비동기식(Asynchronous)
동기와 비동기를 나누는 가장 큰 차이점을 어떻게 실행 순서를 가지는 지에 있다.
Syncronous 동기는 요청을 보낸 후 해당 요청의 응답을 받아야 다음 동작을 실행하는 방식을,
Asynchronous 비동기는 요청을 보낸 후 응답과 관계없이 다음 동작을 실행할 수 있는 방식을 의미한다.
동기식 (Synchronous)
먼저 시작된 하나의 작업이 끝날 때까지 다른 작업을 시작하지 않고 기다렸다가 다 끝나면 새로운 작업을 시작하는 방식이다. 위 그림 Synchronous와 같이 작업이 직렬로 배치되어 실행되며 작업 실행의 순서가 확실히 정해져 있는 것을 동기식 처리라 부른다.
장점 : 설계가 매우 간단하고 직관적
단점 : 결과가 주어질 때까지 아무것도 못하고 대기해야 한다.
비동기식 (Asynchronous)
동기식 방식과는 다르게 먼저 시작된 작업의 완료 여부와는 상관없이 새로운 작업을 시작하는 방식
이다. 위 그림 Asynchronous와 같이 작업이 병렬로 배치되어 실행되며 작업의 순서가 확실하지 않아 나중에 시작된 작업이 먼저 끝나는 경우도 발생한다. 이와 같은 방식을 비동기식 처리라 부른다.
장점 : 결과가 주어지는데 시간이 걸리더라도 그 시간 동안에 다른 작업을 할 수 있으므로 자원들을 효율적으로 사용 할 수 있다.
단점 : 동기보다 복잡한 설계
간단 상황으로 보는 예시
동기식 (Synchronous) 예시
카페에 가서 커피를 주문한다고 가정하면, 동기식으로 주문하면 주문을 한 다음에 커피가 완성될 때까지 기다려야 한다. 다른 손님이 주문한 커피가 완성되기 전에는 새로운 주문은 처리되지 않는다.
비동기식 (Asynchronous) 예시
주문하고 나면 다른 작업을 할 수 있고, 커피가 완성되면 알림을 받아 처리할 수 있다.
Related Posts
Search