마이크로서비스 기반 아키텍처(Microservice-based architecture)는 소프트웨어 시스템을 독립적인 배포가 가능한 다양하고 작은 서비스로 분할한다. 모든 개발 팀은 자신만의 마이크로서비스에 대해 작업하며 다른 팀과는 분리된다. 이것은 애자일 프로세스의 쉬운 확장을 가능하게 만든다. 마이크로서비스를 이용한 모듈화(modularization)는 아키텍처의 쇠퇴로부터 시스템을 보호한다. 결과적으로, 마이크로서비스 기반 아키텍처는 시스템을 장기적으로 유지보수 가능한 상태를 유지시킨다. 또한 레거시 시스템은 마이크로서비스로 전환할 수 있으며, 마이크로서비스 기반 시스템에서 지속적인 전달의 구현을 더 쉽게 할 수 있다.
이 책에서는 다양한 기술을 통해 구현 가능한 기술 중립적(technology-neutral)인 개념과 아키텍처를 설명한다. 구체적인 자바 기술 스택의 예로는 스프링 부트(Spring Boot), 넷플릭스 스택(Netflix stack), 스프링 클라우드(Spring Cloud)가 있으며, 이들을 살펴볼 것이다.
다양한 예제와 구체적인 시나리오를 기반으로, 가능한 한 효과적인 마이크로서비스의 사용 방법을 익힐 수 있다. 이 책은 여러분 스스로 실험을 통해 배운 내용을 심화하는 방법에 대해서도 알려준다.
이와 함께, 마이크로서비스 전문가들의 에세이도 만나볼 수 있다.
마이크로서비스(Microservice)는 최근 가장 중요한 소프트웨어 아키텍처 트렌드 중 하나다. 이미 지금까지 나온 마이크로서비스를 설명한 책이나 문서가 많이 있음에도 나는 마이크로서비스와 관련된 책을 출간했다. 왜 마이크로서비스에 관한 책이 필요할까?
특정 아키텍처를 정의하는 것, 해당 아키텍처를 구현하는 것은 각기 다른 일이다. 이 책은 마이크로서비스 구현을 위한 기술을 제시하고 관련된 장점과 단점을 강조한다.
이 책은 전체 마이크로서비스 시스템 기술에 대해 특별히 집중한다. 각 마이크로서비스는 서로 다른 기술을 사용해 구현될 수 있다. 그래서 개별 마이크로서비스에서 프레임워크를 선택하는 기술적인 결정은 전체 시스템 레벨의 결정만큼 중요하지 않다. 개별 마이크로서비스의 경우 프레임워크에 대한 결정을 쉽게 수정할 수 있다. 그러나 전체 시스템에 적용한 기술은 변경하기가 어렵다.
이 책은 다른 마이크로서비스 책과 비교했을 때 주로 기술에 대해 이야기하며, 마이크로서비스에 대한 아키텍처와 왜 마이크로서비스가 사용되는지를 간단히 설명한다.
각 레시피에는 구체적인 기술을 기반으로 하는 실행 가능한 예시가 있다. 예시는 개별적으로 실행할 수 있다. 예시는 다른 예시에 종속적이지 않아서, 업무와 관련 없는 예시는 건너 뛰고 각자에게 유용한 레시피를 볼 수 있도록 구성했다.
이런 방법을 사용해서 관련 기술에 대한 개요를 얻을 수 있는 쉬운 접근 방법을 독자에게 제공하고 각자에게 적합한 기술 스택을 선택할 수 있게 했다. 책에서 제공하는 링크를 통해 관련 기술에 대한 깊이 있는 지식을 얻을 수 있다.