🆚 동기와 비동기
여러 애플리케이션이 서로 통신해야 할 때 두가지 패턴 타입을 사용할 수 있다.
1. 동기식 통신
동기식 통신은 애플리케이션끼리 직접 요청을 주고 받는 것이다.
구매하는 서비스를 만들었고, 이것을 판매한 물품을 배송하는 서비스에 연결해야 하는 상황을 생각해보자. 이때 구매 서비스와 배송 서비스가 서로 직접 요청을 주고 받으니, 두 서비스를 동시에 통합해야 할 것이다. 서로 직접 연결되어 요청을 주고 받는 이러한 경우가 비동기이다.
동기식 통신에는 문제점이 있다. 예를 들어 트래픽이 갑자기 치솟는 경우, 서비스가 과중되며 요청 처리를 실패할 수 있다. 이러한 한계를 극복할 수 있는 방법이 비동기식 통신이다.
2. 비동기식 통신
비동기식은 이벤트 기반이라고도 한다. 애플리케이션 사이에 통신할 대기열이 존재할 때 비동기식 통신이 가능하다.
중간에 대기열이 있으면, 동기식 통신과 달리 대기열을 통해 애플리케이션이 연결된다.
구매 서비스에서 판매가 이루어질 때마다, 대기열에 주문을 올려놓고, 배송서비스는 대기열에서 메시지를 읽어들여서 주문을 받는다.
비동기를 통해 애플리케이션끼리 직접적으로 통합되지 않게 되는데, 이를 Decoupled 라고도 한다. 서로 연결이 느슨하게 되어 마이크로 아키텍처를 구축하는데도 중요한 개념이다.
위에서 동기의 문제점을 개선할 수 있는 방식이 비동기식이라고 설명했다. 예를 들어 트래픽이 치솟는 경우에도, 몰린 트래픽이 대기열을 통해 전달되고, 애플리케이션이 분리되어 있기 때문에 독립적으로 규모 조정이 가능하다.
'AWS' 카테고리의 다른 글
Kinesis란? 실시간 데이터 처리 서비스 정리 (0) | 2025.04.13 |
---|---|
Amazon SQS란? 비동기 통신과 큐 개념 정리 (0) | 2025.04.12 |
글로벌 앱 설계 - 리전과 AZ 활용 전략 (0) | 2025.04.10 |
AWS Local Zones: 리전보다 가까운 클라우드 인프라의 확장 (0) | 2025.04.09 |
AWS WaveLength: 초저지연 엣지 컴퓨팅 (0) | 2025.04.08 |