더북(TheBook)

단순한 클라이언트 아키텍처에서는 서비스 요청 코드가 코드 베이스 곳곳에 분산되어 있을 것입니다. 클라이언트 플랫폼에서 HTTP 통신 라이브러리가 기본 기능으로 제공되므로 이러한 방식은 충분히 합리적입니다. 또 각 메서드가 독립적으로 요청을 보내기 때문에 간단하면서도 직관적이며, 관련 팀 간 조정도 최소화할 수 있습니다.

반면에 이러한 접근 방식은 클라이언트가 특정 서비스 상태에 대한 집약적인 정보를 처리하기 어렵게 합니다. 별도의 조율이 없으면 클라이언트 내 여러 부분이 동시에 서비스 요청을 쏟아부어 서로 충돌할 수도 있습니다. 이를 개선하려면 클라이언트가 동일 서비스에 대한 모든 요청을 추적하고 해당 요청의 실패율을 모니터링하면서 적절히 조정된 방식으로 일시 정지하거나 재시도 요청을 할 수 있도록 하는 구조로 만들어야 합니다. 이처럼 클라이언트 문제를 조정할 수 있는 아키텍처가 미리 마련되어 있지 않으면 클라이언트 구현만으로는 높은 신뢰도를 보장하기 어렵습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.