마이크로서비스 아키텍처 원칙을 포괄적으로 설명하고, 실제 시나리오에서 이러한 개념을 사용하는 방법을 논의한다. 또한 특정 기술이나 프레임워크에 한정하지 않고 마이크로서비스 아키텍처의 특정 측면에 가장 적합한 광범위한 기술과 프레임워크를 다룬다.
서비스 간 통신, 중앙 집중식 엔터프라이즈 서비스 버스(Enterprise Service Bus(ESB))를 사용하지 않는 서비스 통합, 중앙 집중식 API 게이트웨이 없이 API로 마이크로서비스 노출, 마이크로서비스의 범위와 크기 결정, 마이크로서비스 보안 패턴 활용 등 엔터프라이즈 아키텍처 환경에서 마이크로서비스를 구축하는 동안에 고려해야 할 근본적인 문제를 다루는 것도 차별화된 특징이다. 이 책에서 설명하는 모든 개념은 사용 사례와 함께 설명하며 독자가 시도할 수 있는 샘플과 통합된다. 이러한 사용 사례의 대부분은 넷플릭스(Netflix)와 구글 같은 기존 마이크로서비스 구현과 샌프란시스코 베이 에어리어의 다양한 밋업과 콘퍼런스에 참여했던 경험에서 영감을 얻었다.
현대 소프트웨어 애플리케이션은 프로세스 간 통신 기술을 활용해 컴퓨터 네트워크를 통해 서로 연결되는 경우가 많다. gRPC는 이런 분산 애플리케이션이나 마이크로서비스 구축을 위해 사용되는 고성능 RPC(Remote Procedure Calls)를 기반으로 하는 최신 프로세스 간 통신 스타일이며, 마이크로서비스와 클라우드 네이티브 애플리케이션의 출현으로 gRPC 채택이 기하급수적으로 증가하고 있다.
이 책을 쓰게 된 것은 gRPC 활용이 증가하면서 gRPC 애플리케이션 개발 주기의 모든 단계에서 최고의 참조 가이드로 사용할 수 있는 깊이 있는 책이 필요하다고 느꼈기 때문이다. gRPC의 다양한 리소스와 코드 샘플이 도처(문서, 블로그, 기사, 콘퍼런스 토크 등)에 있지만 gRPC 애플리케이션을 개발하는 데 사용할 수 있는 단일 리소스는 없을뿐더러 내부 프로토콜과 동작 방식의 리소스도 없다.
이런 도전을 극복하고 gRPC의 기본 사항, 기존 프로세스 간 통신 기술과의 차이점, 실제 gRPC 통신 패턴, Go 언어와 자바를 사용한 애플리케이션 개발, 이면의 동작 방식, 실제 환경에서의 실행, 쿠버네티스 및 기타 생태계와의 동작 방식에 대해 포괄적인 이해를 제공하고자 한다.