본문 바로가기
Computer Science

[CS] Synchronous / Asynchronous

by jyc_ 2025. 1. 21.

Synchronous (동기)

정의

  • 작업을 순차적으로 진행하는 것
  • 한 작업이 시작되면, 그 작업이 끝날 때 까지 다른 작업은 대기해야 한다.

특징

  • 간단하고 직관적인 코드 설계
  • 여러 작업이 동시에 실행되어야 할 때, 대기 시간으로 인한 전체 프로세스 성능 저하
  • 작업 지연 시, 다른 작업들 또한 지연된다.
  • 작업 간 의존성이 높은 경우 사용

 

Asynchronous (비동기)

정의

  • 작업이 독립적으로 실행되는 것
  • 작업의 완료 여부에 상관 없이, 다른 작업의 실행이 가능하다.

특징

  • I/O 작업, 네트워크 요청 등 시간이 오래 걸리는 작업에 사용
  • callBack, Promise, async/await 등의 메커니즘으로 구현

동기 vs. 블로킹(Blocking)

동기 호출에서는 호출된 함수가 작업을 완료할 때 까지 호출한 함수가 기다린다.

⇒ 순차적 작업 진행

반면, 블로킹은 함수가 호출된 후, 호출한 함수의 결과를 받기 위해 실행을 멈추는 상태를 의미한다.

⇒ 제어권이 반환되지 않고 대기하는 상황

'Computer Science' 카테고리의 다른 글

[CS] Cookie / Session  (0) 2025.01.21
[CS] TCP 3-way handshake  (0) 2025.01.21
[CS] DTO  (0) 2025.01.20
[CS] Primary Key / Foreign Key  (0) 2025.01.20
[CS] IoC / DI (제어 역전과 의존성 주입)  (0) 2025.01.20