동기(synchronous )
- 요청을 하면 (바로) 응답을 받는다는 의미. 말 그대로 동시에 일어난다는 뜻.
- 요청과 그 결과가 동시에 일어난다는 약속. 바로 요청을 하면 시간이 얼마가 걸리던지 요청한 자리에서 결과가 주어져야 한다.
-> 요청과 결과가 한 자리에서 동시에 일어남.
-> A노드와 B노드 사이의 작업 처리 단위(transaction)를 동시에 맞추겠다. - 설계가 간단하고 직관적이지만 결과가 주어질 때 까지 아무것도 못하고 대기해야된다
비동기(Asynchronous)
- 동시에 일어나지 않는다를 의미. 요청과 결과가 동시에 일어나지 않을거라는 약속이다.
- 요청과 응답이 다른 시간대 존재하기 때문에, 요청내용에 대해 지금 바로 혹은 당장 응답받지 않아도 된다. (바로 응답이 와도 되고!)
-> 요청한 그 자리에서 결과가 주어지지 않음.
-> 노드 사이의 작업 처리 단위를 동시에 맞추지 않아도 된다. - 동기보다 설계가 복잡하지만 결과가 주어지는데 시간이 걸리더라고 그 시간동안 다른 작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있다.
페이지 리로드의 경우, 전체 리소스를 다시 불러와야하는데 이미지, 스크립트 , 기타 코드등을 모두 재요청할 경우 불필요한 리소스 낭비가 발생하게 되지만 비동기식 방식을 이용할 경우 필요한 부분만 불러와 사용할 수 있으므로 매우 큰 장점이 있다.
동기는 추구하는 같은 행위(목적)가 동시에 이루어지며,
비동기는 추구하는 행위(목적)가 다를 수도 있고, 동시에 이루어지지도 않는다고 요약할 수 있겠다.
728x90
'STUDY > CS' 카테고리의 다른 글
복습(환경변수 설정, 이메일 인증) (0) | 2023.01.05 |
---|---|
TCP / UDP (0) | 2023.01.05 |
프로세스/스레드 (0) | 2023.01.05 |
Base64 인코딩 (0) | 2023.01.05 |
자료구조(해시테이블) (0) | 2023.01.04 |
댓글