IT/면접

Q. 동기와 비동기 차이

뀨뿌뀨뿌 2023. 10. 16. 14:30

❓동기(Synchronous)

- 순서에 맞추어 진행되기 때문에 제어하기 쉽고 직관적입니다.
- 여러가지 요청을 동시에 처리 할 수 없어 효율이 낮고 작업 속도가 느릴 수 있습니다.
- 동기방식의 예시로는 콜센터 종업원이 일을 처리하는 방식이 될 수 있습니다.
     -> 콜센터의 직원은 한 손님의 전화 응대가 끝난 후에 다음 손님의 응대를 진행

❓비동기 (Asynchronous)

- 작업이 완료되는 시간을 기다릴 필요가 없어, 자원을 효율적으로 사용 할 수 있습니다.
- 다른 작업의 응답에 상관없이 진행되므로, 작업이 완료된 결과를 제어하기 어렵습니다.
- 비동기 방식의 예제로는 이메일이 있습니다.
    -> 누군가에게 이메일을 보냈을 때 답변을 받지 않아도 이메일을 다시 보낼 수 있음

동기 방식은 작업을 순서대로, 한 작업이 끝나야 다음 작업이 시작하는 방식을 말합니다. 예를 들어, 커피를 주문하는 상황을 생각해보시면, 저는 카운터에서 주문을 하고 커피가 제 손에 들어올 때까지 기다립니다. 제 커피가 준비되어야만 다음 주문으로 넘어갈 수 있습니다. 이것이 동기적 실행 방식이며, 이 방식의 단점은 어떤 작업으로 인해 지연이 발생하면 그 뒤의 모든 작업이 대기해야 한다는 점입니다.
반면, 비동기 방식은 여러 작업이 동시에 실행될 수 있는 방식입니다. 커피를 주문하는 예를 다시 들자면, 저는 주문을 하고 결제를 한 뒤, 자리에 앉거나 다른 일을 하면서 커피가 준비되기를 기다립니다. 커피가 준비되면 직원이 제 이름을 부르거나 휴대폰으로 알림이 옵니다. 이렇게 다른 작업을 병행할 수 있기 때문에, 시간을 보다 효율적으로 사용할 수 있습니다.
이러한 비동기 처리는 특히 웹 개발에서 매우 중요합니다. 서버로부터 데이터를 요청할 때, 우리는 페이지의 나머지 부분을 로딩하고 다른 사용자 인터랙션에 응답할 수 있도록 비동기적으로 데이터를 요청합니다. 이렇게 함으로써 사용자는 데이터를 기다리는 동안 멈춰있지 않고, 다른 작업을 계속할 수 있습니다.
결론적으로, 동기와 비동기의 선택은 작업의 특성과 필요에 따라 달라집니다. 정확성과 순서가 중요한 작업은 동기 방식이 적합할 수 있고, 사용자 경험을 중시하거나 병렬로 처리할 수 있는 작업은 비동기 방식이 더 적합할 수 있습니다.