
139
4
장
마이크로서비스 통신 방식
호출까지 수반한다는 사실을 개발자에게 숨기려는 시도를 지금껏 많이 봤다. 세부 사항을 숨기
고자 추상화하려는 우리의 바람은 더 많은 일을 더 효율적으로 수행하게 만들지만, 때로는 지
나치게 감춰버리는 추상화를 초래한다. 개발자는 네트워크 호출이 수반되는 작업을 수행하고
있는지 알아야 한다. 그렇지 않으면, 코드를 작성하는 개발자에게 감춰진 서비스 간의 비정상
적 상호작용으로 성능에 심각한 영향을 미치는 병목 현상이 발생하더라도 놀라지 않아야 한다.
4.1.24.1.2
인터페이스 변경 인터페이스 변경
프로세스 내부의 인터페이스 변경을 고려하면 변경 사항을 롤아웃 (출시 )하는 것은 간단하다.
인터페이스를 구현하는 코드와 인터페이스를 호출하는 코드는 모두 같은 프로세스에 함께 패
키징된다. 실제로 리팩터링 기능이 있는
IDE
를 사용해 메서드 정의를 변경하면, 종종
IDE
는
이 변경된 메서드를 호출하는 부분을 자동으로 리팩터링한다. 이러한 변경을 출시하는 것은 원
자적 방식으로 수행되는데, 인터페이스와 양쪽이 하나의 프로세스로 패키징되기 때문이다.
하지만 마이크로서비스 간의 통신에서 인터페이스를 노출하는 마이크로서비스와 해당 인터페
이스를 사용하는 소비자 마이크로서비스는 개별적으로 배포 가능한 마이크로서비스다. 마이크
로서비스