CS 정리

동기(Synchronous) & 비동기(Asynchronous)

문쿼리 2025. 9. 3. 00:44
"결과를 언제 받느냐"

동기(Synchronous)

어떤 작업을 요청했을 때, 그 작업이 끝날 때까지 다음 작업이 시작되지 않고 순서대로 처리되는 방식. 앞의 결과가 나와야 뒤의 일이 진행됨.
ex) 결제 버튼을 누르면, 결제가 끝날 때까지 화면이 멈춰 있고 다른 메뉴를 누를 수 없는 경우

 

비동기(Asynchronous)

작업을 요청하면 결과가 끝날 때까지 기다리지 않고 즉시 다른 작업을 처리할 수 있는 방식. 결과는 나중에 알림(콜백, 이벤트 등)으로 전달됨.
ex) 결제 버튼을 누르면, 결제가 끝날 때까지 기다리지 않고 바로 다른 메뉴를 볼 수 있는 경우.

카페에서 커피 주문 후, 커피가 나올 때까지 카운터 앞에서 서서 기다리는 것. (=동기)
커피 주문 후, 진동벨을 받고 자리에 앉아 다른 일을 하다가 커피가 준비되면 벨이 울려 찾으러 가는 것. (=비동기)

 

비교

구분  동기 (Synchronous)  비동기 (Asynchronous)
동작 방식 순서대로 진행, 앞이 끝나야 다음으로 요청 후 즉시 다른 일 진행
CPU 활용 대기 시간 동안 CPU 자원 낭비 대기 시간 동안 다른 작업 처리 가능
구현 난이도 단순, 직관적 복잡, 결과 관리(콜백·이벤트 처리)가 필요
적합한 경우 작은 규모, 직관성이 중요한 경우 대규모 동시성, 대기 시간이 긴 작업이 많은 경우

 

'CS 정리' 카테고리의 다른 글

큐잉(Queuing)과 라우팅(Routing)  (0) 2025.09.22
논동기와 비블로킹  (1) 2025.09.05
블로킹(Blocking) & 논블로킹(Non-Blocking)  (0) 2025.09.02
Feign 사용해보기  (1) 2025.08.11
Java + Kotlin 혼용 개발  (0) 2025.07.31