SUIN

동기와 비동기 본문

개발지식 백과사전

동기와 비동기

choi suin 2022. 3. 22. 17:23
728x90

동기(Synchronous)

💡 동기는 요청을 보낸 후 응답(결과물)을 받아야지만 다음 동작이 이루어지는 방식

모든 일은 순차적으로 실행되며 어떤 작업이 수행중이라면 다음 작업은 대기하게 된다.

 

비동기(Asynchronous) 

💡 비동기는 요청을 보낸 후에 응답과 관계없이 다음 동작을 실행할 수 있는 방식

  • 비동기 방식은 반대로 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행 할 수 있다. 즉 A작업이 시작하면 동시에 B작업이 실행된다. A작업은 결과값이 나오는대로 출력된다.

 

동기와 비동기는 상황에 따라 각각 장단점

동기방식 설계가 매우 간단하고 직관적이지만 결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있습니다.

비동기 방식 동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있습니다.


 비동기(Asynchronous) 처리는 왜 필요한가? 

데이터를 서버로부터 받아오는 앱을 만든다고 가정하면,서버로부터 데이터를 받아와서 해당 데이터를 뿌려줘야 하므로 맨 처음에 서버로부터 데이터를 받아오는 코드가 실행되어야 할 것이다.

비동기로 처리하지 않고 동기적으로 구성을 하게 된다면 데이터를 받아오기까지 기다린 다음에 앱이 실행될 것이고 서버에 가져오는 데이터 양이 늘어날수록 앱의 실행속도는 기하급수적으로 느려진다.데이터를 가져오기까지 앱이 대기하는 상태가 발생하게 된다.

이런 불편을 없애기 위해서데이터를 수신하는 코드와 페이지를 표시하는 것과는 비동기적으로 처리를 해야한다.

 

 

참고 

https://koras02.tistory.com/87 

'개발지식 백과사전' 카테고리의 다른 글

CORS  (0) 2022.03.22
GET , POST 차이점  (0) 2022.03.22
TCP 와 UDP  (0) 2022.03.22
callback , promise, async/await  (0) 2022.03.22
HTTP 와 HTTPS  (0) 2022.03.22