Top

도메인 주도 설계 핵심 [핵심을 간추린 비즈니스 중심의 설계로 소프트웨어 개발 프로젝트 성공하기]

  • 원서명Domain-Driven Design Distilled (ISBN 9780134434421)
  • 지은이반 버논(Vaughn Vernon)
  • 옮긴이박현철, 전장호
  • ISBN : 9791161750576
  • 25,000원
  • 2017년 09월 25일 펴냄
  • 페이퍼백 | 208쪽 | 152*224mm
  • 시리즈 : 소프트웨어 아키텍처

책 소개

요약

도메인 주도 설계(DDD)를 프로젝트에 적용하고자 하는 개발자, 소프트웨어 아키텍트 또는 관리자가 DDD를 빠르게 배우고 적용할 수 있게 도와준다. 뿐만 아니라 좋은 소프트웨어를 만들기 위해 꼭 필요한 역할인 비즈니스 전문가와 플랫폼 기획자도 DDD를 이해하고 적극적으로 설계에 참여할 수 있게 해준다.
도메인 모델을 분리하고 명확한 경계 내에서 비즈니스 전문가와 개발자가 함께 공통적으로 사용할 수 있는 보편 언어를 개발하는 방법, 레거시 시스템을 다루기 위해 서브 도메인을 활용하는 방법과 여러 개의 분리된 컨텍스트의 통합을 위한 기술적 메커니즘까지 반드시 알아야 할 것들을 빠짐없이 다루고 있다.
다른 두꺼운 DDD 서적들이 바이블이라면, 이 책은 얇지만 꼭 필요한 핵심 개념과 함께 프로젝트 적용을 이해하기 쉬운 예제 흐름으로 설명한다. 따라서 DDD를 처음 접하는 사람부터 도메인 주도 설계 개념을 혼란스럽게 생각하는 사람들에게까지 도움이 되는 길잡이가 돼줄 것이다.

이 책의 대상 독자

DDD 핵심과 도구를 배우는 것에 관심을 갖고 이를 빠르게 학습하고자 하는 사람들을 위한 책이다. 대부분의 독자들은 프로젝트 실행 방안에 DDD를 포함시키려는 소프트웨어 아키텍트나 소프트웨어 개발자일 것이다. 소프트웨어 개발자들은 때때로 DDD의 아름다움을 빨리 발견하고 DDD의 강력함에 매료된다. 하지만 그들뿐만 아니라 임원, 도메인 전문가, 관리자, 비즈니스 분석가, 인포메이션 아키텍트 그리고 테스터 모두가 이해할 수 있는 주제를 다뤘으므로 정보기술(IT) 산업이나 연구 개발(R&D) 환경에 상관없이 누구나 이 책을 읽고 도움을 받을 수 있다

이 책에서 다루는 내용

■ DDD가 개인 및 조직을 위해 할 수 있는 일과 중요성
■ DDD 전략적 설계의 기초: 바운디드 컨텍스트와 보편 언어
■ 서브도메인을 활용한 전략적 설계
■ 팀이 함께 일하고 좀 더 전략적으로 소프트웨어를 통합하도록 돕는 컨텍스트 매핑
■ 애그리게잇과 도메인이벤트를 통한 전술적 설계
■ 팀의 리듬을 만들고 관리하기 위한 프로젝트 가속화와 관리 도구 사용

이 책의 구성

1장, ‘나에게 도메인 주도 설계는’에서는 도메인 주도 설계가 여러분들과 여러분들의 조직을 위해 할 수 있는 것에 대해 설명하고, 앞으로 배울 것과 그것이 왜 중요한지에 대해 좀 더 상세한 개요를 제공한다.
2장, ’바운디드 컨텍스트 및 보편언어와 전략적 설계’에서는 DDD 의 전략적 설계를 소개하면서 DDD 토대가 되는 바운디드 컨텍스트와 보편언어를 설명한다.
3장, ’서브도메인과 전략적 디자인’에서는 서브도메인을 설명하고, 새로운 애플리케이션을 모델링하는 동안 기존 레거시 시스템과의 통합에 따르는 복잡성을 다루는 데 서브도메인을 사용하는 방법을 제공한다.
4장, ’컨텍스트 매핑과 전략적 설계’에서는 팀이 전략적으로 함께 일하는 방법과 그들의 소프트웨어를 통합할 수 있는 다양한 방법을 설명한다. 이를 컨텍스트 매핑이라고 한다.
5장, ’애그리게잇과 전술적 설계’에서는 애그리게잇을 통한 전술적 모델링으로 관심을 돌린다. 애그리게잇과 함께 사용되는 중요하고 강력한 전술적 모델링 도구는 6장, ‘도메인 이벤트와 전술적 설계’의 주제인 도메인 이벤트다.
7장, ’가속화와 관리 도구’는 팀이 그들의 리듬을 만들고 유지하는 데 도움을 주는 프로젝트 가속화와 프로젝트 관리 도구를 조명한다. 이 두 가지 주제는 좀처럼 다른 DDD 자료에서는 보기 힘든 것들이고, DDD를 실천 방안에 포함하는 결정을 하려는 이들에게 꼭 필요한 내용이다.

상세이미지

저자/역자 소개

지은이의 말

여러분들이 DDD 사용을 권장했던 고객과 함께 일하고 있는 컨설턴트라면, 주요 이해관계자를 신속하게 이해시킬 수단으로 이 책을 사용하기 바란다. 프로젝트에서 DDD와 친숙하지 않은 주니어, 중급 또는 시니어 개발자와 함께 작업하면서 DDD를 조만간 사용해야 한다면, 이 책을 읽도록 권유하기 바란다. 이 책을 읽어보면 모든 프로젝트 이해관계자와 개발자들은 최소한 그들이 사용할 용어와 기본적인 DDD 도구를 이해할 수 있을 것이다. 프로젝트를 진행하다 보면 DDD에 대한 공통된 이해가 점차 가치를 발휘할 것이다.
경력과 역할에 관계없이 이 책을 읽고 프로젝트에 DDD를 적용해본 후, 책을 다시 읽으면서 경험으로부터 배울 수 있는 것과 향후 개선할 수 있는 것에는 어떤 것들이 있을지 확인해보기 바란다.

지은이 소개

반 버논(Vaughn Vernon)

베테랑 소프트웨어 장인이자 소프트웨어 설계와 구현을 단순하게 만드는 분야의 선구자다. 『도메인 주도 설계 구현』(에이콘, 2016)과 『Reactive Messaging Patterns with Actor Model』(Addison-Wesley, 2015)의 저자고, 전 세계 수백 명의 소프트웨어 개발자들에게 IDDD Workshop을 가르쳤다. 업계 컨퍼런스에 자주 등장하는 연사로 분산 컴퓨팅, 메시징, 특히 액터 모델에 관심이 많고, 도메인 주도 설계와 스칼라(Scala), 아카(Akka)와 함께 액터 모델을 사용하는 DDD 컨설팅 전문가다. 그의 최근 작업들은 블로그(www.VaughnVernon.co)를 방문하거나 트위터 계정(@VaughnVernon)을 팔로잉하면 확인할 수 있다.

옮긴이의 말

세상에는 다양한 가치가 있다. 가라앉은 해적선 속의 숨겨진 보물처럼 신비함을 간직한 유형의 가치도 있겠지만, 사람들의 경험 속에 녹아 있는 지식과 통찰처럼, 보이지는 않아도 인간의 삶을 개선하고 좀 더 바람직한 미래를 만드는 데 필요한 가치도 있다. 언제부터인가 ‘세상은 나에게 어떤 의미이고, 나는 세상에 어떤 의미일까?’를 생각하기 시작 했고, 이 세상에 자그마한 가치라도 남기고 싶었다. 그 이후 다른 사람들과 아는 지식을 공유한다는 것은 나에게 매우 중요한 일이 되었고, 글을 쓰고 강의를 하고 번역을 하는 일은 자그마한 가치를 세상에 내놓는 소중한 과정이자 삶의 일부가 됐다. 한 권의 번역서를 내면서 다시 한 번 삶을 살아온 보람을 느껴본다.
자바(Java)를 포함한 다양한 언어들을 사용한 경험이 쌓일수록, 모델링이라는 행위를 통해 프로그래밍 언어가 가진 힘을 최대한 이끌어낼 수 있을 뿐만 아니라 시장, 고객, 환경에 최적화된 결과를 만들어낼 수 있다는 것을 다양한 프로젝트를 통해 배웠다. 에릭 에반스의 『도메인 주도 설계』를 처음 읽었을 때, 그동안 저자가 고민해온 여러 주제들을 일관성 있는 맥락으로 풀어낸 것이 보였지만, 너무 많은 개념들이 혼재돼 있어 읽는 사람들이 충분히 이해하기는 어렵겠다는 생각을 한 적이 있다. 이번에 출간하게 된 『도메인 주도 설계 핵심』은 기존의 내용에서 많은 부분을 덜어내 핸드북처럼 작고 간결하게 만들었다. 마치 대기업이 주도하는 큰 규모의 프로젝트를 린 스타트업 관점에서 핵심만 간추린 것처럼 보인다. 우리나라처럼 ‘빨리빨리’ 문화가 내재된 사회일수록 좀 더 간결하고 정제된 지식과 가이드가 필요하다. 특히 많은 기업들은 프로젝트라는 형태로 투자를 하고, IT 기술을 활용한 혁신적인 또는 개선된 서비스 및 플랫폼을 구축하고 있다. 이런 상황에서 작은 조직들 간의 협업을 통해 의사소통 비용을 줄이면서도 빠른 피드백을 통해 품질을 개선하는 일은 반드시 필요한 일이며, 경쟁력이 된다. 이 책은 비즈니스 모델링을 개발 조직과 밀착시키면서, 애자일 사상까지 책 안의 모델에 포함시켰다.
점차 세상의 많은 것들이 소스코드 안에 담겨 활용되고 있다. 로봇과 드론을 통해 세상을 활보하고, 가상 현실을 통해 상상의 세계에 한발 더 다가서고 있으며, 빅데이터 및 인공지능 기반 서비스로 예측을 포함해 좀 더 개선된 삶의 질을 만들어내고 있다. 모델링은 다양한 세상과 조직, 그리고 IT를 포용하면서 가장 효과적인 소스코드를 만들기 위해 필요한 과정이다. 소스코드와 조금이라도 관련 있는 직업을 가진 사람이라면, 이 책을 통해 모델링에 대해 한 번쯤 돌이켜보면서 자신의 가치를 좀 더 개선하는 계기를 만들어갈 수 있지 않을까 희망해본다.

박현철•전장호

옮긴이 소개

박현철

한때는 춤을 사랑했지만, 지금은 좋은 소프트웨어를 만들기 위해 글을 쓰는 것을 즐긴다. 다양한 분야에 걸쳐 많은 프로젝트를 경험했으며, 프로그래머로 시작해서 설계자, 프로젝트 관리자, 아키텍트, 멘토까지 다양한 역할을 수행하고 있다. 건국대학교 정보통신대학원 겸임 교수로 재직 중이며, IT 분야에서 보람과 행복을 찾기 위해 많은 사람들과 함께 노력하고 있다.
CSM(Certified Scrum Master), CSPO(Certified Scrum Product Owner), CSD(Certified Scrum Developer)이며, 저서로는 『객체지향 분석 설계 Visual C++ 프로그래밍』(비앤씨, 1999), 『프로그래머 그들만의 이야기』(영진닷컴, 2003), 『실전CBD Project』(영진닷컴, 2004), 『UML 이해와 활용』(한빛미디어, 2004)이 있고, 번역서로는 『EXtreme Programming Installed: XP도입을 위한 실전 입문』(인사이트, 2002), 『엔터프라이즈 애자일 프로젝트 관리』(에이콘, 2010), 『Agile Project Management with Scrum 한국어판』(에이콘, 2012), 『UML을 활용한 객체지향 분석 설계』(에이콘 2013), 『스크럼으로 소프트웨어 제품 관리하기』(에이콘, 2013), 『애자일 소프트웨어 개발』(에이콘, 2016)이 있다.

전장호

소프트웨어 개발자와 설계자로 시작해 프로젝트 매니저, 스크럼 마스터, 강사 등 IT 분야에서 16년 가까이 다양한 역할을 통해 여러 프로젝트를 경험했다. 현재는 기술 기반 광고(AD Tech) 비즈니스/플랫폼 전략 및 설계 분야에서 활동하고 있다. 애자일 등 개발/프로젝트 방법론에 관심이 많아 프로젝트를 진행하면서 다양한 실험을 적용해보는 것을 좋아하며, 항상 어떻게 하면 좀 더 효율적이고 즐겁게 일할 수 있을지 고민한다. 비즈니스의 복잡한 문제들을 기술적으로 해결하기 위해 연구와 실행에 빠져 있는 것을 좋아하는데, 이런 시간을 외에는 요리를 하거나 여행하는 것을 좋아하고 사랑하는 아내 남영과 시간을 보내는 것을 즐긴다.

목차

목차
  • 1장. 나에게 도메인 주도 설계는
    • DDD가 우리에게 상처를 줄까?
    • 좋은 나쁜 그리고 효과적인 설계
    • 전략적 설계
    • 전술적 설계
    • 학습 과정과 지식의 정제
    • 이제 시작해보자!

  • 2장. 바운디드 컨텍스트 및 보편언어와 전략적 설계
    • 도메인 전문가와 비즈니스 동인
    • 사례 연구
    • 기본적인 전략적 설계를 하려면
    • 도전과 통합
    • 보편언어 개발하기
      • 작업에 시나리오 넣기
      • 많은 시간과 노력이 드는 일은?
    • 아키텍처
    • 요약

  • 3장. 서브도메인과 전략적 디자인
    • 서브도메인은 무엇인가?
    • 서브도메인의 유형
    • 복잡성 다루기
    • 요약

  • 4장. 컨텍스트 매핑과 전략적 설계
    • 매핑의 종류
      • 파트너십
      • 공유 커널
      • 고객-공급자
      • 준수자
      • 반부패 계층
      • 공개 호스트 서비스
      • 공표된 언어
      • 각자의 길
      • 큰 진흙 덩어리
    • 컨텍스트 매핑 활용하기
      • SOAP을 이용한 RPC
      • 레스트풀 HTTP
      • 메시징
    • 컨텍스트 매핑 사례
    • 요약

  • 5장. 애그리게잇과 전술적 설계
    • 왜 필요할까
    • 애그리게잇 경험 법칙
      • 규칙 1: 애그리게잇 경계 내의 비즈니스 불변사항을 보호하라
      • 규칙 2: 작은 애그리게잇을 설계하라
      • 규칙 3: 오직 식별자로만 다른 애그리게잇을 참고하라
      • 규칙 4: 결과적 일관성을 사용해 다른 애그리게잇을 갱신하라
    • 애그리게잇 모델링
      • 추상화를 조심스럽게 선택하라
      • 올바른 크기의 애그리게잇
      • 테스트 가능한 단위
    • 요약

  • 6장. 도메인 이벤트와 전술적 설계
    • 도메인 이벤트를 설계, 구현, 사용하기
    • 이벤트 소싱
    • 요약

  • 7장. 가속화와 관리 도구
    • 이벤트 스토밍
      • 다른 도구들
    • 애자일 프로젝트에서의 DDD 관리
  • 중요한 일부터 먼저
    • SWOT 분석 사용
    • 모델링 스파이크와 모델링 부채
    • 작업 확인 및 노력 추정
  • 기간이 정해진 모델링
    • 어떻게 구현해야 하는가?
    • 도메인 전문가와 상호 작용하기

도서 오류 신고

도서 오류 신고

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

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

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

정오표

정오표

[p.21 : 오탈자]
http://www.acornpub.co.kr/bookdomain-driven-design-distilled
->
http://www.acornpub.co.kr/book/domain-driven-design-distilled

[p.129 : 5행]
여기서 Product는 문자 그대로 BacklogItem 인스턴스들 그리고 Sprint의 가능한 가장 큰 모음을 담고 있다.
->
여기서 Product는 문자 그대로 BacklogItem 인스턴스들, Release 인스턴트들, 그리고 Sprint 인스턴스들의 가능한 가장 큰 모음을 담고 있다.

[p. 160 : 7행]
다른 노드들에 도달할 것을 보장하는 것은 아니다.
->
다른 노드들에 동일한 순서로 도달할 것을 보장하는 것은 아니다.

[p. 161 : 아래에서 7행]
명령은 공급과 자원(제품, 자금 등)의 가용성에 대한
->
명령은 자원(제품, 자금 등)의 공급과 가용성에 대한