Top

마이크로서비스 [유연하고 확장 가능한 소프트웨어 아키텍처]

  • 원서명Microservices: Flexible Software Architectures (ISBN 9781523361250)
  • 지은이에버하르트 볼프(Eberhard Wolff)
  • 옮긴이김영기
  • ISBN : 9788960778986
  • 35,000원
  • 2016년 08월 30일 펴냄
  • 페이퍼백 | 460쪽 | 188*250mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

요약

이 책은 다양한 기술을 통해 구현 가능한 개념과 마이크로서비스 아키텍처를 소개한다. 구체적인 시나리오와 다양한 예제를 통해 마이크로서비스의 구현 방법을 배우게 될 것이다. 이 책은 마이크로서비스에 대한 전반적인 내용을 포함하고 있으며, 마이크로서비스를 이용한 개발 방법의 장점과 단점, 마이크로서비스 아키텍처와 서비스 지향 아키텍처의 비교, 마이크로서비스를 기반으로 하는 시스템 구조, 조직 관점의 마이크로서비스 아키텍처, 마이크로서비스와 나노서비스의 비교 등을 다룬다.

이 책에서 다루는 내용

■ 마이크로서비스 접근 방법의 장점과 단점
■ 마이크로서비스 vs. 서비스 지향 아키텍처(SOA)
■ 마이크로서비스 기반 시스템 아키텍처
■ 개별 마이크로서비스의 아키텍처
■ 마이크로서비스 아키텍처가 프로젝트 조직, 운영, 테스팅, 배포에 미치는 영향
■ 나노서비스

이 책의 대상 독자

이 책은 아키텍처적인 접근 방법으로 마이크로서비스를 도입하기 원하는 관리자, 아키텍트, 개발자를 위한 책이다.

관리자
마이크로서비스는 비즈니스가 마이크로서비스 아키텍처를 지원하기 위해 구성돼 있을 때 가장 잘 작동한다. 이 책의 도입부에서 관리자들은 마이크로서비스의 배경이 되는 기본적인 아이디어를 이해할 수 있다. 이후 관리자들은 마이크로서비스를 사용하는 조직적인 영향에 초점을 맞출 수 있다.

개발자
개발자에게는 기술적인 측면에 대한 포괄적인 소개가 제공되며, 마이크로서비스를 사용하는 데 필요한 기술을 습득할 수 있다. 다수의 추가적인 기술과 더불어 마이크로서비스의 기술적인 구현에 대한 상세한 예제(예를 들어, 나노서비스)는 기본적인 개념을 전달하는 데 도움이 될 것이다.

아키텍트
아키텍트는 아키텍처 측면에서 마이크로서비스를 이해할 수 있으며, 동시에 관련된 기술적 문제와 조직적 문제에 대해 더 깊이 이해할 수 있다. 이 책은 실험과 추가적인 정보 소스를 위해 가능한 분야를 강조한다. 그리고 이러한 것들은 새로운 지식을 테스트하고 관련된 주제를 더욱 깊이 탐구하는 데 관심 있는 독자들에게 실질적인 도움이 될 수 있다.

저자/역자 소개

지은이의 말

마이크로서비스 기반 아키텍처(Microservice-based architecture)는 소프트웨어 시스템을 독립적인 배포가 가능한 다양하고 작은 서비스로 분할한다. 모든 개발 팀은 자신만의 마이크로서비스에 대해 작업하며 다른 팀과는 분리된다. 이것은 애자일 프로세스의 쉬운 확장을 가능하게 만든다. 마이크로서비스를 이용한 모듈화(modularization)는 아키텍처의 쇠퇴로부터 시스템을 보호한다. 결과적으로, 마이크로서비스 기반 아키텍처는 시스템을 장기적으로 유지보수 가능한 상태를 유지시킨다. 또한 레거시 시스템은 마이크로서비스로 전환할 수 있으며, 마이크로서비스 기반 시스템에서 지속적인 전달의 구현을 더 쉽게 할 수 있다.
이 책에서는 다양한 기술을 통해 구현 가능한 기술 중립적(technology-neutral)인 개념과 아키텍처를 설명한다. 구체적인 자바 기술 스택의 예로는 스프링 부트(Spring Boot), 넷플릭스 스택(Netflix stack), 스프링 클라우드(Spring Cloud)가 있으며, 이들을 살펴볼 것이다.
다양한 예제와 구체적인 시나리오를 기반으로, 가능한 한 효과적인 마이크로서비스의 사용 방법을 익힐 수 있다. 이 책은 여러분 스스로 실험을 통해 배운 내용을 심화하는 방법에 대해서도 알려준다.
이와 함께, 마이크로서비스 전문가들의 에세이도 만나볼 수 있다.

지은이 소개

에버하르트 볼프(Eberhard Wolff)

아키텍처와 컨설턴트로서 15년 이상의 경험을 쌓았으며, 때때로 비즈니스와 기술이 교차하는 분야에서 활동했다. 독일 innoQ의 회원으로, 다양한 국제 컨퍼런스에서 강연했으며, 마이크로서비스와 지속적인 전달에 관한 100건 이상의 기사와 책을 저술했다. 클라우드(Cloud), 지속적인 전달(Continuous Delivery), 데브옵스(DevOps), 마이크로서비스, NoSQL 등을 포함하는 현대적인 소프트웨어 아키텍처에 기술적인 초점을 맞추고 있다.

옮긴이의 말

모든 소프트웨어 관련 분야가 빠르게 변하고 있습니다. 개발 언어부터 프로세스, 개발 조직, 문화 등 모두가 원하든 원하지 않든 빠르게 변하고 있습니다. 소프트웨어 아키텍처도 모놀리틱 아키텍처(Monolithic Architecture)에서 서비스 지향 아키텍처(SOA, Service-Oriented Architecture)를 거쳐 마이크로서비스 기반 아키텍처(Mircoservice-based Architecture)로 점차 이동하고 있습니다.
이 책은 마이크로서비스의 개념과 구현뿐 아니라 마이크로서비스와 관련된 애자일 프로세스나 특정 기술, 그리고 아마존 클라우드나 스프링 부트, 넷플릭스 스택 등에 대해서도 고루 언급하고 있습니다. 이 책은 마이크로서비스를 위한 좋은 지침서로서 마이크로서비스의 내용을 파악해가는 긴 항해에 있어 ‘나침반’ 역할을 할 것이라 생각합니다. 이 책을 통해 마이크로서비스에 대한 많은 궁금증이 해소되기를 바랍니다.

옮긴이 소개

김영기

15년 이상 SE 업무를 담당하고 있으며, 정적 분석과 구조 분석 등 소프트웨어 품질 개선 작업을 수행해왔다. 현재 삼성전자 네트워크 사업부에서 소프트웨어 개발 인프라와 구조 분석을 담당하고 있으며, 사업부 소프트웨어 교육 강사로도 활동 중이다. 개발자 역량 강화와 개발 조직 구성에 관심이 많고 시스템 관리, 데이터베이스, 테스트, 애자일 등 다수의 소프트웨어 관련 인증을 보유하고 있다.

목차

목차
  • 1장. 서문
    • 1.1 마이크로서비스의 개요
    • 1.2 왜 마이크로서비스인가

  • 1부. 동기부여와 기본 사항
  • 2장. 소개
    • 2.1 이 책의 개요
    • 2.2 이 책의 대상 독자
    • 2.3 이 책에서 다루는 내용
    • 2.4 에세이
    • 2.5 이 책을 읽는 방법
    • 2.6 감사의 글

  • 3장. 마이크로서비스 시나리오
  • 3.1 레거시 전자상거래 애플리케이션의 현대화
  • 3.2 신규 신호 처리 시스템 개발
  • 3.3 결론

  • 2부. 마이크로서비스: 정의, 이유, 그리고 제안 사항
  • 4장. 마이크로서비스란 무엇인가
    • 4.1 마이크로서비스의 크기
    • 4.2 콘웨이의 법칙
    • 4.3 도메인 주도 설계와 제한 맥락
      • 왜 정규 데이터 모델을 피해야 하는가(스테판 틸코브(Stefan Tilkov))
    • 4.4 마이크로서비스와 UI
    • 4.5 결론

  • 5장. 마이크로서비스를 사용하는 이유
    • 5.1 기술적인 혜택
    • 5.2 조직적인 혜택
    • 5.3 비즈니스 측면에서의 혜택
    • 5.4 결론

  • 6장. 마이크로서비스에 대한 도전 사항들
    • 6.1 기술적인 도전 사항
    • 6.2 아키텍처
    • 6.3 인프라스트럭처와 운영
    • 6.4 결론

  • 7장. 마이크로서비스와 SOA
    • 7.1 SOA는 무엇인가
    • 7.2 SOA와 마이크로서비스의 차이
    • 7.3 결론

  • 3부. 마이크로서비스 구현
  • 8장. 마이크로서비스 기반 시스템 아키텍처
    • 8.1 도메인 아키텍처
    • 8.2 아키텍처 관리
    • 8.3 아키텍처 조정 기법들
    • 8.4 마이크로서비스 기반 시스템의 성장
      • 종료 지점을 놓치지 않고, 어떻게 마이크로서비스의 침식을 방지하는가(라스 젠쉬(Lars Gentsch))
    • 8.5 마이크로서비스와 레거시 애플리케이션
      • 숨겨진 의존성(올리버 웨허런스(Oliver Wehrens))
    • 8.6 이벤트 주도 아키텍처
    • 8.7 기술 아키텍처
    • 8.8 구성 및 조정
    • 8.9 서비스 검색
    • 8.10 로드 밸런싱
    • 8.11 확장성
    • 8.12 보안
    • 8.13 문서화와 메타데이터
    • 8.14 결론

  • 9장. 마이크로서비스의 통합과 통신
    • 9.1 웹과 UI
    • 9.2 REST
    • 9.3 SOAP와 RPC
    • 9.4 메시징
    • 9.5 데이터 복제
    • 9.6 인터페이스: 외부 인터페이스와 내부 인터페이스
    • 9.7 결론

  • 10장. 개별 마이크로서비스의 구조
    • 10.1 도메인 아키텍처
    • 10.2 CQRS
    • 10.3 이벤트 소싱
    • 10.4 헥사고날 아키텍처
    • 10.5 탄력성과 안정성
    • 10.6 기술 아키텍처
    • 10.7 결론

  • 11장. 마이크로서비스와 마이크로서비스 기반 시스템의 테스팅
    • 11.1 왜 테스트하는가
    • 11.3 배포 위험 완화
    • 11.4 전체 시스템의 테스팅
    • 11.5 레거시 애플리케이션과 마이크로서비스의 테스팅
    • 11.6 개별 마이크로서비스의 테스팅
    • 11.7 고객 주도 계약 테스트
    • 11.8 테스팅 기술 표준
    • 11.9 결론

  • 12장. 운영과 마이크로서비스의 지속적인 전달
    • 12.1 마이크로서비스 운영과 관련된 문제들
    • 12.2 로깅
    • 12.3 모니터링
    • 12.4 배포
      • 통합 배포, 또는 분리 배포(예르크 뮬러)
    • 12.5 통제
    • 12.6 인프라스트럭처
    • 12.7 결론

  • 13장. 마이크로서비스 기반 아키텍처의 조직적인 효과
    • 13.1 마이크로서비스의 조직적인 혜택
    • 13.2 콘웨이의 법칙에 대한 대안적인 접근 방법
    • 13.3 마이크로 아키텍처와 매크로 아키텍처
    • 13.4 기술 리더십
    • 13.5 데브옵스
      • 마이크로서비스와 고전적인 IT 조직이 만나는 경우(알렉산더 허징필드(Alexander Heusingfeld))
    • 13.6 고객에 대한 인터페이스
    • 13.7 재사용 가능한 코드
    • 13.8 조직에 대한 변경 없이도 마이크로서비스가 가능한가
    • 13.9 결론

  • 4부. 관련 기술
  • 14장. 마이크로서비스 기반 아키텍처 예제
    • 14.1 도메인 아키텍처
    • 14.2 기본 기술
    • 14.3 빌드
    • 14.4 도커를 이용한 배포
    • 14.5 Vagrant
    • 14.6 도커 머신
    • 14.7 도커 컴포즈
    • 14.8 서비스 검색
    • 14.9 통신
    • 14.10 탄력성
    • 14.11 로드 밸런싱
    • 14.12 다른 기술들과 통합하기
    • 14.13 테스트
      • 아마존 클라우드의 JVM 기반 마이크로서비스에 대한 경험(샤샤 묄러링(Sascha Mo¨llering))
    • 14.14 결론

  • 15장. 나노서비스 기술
    • 15.1 왜 나노서비스인가
    • 15.2 나노서비스: 정의
    • 15.3 아마존 람다
    • 15.5 자바 EE
    • 15.6 Vert.x
    • 15.7 얼랭
    • 15.8 세네카
    • 15.9 결론

  • 16장. 마이크로서비스를 어떻게 시작하는가
    • 16.1 왜 마이크로서비스인가
    • 16.2 마이크로서비스를 향한 길
    • 16.3 마이크로서비스: 과대광고, 또는 현실
    • 16.4 결론

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안