

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 동기 통신
<a name="synchronous"></a>

동기 통신에서는 다음 다이어그램과 같이 클라이언트가 서비스에 요청을 시작합니다. 예를 들어 정보를 가져오는 요청(`HTTP GET` 요청)이나 데이터를 변경하는 요청(`HTTP PUT` 요청)이 이에 해당합니다. 두 경우 모두 클라이언트는 서버가 응답할 때까지 기다린 후 다음 작업을 진행합니다. 동기 호출은 대부분의 개발자에게 익숙하며, 구현과 문제 해결이 쉽고, 많은 경우 통신 표준으로 널리 사용됩니다.

![클라이언트와 마이크로서비스 간, 또는 마이크로서비스와 마이크로서비스 간의 동기 통신](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/modernization-integrating-microservices/images/synchronous-communication.png)


동기 통신의 장점은 다음과 같습니다.
+ **예측 가능한 흐름 제어** – 비동기 통신에 비해 결정론적 실행과 명확한 요청-응답 주기를 제공하여 이해하기 쉽습니다.
+ **강력한 일관성** - 데이터 변경과 상태 업데이트를 즉시 확인할 수 있습니다.
+ **간단한 오류 처리** – 오류와 예외를 직접 전파할 수 있습니다.
+ **쉬운 디버깅** – 요청 추적과 모니터링이 간단합니다.
+ **프로토콜 지원** – HTTP, REST와 같은 잘 확립된 프로토콜을 사용하여 구현이 용이합니다.

동기 통신의 단점은 다음과 같습니다.
+ **긴밀한 결합** – 서비스가 서로의 가용성에 직접적으로 의존합니다.
+ **네트워크 영향** – 지속적인 연결로 인해 네트워크 부하가 증가합니다.
+ **리소스 사용** – 연결 상태를 유지하면서 메모리 사용량이 증가합니다.
+ **연쇄적 장애** – 한 서비스에 생긴 문제가 시스템 전체에 빠르게 전파될 수 있습니다.