동기 vs 비동기
처리해야할 작업들을어떠한 흐름
으로 처리할 것인가에 대한 관점
📌 요청 결과가 한자리에서 동시에 일어남
📌 A노드와 B노드 사이의 작업 처리 단위를 동시에 맞추겠다.
📌 요청한 그 자리에서 결과가 주어지지 않음
📌 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.
동기방식
- 설계가 매우 간단하고 직관적
- 결과가 주어질때까지 아무것도 못하고 대기해야하는 단점
비동기방식
- 동기보다 복잡
- 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점
✔ A가 B에게 10,000원을 송금
순서를 보면 알겠지만 A의 계좌와 B의 계좌는 서로 요청과 응답(1~3과정)을 확인 후 같은 일을 동시에 진행했다. (4번 과정) '계좌이체'같은 작업은 동기방식으로 처리해야 A에서 보냈는데 B에서 못받는 상황이 없을 것이다.
반대로 비동기방식은 위의 예제처럼 노드사이의 작업 처리 단위를 동시에 맞추지 않아도 된다.
✔ 시험날의 학생과 선생
학생과 선생은 시험지라는 연결고리가 있지만 시험지에 행하는 행위(목적)은 서로 다르다. 학생은 시험지를 푸는 역할을 하고 선생은 시험지를 채점하는 역할을 한다. 서로의 행위(목적)가 다르기 때문에 둘의 작업 처리 시간은 일치하지 않고, 일치하지 않아도 된다.
동기와 비동기는 어떤 작업 혹은 그와 연관된 작업을 처리하고자 하는 시각의 차이이다.
동기를 추구하는 행위(목적)가 동시에 이루어지며, 비동기는 추구하는 행위(목적)가 다를 수도 있고, 동시에 이루어지지도 않는다.
동기 vs 비동기란?
- 어떠한 흐름으로 처리할 것인가에 대한 관점
동기방식이란?
- 요청을 보낸 후 응답(=결과)를 받아야지만 다음 동작이 이루어지는 방식
- 어떤 일을 처리할 동안 다른 프로그램은 정지한다.
- 실제 cpu가 느려지는 것은 아니지만 시스템의 전체적인 효율이 저하된다고 할 수 있다.
비동기방식이란?
- 요청을 보낸 후 응답(=결과)와는 상관없이 다음 코드가 동작하는 방식
- 결과가 주어지는데 시간이 걸리더라도 그 시간동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.