본문 바로가기

리디 접속이 원활하지 않습니다.
강제 새로 고침(Ctrl + F5)이나 브라우저 캐시 삭제를 진행해주세요.
계속해서 문제가 발생한다면 리디 접속 테스트를 통해 원인을 파악하고 대응 방법을 안내드리겠습니다.
테스트 페이지로 이동하기

이벤트 소싱과 마이크로서비스 아키텍처 상세페이지

이벤트 소싱과 마이크로서비스 아키텍처

성공적인 이벤트 기반 시스템 구축하기

  • 관심 0
소장
종이책 정가
35,000원
전자책 정가
20%↓
28,000원
판매가
28,000원
출간 정보
  • 2024.09.30 전자책 출간
  • 2024.07.30 종이책 출간
듣기 기능
TTS(듣기) 지원
파일 정보
  • PDF
  • 474 쪽
  • 10.4MB
지원 환경
  • PC뷰어
  • PAPER
ISBN
9791161758732
ECN
-
이벤트 소싱과 마이크로서비스 아키텍처

작품 정보

◈ 이 책에서 다루는 내용 ◈

◆ 도메인 주도 설계의 빌딩 블록과 객체지향 설계 원칙(SOLID)을 사례로 설명
◆ 이벤트 소싱을 사용할 때 만나는 대표적인 문제와 해결 방법 소개
◆ 마이크로서비스 아키텍처에서 서비스간 RESTful API와 이벤트를 사용한 협력 설명
◆ 결과적 일관성을 구현하는 상세한 방법과 이벤트 소싱
◆ 결과적 일관성의 비동기 프로세스와 사용자 인터페이스 구현 방법 설명
◆ 명령과 조회 책임 분리(CQRS)에 대한 다양한 사례 연구 소개
◆ 쿠버네티스/이스티오를 활용한 서비스 배포와 모니터링


◈ 이 책의 대상 독자 ◈

◆ 도메인 주도 설계나 객체지향 설계 원칙을 처음 접하는 개발자
◆ 이벤트 소싱을 체계적으로 학습하고 실무에 적용하고 싶은 개발자
◆ 결과적 일관성을 구현하는 구체적인 방법을 알고 싶은 개발자
◆ 마이크로서비스 아키텍처에서 주요 주제에 대해 정리하고 싶은 개발자


◈ 이 책의 구성 ◈

이 책은 총 9장으로 구성돼 있습니다. 도메인 주도 설계, 객체지향 설계 원칙에서 시작해 이벤트 소싱, CQRS와 함께 마이크로서비스 간 협력 방법 그리고 보상 트랜잭션(Compensating Transaction) 또는 사가SAGA로 알려진 결과적 일관성을 다룹니다. 후반부에는 마이크로서비스 아키텍처에서 사용자 인터페이스와 관련된 이슈와 배포 및 운영을 위한 도커(Docker)와 쿠버네티스(Kubernetes)처럼 클라우드 환경에서 많이 사용하는 기술을 다룹니다.
‘1장, 도메인 주도 설계'에서는 도메인 주도 설계의 기본 요소인 엔티티, 값 객체, 애그리게이트, 서비스, 리포지토리, 팩토리를 소개합니다. 특히 마이크로서비스 아키텍처는 도메인 주도 설계에서 말하는 애그리게이트와 잘 어울리는 접근법입니다. 이 여섯 개 구성 요소를 정확하게 이해하는 것만으로도 단일 마이크로서비스의 내부 아키텍처를 설계할 수 있습니다.
‘2장, 객체지향 설계 원칙’에서는 1장에서 설명한 도메인 주도 설계의 빌딩 블록과 함께 객체지향 설계 원칙인 SOLID를 살펴봅니다. SOLID는 오래된 원칙이지만 여전히 중요하며 효과가 있습니다.
‘3장, 이벤트 소싱 I’에서는 그렉 영이 공개한 『CQRS Documents』에서 제시한 아이디어를 기반으로 이벤트 소싱 메커니즘에 대해 설명하고 구현합니다. 이 메커니즘은 이어지는 장에서 설명하는 이벤트 소싱의 주요 특징과 이슈를 해결하기 위해 지속적으로 개선합니다.
‘4장, 이벤트 소싱 II’에서는 이벤트 소싱을 적용했을 때 발생할 수 있는 대표적인 문제를 살펴봅니다. 긴 라이프사이클을 가지는 애그리게이트는 많은 이벤트가 발생합니다. 이벤트들을 리플레이할 때 사용 가능한 메모리의 한계와 성능 저하를 방지하는 방법을 알아봅니다. 또한 시스템을 유지보수할 때 요구사항을 수용하면서 이벤트의 변화(버전 변화)를 처리하는 방법도 소개합니다. 애그리게이트는 독립적인 존재이지만 같은 애그리게이트가 동시에 다른 명령을 처리하면서 같은 속성을 변경할 때 부수적으로 발생할 수 있는 문제와 해결 방법을 알아봅니다.
‘5장, 마이크로서비스 협업’에서는 헥사고날 아키텍처(Hexagonal Architecture)에서 서비스 간 협력 방법인 인바운드와 아웃바운드 어댑터를 설명하고 대표적인 구현 기술인 RESTful API와 이벤트를 살펴봅니다. 인바운드 어댑터는 외부의 요청을 받아 비즈니스 로직을 처리하고 아웃바운드 어댑터는 비즈니스 로직 수행 전반에 걸쳐 다른 서비스와의 협력에 사용합니다.
‘6장, 결과적 일관성 마이크로서비스 아키텍처’에서 논란의 중심이 되는 결과적 일관성(분산 트랜잭션, 보상 트랜잭션, 사가)과 이를 해결하는 원리를 설명합니다. 에릭 에반스(Eric Evans)가 도메인 주도 설계에서 소개한 계좌 이체를 사가로 구현해 봅니다.
‘7장, 명령과 조회 책임 분리(CQRS)’에서는 3장과 4장에서 설명한 이벤트 리플레이의 단점을 보완하기 위해 조회 전용 데이터를 미리 생성하는 CQRS를 다루고 대표적인 활용 사례를 소개합니다. CQRS는 트랜잭션 요구사항에 따라 마이크로서비스 간뿐만 아니라 단일 마이크로서비스에도 적용할 수 있습니다.
‘8장, 사용자 인터페이스’에서는 마이크로서비스 아키텍처에서 백엔드 분리만큼 프론트엔드의 분리도 중요합니다. 이 장에서는 백엔드처럼 사용자 인터페이스를 분리하는 마이크로 프론트엔드와 마이크로서비스의 독립성을 높이기 위한 배포 방법을 소개합니다. 프론트엔드가 백엔드로 요청 후 응답을 받았지만 비즈니스 트랜잭션은 아직 진행 중일 수 있습니다. 이는 백엔드 간 결과적 일관성을 달성하기 위해 이벤트를 활용하고 비동기로 동작하기 때문입니다. 결국 프론트엔드 요청과 응답간 단절이 발생하는데 이를 해결하는 대표적인 패턴들을 설명하고 스벨트로 구현해 봅니다.
‘9장, 클라우드 환경’에서는 클라우드 운영에 필요한 주요 기술을 설명하고 앞서 개발한 서비스를 배포해 봅니다.
독립적인 마이크로서비스를 운영하면서 블루-그린/카나리 배포를 지원하는 최적의 오픈소스 솔루션인 도커와 쿠버네티스의 기본 구성 요소를 소개합니다. 마이크로서비스 개발 시 클라우드 관련 기술 요소를 코드베이스와 분리해 비즈니스에 더욱 집중할 수 있게 하는 서비스 메시인 이스티오 및 배포한 애플리케이션의 매트릭을 모니터링해 시계열 데이터로 수집하는 프로메테우스(Prometheus), 프로메테우스로 수집한 매트릭을 시각화하는 그라파나(Grafana), 키알리(Kiali)를 설치하고 설정해 봅니다.

작가 소개

◈ 지은이의 말 ◈

3년 전, 첫 페이지를 시작하고 본격적으로 작업한지 어느덧 2년이 지났습니다. “10년이면 강산도 바뀐다.”라고 말하긴 하지만, 트렌드가 자주 바뀌는 IT 업계에서는 1년도 꽤 긴 시간입니다. 어느덧 3년이 지났지만 이 책에서 다루는 핵심 주제가 기술 트렌드가 아니기 때문에 저술을 마치는 지금까지 큰 변화는 없다는 것이 다행일 따름입니다.
먼저 도메인 주도 설계와 객체지향 설계 원칙(SOLID)을 소개한 이유를 언급해야 할 것 같습니다. 기술 자체에 심취했던 시절을 지나 모델링에 관심을 가지면서 객체지향 설계 원칙을 제대로 이해하고 적용하는 데 4년 정도의 시간이 걸렸고, 심지어 도메인 주도 설계는 아직도 이해하는 중입니다. 두 챕터로 시작하는 이유는 필요하기도 하지만 몇 가지 사례와 함께 본질을 이해하면 어렵지 않은 것을 저자처럼 오랜 시간 홀로 고군분투할 또는 고군분투 중인 개발자에게 조금이라도 도움이 되길 바라는 마음 때문입니다.
이벤트 소싱이 소개되고 많은 시간이 흘렀지만 DDD Europe(https://2023.dddeuripe.com)에서 10개의 세션이 있을 정도로 활발하게 논의하고 있고 세션의 주제를 살펴보면 이벤트 소싱 자체보다는 경험을 통해 한 걸음 더 나아간 주제가 많습니다.
적어도 저자가 알기로 국내에는 이벤트 소싱을 사용한 프로젝트가 없습니다. 최근 프로젝트에서 고객 정보에 이벤트 소싱을 사용했는데 이해가 부족하다 보니 예상보다 많은 오류가 발생한 것을 보면 패러다임의 변화가 쉽지 않음을 한번 더 확인할 수 있었습니다.
2000년대 후반 아이폰이 국내에 출시될 당시만 해도 스마트폰에 대한 평가는 부정적이었습니다. 당시 부정적인 평가의 주요 이유는 “통화와 문자만으로 충분하다.”였습니다. 하지만 스마트폰 사용자가 피처폰의 용도 확장을 경험하면서 수요는 폭발적으로 증가했습니다. 같은 맥락에서 고객이 이벤트 소싱의 용도 확장을 경험하면 폭발적이지는 않더라도 지속적으로 요구가 증가할 것으로 기대합니다.


◈ 지은이 소개 ◈

손경덕
웹 스크래핑 기반 서비스 회사에서 개발자로 시작한 후 보험 관련 SI 회사를 거쳐 현재는 넥스트리에서 근무하고 있습니다. 2018년 아키텍처 컨설팅을 시작으로 모든 시스템을 마이크로서비스 아키텍처로 구축하면서 다양한 상황에서 해결책을 찾고 있습니다. 최근에는 멀티-테넌트 아키텍처에서 역할 및 권한 관리와 마이크로 프론트엔드의 효율적인 구현/배포 방법을 고민하고 있습니다.

리뷰

구매자 별점

0.0

점수비율
  • 5
  • 4
  • 3
  • 2
  • 1

0명이 평가함

리뷰 작성 영역

이 책을 평가해주세요!

내가 남긴 별점 0.0

별로예요

그저 그래요

보통이에요

좋아요

최고예요

별점 취소

구매자 표시 기준은 무엇인가요?

'구매자' 표시는 리디에서 유료도서 결제 후 다운로드 하시거나 리디셀렉트 도서를 다운로드하신 경우에만 표시됩니다.

무료 도서 (프로모션 등으로 무료로 전환된 도서 포함)
'구매자'로 표시되지 않습니다.
시리즈 도서 내 무료 도서
'구매자’로 표시되지 않습니다. 하지만 같은 시리즈의 유료 도서를 결제한 뒤 리뷰를 수정하거나 재등록하면 '구매자'로 표시됩니다.
영구 삭제
도서를 영구 삭제해도 ‘구매자’ 표시는 남아있습니다.
결제 취소
‘구매자’ 표시가 자동으로 사라집니다.

개발/프로그래밍 베스트더보기

  • 밑바닥부터 시작하는 딥러닝 (사이토 고키)
  • LLM을 활용한 실전 AI 애플리케이션 개발 (허정준, 정진호)
  • 한 권으로 배우는 게임 프로그래밍 (박태준, 박효재)
  • 최고의 프롬프트 엔지니어링 강의 (김진중)
  • AI 트루스 (임백준)
  • 이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접 (강민철)
  • 컴퓨터 밑바닥의 비밀 (루 샤오펑)
  • AI 시대의 프로그래머 (톰 타울리)
  • AI를 위한 필수 수학 (할라 넬슨)
  • 혼자 공부하는 머신러닝+딥러닝 (박해선)
  • 코드 밖 커뮤니케이션 (재퀴 리드)
  • Cursor AI로 시작하는 웹 개발 (돕자)
  • 개정판 | 쿠버네티스 창시자에게 배우는 모범 사례 (브렌던 번스, 에디 비얄바)
  • 도메인 주도 설계 첫걸음 (블라드 코노노프)
  • 시각 장애인의 코딩 학습 기록 (정승균)
  • 혼자 공부하는 네트워크 (강민철)
  • 그림으로 이해하는 네트워크 구조와 기술 (나카오 신지)
  • DIFFUSION MODEL (빈쿠이, 양링)
  • 개정판 | 객체지향 파이썬 프로그래밍 (스티븐 로트(Steven F.)
  • 개정판 | 기본기가 탄탄한 자바 개발자 (벤저민 J. 에번스, 제이슨 클라크)

본문 끝 최상단으로 돌아가기

spinner
앱으로 연결해서 다운로드하시겠습니까?
닫기 버튼
대여한 작품은 다운로드 시점부터 대여가 시작됩니다.
앱으로 연결해서 보시겠습니까?
닫기 버튼
앱이 설치되어 있지 않으면 앱 다운로드로 자동 연결됩니다.
모바일 버전