728x90
프로그래밍에서 나오는 개념인 동기식과 비동기식에 대해서 알아보자.

동기식(Synchronous)

작업이 순차적으로 실행되는 것이다.
한 작업이 완료되기 전에 다음 작업이 실행되지 않는다.
요청에 대한 응답을 기다리고 응답이 오면 다음 요청을 수행하는 방식이다.
- 장점
- 단순: 구성이 단순하다.
- 순서 조작이 가능하다. ( 요청과 응답의 순서가 보장이 된다.)
- 요청에 대한 응답 값을 보장 받을 수 있다.
- 단점
- 멀티 태스킹: 여러일을 동시에 실행이 불가능하다
- 대기 시간이 걸려 시간이 오래 걸릴 수 있다.
- 멀티 태스킹: 여러일을 동시에 실행이 불가능하다
Synchronous: 동기식
'모두 동시에 똑같이 진행되는' 의미를 담고있다.
여기서 동시에 똑같이 진행된다는 것은 Request를 보내면 그 자리에서 Response를 받는다는 말이다.
= 두 서버 사이의 Transaction을 맞춘다는 의미다.
비동기식(Asynchronous)

작업이 서로 독립적으로 실행된다.
작업이 완료될 때까지 다른 작업을 기다리지 않고 계속 진행된다.
요청에 대한 응답을 기다리지 않고 다음 동작을 진행하는 방식이다.
- 장점
- 멀티 태스킹: 여러일을 동시에 실행할 수 있다.
- 대기 시간을 최소화할 수 있다.
- 효율성: 한 작업의 response를 기다리는 동안에도 다른 작업을 하면서 자원을 효율적으로 사용할 수 있다.
- 멀티 태스킹: 여러일을 동시에 실행할 수 있다.
- 단점
- 부하: 일정 시간에 요청량이 많아지면 부하가 발생할 수 있다.
- 추가적인 처리가 필요할 수 있다.
- 요청과 응답의 순서가 보장되지 않는다.
- Response에 대한 처리 결과를 보장받고 처리해야 하는 서비스에는 적합하지 않다.
- 부하: 일정 시간에 요청량이 많아지면 부하가 발생할 수 있다.
Asynchronous: 비동기식
'동시에 수행하지 않는다.'라는 의미를 담고있다.
Request를 보내도 Response는 언제 받아도 상관없다는 의미이다.
Reqeust를 보내고 Response를 상관하지 않는 상태가 된다.
참고: https://velog.io/@kw2577/CSNetwork-%EB%8F%99%EA%B8%B0%EC%99%80-%EB%B9%84%EB%8F%99%EA%B8%B0
[Network] 동기와 비동기
소프트웨어를 개발할 때 동기 또는 비동기적으로 코드를 작성하는 일은 매우 중요하다. 용도나 방식에 따라서 올바른 방식을 적절히 선택해야하는데 이러한 동기와 비동기에 대해 개념을 정리
velog.io
728x90
'knowledge > computer science' 카테고리의 다른 글
| [성능 테스트] Artillery 설치 (0) | 2024.06.06 |
|---|---|
| [성능 테스트] 필요한 배경 지식 (0) | 2024.06.03 |
| 임베디드 시스템, 범용 컴퓨팅 시스템 (0) | 2024.02.26 |
| 프록시 서버: 포워드 프록시와 리버스 프록시 (0) | 2024.02.14 |
| [네트워크] 쿠키와 세션 (1) | 2024.02.13 |