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 |