Synchronous / Asynchronous ( 동기/비동기 )

Yeonn·2023년 9월 7일
0

CS 공부

목록 보기
10/13
post-thumbnail

Syn: 함께, chrono: 시간
Synchronous: 요청한 작업에 대해 완료 여부를 따져 순차대로 처리
Asynchronous: 요청한 작업에 대해 완료 여부를 따지지 않고 자신의 다음 작업을 그대로 수행

✔️ Sync( 동기 )

요청과 결과가 동시에 일어나는 방식으로 요청을 보낸 후 응답을 받아야 다음 동작이 진행된다. 설계가 간단하고 직관적이나 요청에 대한 결과가 반환되기 전까지 대기해야 한다.

✔️ Async( 비동기 )

요청과 결과가 동시에 일어나지 않는 방식으로 사용자가 서버로 요청을 보냈을 경우 요청에 대한 응답을 기다리지 않고, 다른 것을 수행할 수 있으며 서버로 다른 요청을 보낼 수도 있다. 요청에 대한 결과가 반환되기 전에 다른 작업을 수행할 수 있어서, 즉 멀티 작업을 진행할 수 있어서 자원을 효율적으로 사용하고 이는 전반적인 시스템 향상에 도움이 된다. 하지만 동기 방식보다 설계가 복잡하고 논증적이다.

작업 순서 처리 차이 !
동기 작업은 요청한 작업에 대해 순서가 지켜지는 것을 말하는 것이고, 비동기 작업은 순서가 지켜지지 않을 수 있다는 것을 말한다.

✔️ Blocking / Non-Blocking

📌
동기 / 비동기: 요청한 작업에 대해 완료 여부를 신경써서 작업을 순차적으로 수행할지 아닌지에 대한 관점
블로킹 / 논블로킹: 현재 작업이 block( 차단, 대기 )되느냐에 따라 다른 작업을 수행할 지에 대한 관점

서로 다른 차원에서 작업의 수행 방식을 설명하는 개념으로 의미 차이는 명확하지만,
비동기 함수이면서 동시에 논블로킹 함수일 수 있다 !

0개의 댓글