Skip to content

Latest commit

 

History

History
25 lines (13 loc) · 1.46 KB

sync-async.md

File metadata and controls

25 lines (13 loc) · 1.46 KB

동기 비동기

동기와 비동기의 차이점

동기(synchronous)는 요청에 대한 응답이 반환 될 때 까지 기다립니다. 반면 비동기(asynchronous)는 요청에 대한 응답이 즉시 반환되지 않을 것이라고 가정하기 때문에 다른 작업을 실행할 수 있습니다.

동기의 장단점

동기 방식은 설계가 간단하고 코드가 직관적입니다. 하지만 응답에 대한 지연시간 때문에 성능적으로 문제가 될 수 있습니다.

비동기의 장단점

비동기 방식은 설계가 복잡하고 효율성을 얻는 대신 이에 대한 추가적인 처리가 필요하다는 단점이 있는 반면 결과에 대한 응답을 기다리는 동안 다른 작업을 실행할 수 있어 자원을 효율적으로 처리할 수 있습니다.

동기와 비동기를 선택하는 기준

동기는 목적이 같은 코드를 동시에 실행할 때 사용하며, 비동기는 목적이 다를 수 있고, 동시에 이루어지지 않아도 되는 경우 사용할 수 있습니다.

블로킹 / 논블로킹

블로킹 / 논블로킹은 이와는 별개의 의미로 쓰입니다.

일반적인 경우 동기-블로킹 / 비동기-논블로킹 방식이 많이 쓰입니다.

블로킹의 경우 해당 코드가 제어권을 가지고 동작이 끝날 때 제어권을 반환하는 방식이고, 논블로킹의 경우 해당 코드가 제어권을 즉시 반환하여 다음 코드가 실행됩니다.