동기와 비동기 (Synchronous & Asynchronous)

chae._.chae·2021년 11월 12일
1

데이터를 받는 방식에는 동기와 비동기, 두 개념이 있다.

동기(synchronous)

동기는 말 그대로 동시에 일어난다는 뜻이다. 요청과 결과가 동시에 일어난다는 의미로, 요청을 하면 요청한 자리에서 결과가 주어져야 한다.

동기는 요청을 보낸 후 응답(결과)을 받아야지만 다음 동작으로 넘어가는 방식이다. 수행되는 일이 순차적으로 이루어지며, 어떤 작업이 현재 수행 중이라면, 다음 작업은 대기하게 된다.

비동기(asynchronous)

비동기는 동기와 반대로 요청과 결과가 동시에 일어나지 않는다.

비동기는 왜 필요할까? - 데이터를 서버로부터 받아오는 어플이 있다고 했을때, 서버로부터 데이터를 받아올때 비동기로 처리하지 않고 동기적으로 구성하게 된다면 데이터를 받아오기까지 기다린 후에 앱이 실행되는데,
서버에서 가져와야할 데이터의 양이 많다면 데이터를 가져오기까지 대기해야 하므로, 앱의 실행속도는 매우 느려질 것이다. 이런 사용자들의 불편함을 없애기 위해 데이터를 수신하는 코드와 페이지를 표시하는 것과는 비동기적으로 처리하는 것이 좋다.
(가장 많이 예시로 사용되는게 setTimeout)

동기와 비동기 특징

동기는 설계가 간단하고 직관적이지만, 결과가 주어질 때까지 아무것도 못하고 대기해야 한다는 단점이 있다.
비동기는 동기보다 설계가 복잡하지만, 결과가 주어지는데 시간이 걸리더라도 동시에 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.

profile
안녕하세용

0개의 댓글