000 | 00000cam c2200205 c 4500 | |
001 | 000046069739 | |
005 | 20220406101620 | |
007 | ta | |
008 | 210223s2021 ggkad b 001c kor | |
020 | ▼a 9791189909253 ▼g 93000 | |
035 | ▼a (KERIS)BIB000015757698 | |
040 | ▼a 222003 ▼c 222003 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
082 | 0 4 | ▼a 005.1 ▼2 23 |
085 | ▼a 005.1 ▼2 DDCK | |
090 | ▼a 005.1 ▼b 2021z4 | |
100 | 1 | ▼a Newman, Sam ▼0 AUTH(211009)144994 |
245 | 1 0 | ▼a 마이크로서비스 도입, 이렇게 한다 : ▼b 기업의 유연성과 확장성을 높이는 마이크로서비스 마이그레이션 패턴과 현장 사례 / ▼d 샘 뉴먼 지음 ; ▼e 박재호 옮김 |
246 | 1 9 | ▼a Monolith to microservices : ▼b evolutionary patterns to transform your monolith |
260 | ▼a 안양 : ▼b 책만, ▼c 2021 | |
300 | ▼a 307 p. : ▼b 삽화, 도표 ; ▼c 24 cm | |
500 | ▼a 부록: A. 참고문헌, B. 패턴 목록, C. 한국어판 특별 부록 | |
504 | ▼a 참고문헌(p. 283-285)과 색인수록 | |
700 | 1 | ▼a 박재호, ▼e 역 ▼0 AUTH(211009)62691 |
900 | 1 0 | ▼a 뉴먼, 샘, ▼e 저 |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.1 2021z4 | Accession No. 121259106 | Availability Available | Due Date | Make a Reservation | Service |
No. 2 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 005.1 2021z4 | Accession No. 151353916 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Science & Engineering Library/Sci-Info(Stacks1)/ | Call Number 005.1 2021z4 | Accession No. 121259106 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 005.1 2021z4 | Accession No. 151353916 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
어떻게 하면 모놀리스 시스템의 엉킴을 풀고 마이크로서비스 아키텍처로 무사히 마이그레이션할 수 있을까? 어떻게 하면 비즈니스를 평상시처럼 운영하면서 안정적으로 마이그레이션할 수 있을까? 이 책은 기존 모놀리스 시스템에서 마이크로서비스 아키텍처로 전환하기 위한 증명된 기법을 상세히 설명한다.
수많은 실제 사례, 통찰력 있는 23가지 마이크로서비스 마이그레이션 패턴, 모놀리스에서 출발해 마이크로서비스 플랫폼으로 전환하기 위한 현실적인 조언 등을 담았으며, 초기 계획부터 애플리케이션과 데이터베이스 분해 과정까지 시종일관 성공적인 마이크로서비스 도입과 마이그레이션을 위한 여러 시나리오와 전략을 소개한다.
모놀리스로 남을 것인가? 마이크로서비스로 진화할 것인가! 23가지 마이크로서비스 마이그레이션 패턴과 수많은 현장 사례를 통해 알아보는, 서두르지 않고 차근차근 모놀리스를 떠나기 위한 마이크로서비스 마이그레이션과 도입에 관한 모든 것!
어떻게 하면 모놀리스 시스템의 엉킴을 풀고 마이크로서비스 아키텍처로 무사히 마이그레이션할 수 있을까? 어떻게 하면 비즈니스를 평상시처럼 운영하면서 안정적으로 마이그레이션할 수 있을까?
이 책은 기존 모놀리스 시스템에서 마이크로서비스 아키텍처로 전환하기 위한 증명된 기법을 상세히 설명한다. 수많은 실제 사례, 통찰력 있는 23가지 마이크로서비스 마이그레이션 패턴, 모놀리스에서 출발해 마이크로서비스 플랫폼으로 전환하기 위한 현실적인 조언 등을 담았으며, 초기 계획부터 애플리케이션과 데이터베이스 분해 과정까지 시종일관 성공적인 마이크로서비스 도입과 마이그레이션을 위한 여러 시나리오와 전략을 소개한다.
이 책에서 여러분은 기존 아키텍처를 마이그레이션하기 위한, 다수의 검증된 패턴과 기법을 배울 수 있다.
| 이 책에서 다루는 내용 |
■ 재구축 대신 마이크로서비스 마이그레이션을 고려하는 조직을 위한 이상적인 해결책
■ 기업이 마이크로서비스 도입에 관한 의사결정을 내리고 마이그레이션 시점을 판단하는 과정에 대한 절차와 조언
■ 커뮤니케이션, 통합, 레거시 시스템 마이그레이션 방법
■ 다양한 마이그레이션의 패턴과 적용 대상
■ 데이터베이스 동기화 전략을 중심으로 보는 데이터베이스 마이그레이션 사례
■ 다양한 아키텍처적인 리팩터링 패턴을 비롯한 애플리케이션 분해
■ 참조 무결성과 트랜잭션 무결성을 망가뜨릴 경우에 발생하는 영향력과 새로운 실패 모드를 비롯한, 데이터베이스 분해와 관련된 세부사항
| 이 책의 구성 |
이 책에서는 기존 시스템을 마이크로서비스 아키텍처로 분해하는 과정에서 어떻게 생각하고 실행할지에 대한 내용을 철저히 분석했다. 우리는 마이크로서비스 아키텍처와 관련된 많은 주제를 살펴볼 것이지만, 초점은 서비스의 분해 측면에 있다. 마이크로서비스 아키텍처에 대한 개괄을 알고 싶다면 나의 전작 『마이크로서비스 아키텍처 구축』 책으로 시작하기 바란다. 실은, 두 책을 함께 읽기를 강력하게 권장한다.
1장 '더도 덜도 아닌 딱 마이크로서비스'에는 마이크로서비스가 무엇인지에 대한 개요를 담았으며, 마이크로서비스 아키텍처로 이끈 사상을 자세히 살펴본다. 마이크로서비스를 처음 접하는 사람들이야 꼭 챙겨 읽어야 하지만, 경험이 풍부한 사람들도 1장은 건너뛰지 말기 바란다. 기술의 혼란 속에서, 마이크로서비스의 중요한 핵심 사상이 간혹 간과되는 경우가 있다. 바로 이런 개념을 이 책에서 거듭해서 다룰 것이다.
마이크로서비스를 좀 더 제대로 이해하면 좋으나, 마이크로서비스가 여러분에게 적합한지를 파악하는 것은 전혀 다른 문제다. 2장 '마이그레이션 계획하기'에서는 마이크로서비스가 자신에게 적합한지 여부를 평가하는 방법을 알려주며, 모놀리스에서 마이크로서비스 아키텍처로 전환 과정을 관리하는 방법에 대한 매우 중요한 몇 가지 지침을 제공한다. 여기서는 도메인 주도 설계부터 조직 변경 모델에 이르기까지, 심지어 마이크로서비스 아키텍처를 채택하지 않는 경우에도 큰 도움이 되는 중요한 토대를 다룰 것이다.
3장 '모놀리스 분할'과 4장 '데이터베이스 분해'에서는 모놀리스 분해, 실제 예제 탐색, 마이그레이션 패턴 추출 등과 관련된 기술적 측면을 철저하고 상세하게 살펴본다. 3장에서는 애플리케이션 분해 측면을 집중해서 다루고, 4장에서는 데이터 문제를 매우 상세하게 설명한다. 정말로 모놀리스 시스템에서 마이크로서비스 아키텍처로 이동하기를 원하면, 데이터베이스 일부를 분리해야 할 것이다!
5장 '마이크로서비스 도입 과정에서 직면하는 문제와 해법'에서는 마이크로서비스 아키텍처가 성장함에 따라 여러분이 직면할 문제를 몇 가지 살펴본다. 마이크로서비스 시스템은 장점도 많지만, 이전에는 겪어보지 못한 많은 복잡성과 문제도 따라온다. 5장에서는 마이크로서비스와 관련된 문제가 발생할 때 문제를 발견하는데 도움이 되는 방법, 그리고 마이크로서비스와 관련해 점점 커지는 난관을 해소할 방법을 제공한다.
마지막으로, 한국어판 특별 부록 '기술의 진화로 짚어보는 마이크로서비스 도입의 허와 실'을 수록해 목표나 결과가 아닌, 여정으로서 바라보는 마이크로서비스에 관한 통찰을 담았다.
| 이 책의 독자 대상 |
■ 마이크로서비스의 전반적인 개념을 이해하고자 하는 분
■ 모놀리스에서 마이크로서비스 아키텍처로 전환 과정을 알고싶은 분
■ 모놀리스 분해, 마이그레이션 패턴 추출, 데이터베이스 분해 등과 관련된 기술적 측면이 궁금한 분
■ 마이크로서비스 도입 과정에서 직면하는 문제와 해법을 얻고자 하는 분
■ 시스템 배포 및 테스팅, 유지 보수에 관심 있는 IT 업계 종사자
■ 대용량 시스템의 효율적 분산 설계에 관심 있는 기업 CEO 및 경영진
| 이 책에서 다루는 마이크로서비스 마이그레이션 패턴 23가지 |
■ 경계 컨텍스트 단위의 저장소 패턴
■ 공유 데이터베이스 패턴
■ 교살자 무화과 애플리케이션 패턴
■ 다중 스키마 저장소 패턴
■ 데이터베이스 래핑 서비스 패턴
■ 데이터베이스 뷰 패턴
■ 데이터 소유권 변경 패턴
■ 데이터 접근 계층으로 작동하는 모놀리스 패턴
■ 변경 데이터 캡처 패턴
■ 병행 실행 패턴
■ 서비스 인터페이스로서 데이터베이스(DaaS) 인터페이스 패턴
■ 애플리케이션에서 데이터 동기화 패턴
■ 예광탄 기록 패턴
■ 외래 키를 코드로 이동 패턴
■ 전용 참조 데이터 스키마 패턴
■ 정적 참조 데이터 라이브러리 패턴
■ 정적 참조 데이터 서비스 패턴
■ 중복 정적 참조 데이터 패턴
■ 집계를 외부에 공개하는 모놀리스 패턴
■ 추상화에 의한 분기 패턴
■ 테이블 분할 패턴
■ 협업자 데코레이터 패턴
■ UI 컴포지션 패턴
Information Provided By: :

Author Introduction
샘 뉴먼(지은이)
샘 뉴먼은 독립 컨설턴트, 작가, 연사로 활동하고 있다. 20년 넘게 업계에 종사하면서 다양한 기술 스택과 영역에서 전 세계의 기업들과 함께 일해 왔다. 그는 조직이 소프트웨어를 더욱 빠르고 안전하게 운영하고 환경에 적용하도록 마이크로서비스의 복잡성을 다루는 것에 관심이 많다. 또한 『마이크로서비스 도입, 이렇게 한다』(책만, 2021)의 저자이기도 하다.
박재호(옮긴이)
포항공과대학교 컴퓨터공학과 학부와 대학원을 졸업했다. 임베디드 시스템 개발, 기업용 백업 소프트웨어 개발, 방송국 콘텐츠 수신제한 시스템 개발과 운영 지원, 클라우드에서 동작하는 서비스 개발에 이르기까지 다양한 실무 경험을 토대로 고성능 고가용성 시스템을 설계하고 있다. 코스닥 상장사인 엑셈 CTO로 인공지능과 스마트팩토리 관련 개발을 총괄했으며, 클라우드용 모니터링 시스템을 위한 아키텍처 설계도 주도했다. 『마이크로서비스 도입, 이렇게 한다』(책만, 2021), 『Clean Code 클린 코드』(인사이트, 2013), 『피플웨어』(인사이트, 2014) 번역, 『엘라스틱 스택 개발부터 운영까지』(책만, 2021) 감수 등 번역·감수하거나 집필한 책이 40여 권이 넘는다. 각종 기술 소식을 다루는 블로그 ‘컴퓨터 vs 책’(https://jhrogue.blogspot.com/)과 개발자를 위한 유튜브 ‘채널 박재호’(https://www.youtube.com/c/박재호dev)를 운영하며, 개발자들을 위한 각종 교육과 세미나도 지속적으로 진행하고 있다.

Table of Contents
[1장] 더도 덜도 아닌 딱 마이크로서비스 마이크로서비스란 무엇인가? __독립적인 배포 가능성 __비즈니스 도메인을 중심으로 하는 모델링 __데이터 소유권 문제 __마이크로서비스의 장점 __마이크로서비스가 야기하는 문제점 __사용자 인터페이스 __기술 __규모 __소유권 모놀리스 __단일 프로세스 모놀리스 __분산 모놀리스 __외부 블랙박스 시스템 __모놀리스의 문제점 __모놀리스의 장점 결합도와 응집력 __응집력 __결합도 더도 덜도 아닌 딱 도메인 주도 설계 __집계 __경계 컨텍스트 __집계와 경계 컨텍스트를 마이크로서비스에 매핑 __더 읽을거리 정리 [2장] 마이그레이션 계획하기 목표 이해하기 __3가지 핵심 질문 왜 마이크로서비스를 선택하려 하는가? __팀 자율성 향상 __시장 출시 시간 단축 __부하를 다루기 위한 비용 효율적인 확장 __견고성 향상 __개발자 수 늘리기 __신기술 수용 마이크로서비스는 어떤 경우에 나쁜 선택일까? __불분명한 도메인 __스타트업 __고객 설치형 소프트웨어와 관리형 소프트웨어 __좋은 이유를 못 찾겠다! 균형 조정 사람들과 함께 여정을 떠나다 조직 변화 구현 __위기감 조성 __혁신 추진체 구성 __비전과 전략 수립 __변화 비전 전달 __광범위한 조치를 위한 직원의 자율권 강화 __단기적인 성과 창출 __이익 통합과 더 많은 변화 추구 __혁신 문화의 정립 점진적인 마이그레이션의 중요성 __운영 환경은 중요하다 변화에 드는 비용 __가역적 결정과 비가역적 결정 __실험을 시도해볼 만한 곳 우리가 시작해야 할 지점은? 도메인 주도 설계 __작업 범위를 얼마나 넓게 잡아야 할까? __이벤트 스토밍 __우선순위 지정을 위한 도메인 모델 사용 결합된 모델 팀 재구성하기 __변화하는 구조 __만병통치약은 없다 __변화 일으키기 __전문 기술 변경하기 전환이 순조로운지 어떻게 확인할까? __정기 점검 사항 __정량적인 측정 __정성적인 측정 __매몰 비용 오류 방지 __새로운 방식에 마음을 열자 정리 [3장] 모놀리스 분할 모놀리스를 그대로 둘 것인가, 바꿀 것인가? __잘라 내기, 복사 또는 재구현? __모놀리스 리팩터링 마이그레이션 패턴 패턴: 교살자 무화과 애플리케이션 __작동 원리 __적용 대상 __사례: HTTP 리버스 프록시 __데이터? __프록시 옵션 __프로토콜 변경 __사례: FTP __사례: 메시지 가로채기 __그 밖의 프로토콜 __교살자 무화과 패턴의 다른 예 기능을 마이그레이션하는 동안 동작 방식 변경하기 패턴: UI 컴포지션 __사례: 페이지 컴포지션 __사례: 위젯 컴포지션 __사례: 마이크로 프론트엔드 __적용 대상 패턴: 추상화에 의한 분기 __작동 원리 __대체 메커니즘을 위한 분기 검증 __적용 대상 패턴: 병행 실행 __사례: 신용파생 가격 비교 __사례: 홈게이트 목록 __검증 기법 __스파이 사용 __깃허브 사이언티스트 __어둠의 출시와 카나리아 릴리스 __적용 대상 패턴: 협업자 데코레이터 __사례: 멤버십 프로그램 __적용 대상 패턴: 변경 데이터 캡처 __사례: 멤버십 카드 발급 __변경 데이터 캡처 구현 __적용 대상 정리 [4장] 데이터베이스 분해 패턴: 공유 데이터베이스 __패턴 다루기 __적용 대상 그러나 수행할 수 없다! 패턴: 데이터베이스 뷰 __공개된 계약으로서 데이터베이스 __표현할 뷰 __한계 __소유권 __적용 대상 패턴: 데이터베이스 래핑 서비스 __적용 대상 패턴: 서비스로서 데이터베이스(DaaS) 인터페이스 __매핑 엔진 구현 __뷰와의 비교 __적용 대상 소유권 양도 __패턴: 집계를 외부에 공개하는 모놀리스 __패턴: 데이터 소유권 변경 데이터 동기화 패턴: 애플리케이션에서 데이터 동기화 __1단계: 데이터 대량 동기화 __2단계: 이전 스키마에서 읽고 쓰기를 동기화 __3단계: 새 스키마에서 읽고 쓰기를 동기화 __이 패턴을 사용하는 사례 __적용 대상 패턴: 예광탄 기록 __데이터 동기화 __사례: 스퀘어의 주문 처리 __적용 대상 데이터베이스 분리 __물리적 데이터베이스 분리 vs 논리적 데이터베이스 분리 데이터베이스를 먼저 분할할까, 아니면 코드를 먼저 분할할까? __데이터베이스를 먼저 분할 __코드를 먼저 분할 __데이터베이스와 코드를 함께 분할 __그렇다면 무엇을 먼저 분할해야 할까? 스키마 분리 사례 패턴: 테이블 분할 __적용 대상 패턴: 외래 키 관계를 코드로 이동 __조인 이동 __데이터 일관성 __적용 대상 __사례: 공유 정적 데이터 트랜잭션 __ACID 트랜잭션 __여전히 ACID이지만 원자성이 부족한가? __2단계 커밋 __분산 트랜잭션? 그냥 아니라고 말하자 사가 패턴 __사가 실패 모드 __사가 패턴 구현 __사가와 분산 트랜잭션의 비교 정리 [5장] 마이크로서비스 도입 과정에서 직면하는 문제와 해법 서비스가 늘어날수록 고충도 커지게 마련 규모에 맞는 소유권 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 기존 호환성을 깨뜨리는 파괴적 변경 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 리포팅 __문제가 드러나는 시점 __잠재적인 해법 모니터링과 트러블슈팅 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 로컬에서 개발하는 동안 겪는 개발자 경험 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 너무 많은 것들을 실행 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 전 구간 테스트 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 전역 최적화와 지역 최적화 비교 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 견고성과 회복탄력성 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 외톨이 서비스 __문제가 드러나는 방식 __문제가 드러나는 시점 __잠재적인 해법 정리 마치면서 부록 A 참고문헌 부록 B 패턴 목록 부록 C 한국어판 특별 부록: 기술의 진화로 짚어보는 마이크로서비스 도입의 허와 실