173
5
장
마이크로서비스의 통신 구현
5.1.45.1.4
소비자를 위해 서비스를 단순하게 만들라 소비자를 위해 서비스를 단순하게 만들라
우리는 소비자가 마이크로서비스를 쉽게 사용할 수 있도록 만들고 싶다. 만약 소비자가 마이
크로서비스를 사용하는 비용이 하늘을 찌를 정도로 높다면, 마이크로서비스를 아름답게 만드
는 것은 그다지 중요하지 않다! 그렇다면 소비자들이 우리의 새롭고 멋진 서비스를 쉽게 사용
할 방법은 무엇인지 생각해보자. 이상적으로는 클라이언트가 자기 기술을 선택하는 데 완전한
자유를 누리게 하고 싶다. 다른 한편으로는 클라이언트 라이브러리를 제공하면 이 바람을 쉽게
이룰 수 있다. 예를 들어 (서비스 ) 소비자의 편의를 위해 클라이언트 라이브러리를 사용할 수
있지만, 결합이 증가되는 것을 감수해야 한다.
5.1.55.1.5
내부 구현 세부 사항을 숨겨라 내부 구현 세부 사항을 숨겨라
소비자가 우리의 내부 구현에 종속되는 상황을 바라지 않는 것은 결합이 증가하기 때문이다.
즉, 마이크로서비스 내부에서 무언가를 변경하려는 경우 소비자에게도 변경을 요구해 소비자
를 불편하게 만들 수 있다. 이는 변경 비용을 증가시키는데, 모두가 원치 않는 결과다. 또한 소
비자를 업그레이드해야 한다는 두려움 때문에 변경을 꺼리는 경향도 있음을 의미하며, 이는 서
비스 내부의 기술 부채를 증가시키곤 한다. 따라서 내부 표현의 상세 정보를 노출하도록 강요
하는 기술은 피해야 한다.
5.25.2
기술 선택 기술 선택
살펴볼 기술이 많지만, 광범위하게 모두 ...