본문 바로가기

추천 검색어

실시간 인기 검색어

파이썬으로 살펴보는 아키텍처 패턴: TDD, DDD, EDM 적용하기

해리 퍼시벌 , 밥 그레고리 저자(글) · 오현석 번역
한빛미디어 · 2021년 06월 03일
9.7
10점 중 9.7점
(12개의 리뷰)
집중돼요 (43%의 구매자)
  • 파이썬으로 살펴보는 아키텍처 패턴: TDD, DDD, EDM 적용하기 대표 이미지
    파이썬으로 살펴보는 아키텍처 패턴: TDD, DDD, EDM 적용하기 대표 이미지
  • A4
    사이즈 비교
    210x297
    파이썬으로 살펴보는 아키텍처 패턴: TDD, DDD, EDM 적용하기 사이즈 비교 181x235
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 28,800 32,000
적립/혜택
1,600P

기본적립

5% 적립 1,600P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,600P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
4/9(수) 출고예정
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

아키텍처 패턴의 기초부터 활용까지 다루는 실전 가이드
파이썬을 활용한 프로젝트의 규모가 커지면서 육각형/클린 아키텍처, 이벤트 기반 아키텍처, 도메인 주도 설계 등 고수준 디자인 패턴에 대한 관심이 높아지고 있다. 이 책은 검증된 예제와 아키텍처 디자인 패턴을 소개하며 애플리케이션의 복잡성, 의존성을 낮추고, 테스트 스위트에서 최선의 가치를 얻는 방법을 알려준다. 또한 자바나 C#보다 간단하고 우아한 파이썬 코드의 장점을 잘 살려 각 패턴을 설명한다.

작가정보

저자(글) 해리 퍼시벌

해리 퍼시벌(Harry Percival)
현재 메이드닷컴(MADE.com)에서 근무 중이다. PythonAnywhere LLP에서 근무한 경험이 있다. 워크숍이나 컨퍼런스 등에서 TDD의 유용성을 전 세계에 전파하고 있다. 캠브리지 대학교에서 철학 학사 학위를 취득하고 리버풀 대학교에서 컴퓨터 과학 석사 학위를 취득했다.

저자(글) 밥 그레고리

밥 그레고리(Bob Gregory)
메이드닷컴에서 근무 중인 소프트웨어 아키텍트. 10년 넘게 도메인 주도 설계로 이벤트 주도 시스템을 구축하고 있다.

번역 오현석

오현석

비사이드소프트(Bsidesoft) 이사로 일하면서 매일 고객의 요청에 따라 코드를 만들고 있는 현업 개발자다. 어릴 때 처음 컴퓨터를 접하고 매혹된 후 경기과학고등학교를 졸업하고, 카이스트 전산학 과(프로그래밍 언어 전공 석사)를 거치면서 계속 컴퓨터를 사용해왔다. 직장에서는 주로 코틀린이나 자바를 사용한 서버 프로그래밍을 하고, 주말이나 여가 시간에는 번역을 하거나 공부를 하면서 즐거움을 찾고 있다. 시간이 아주 많이 남을 때는 시뮬레이션 게임을 하면서 머리를 식히고, 어떻게 하면 막둥이를 프로그래밍의 세계로 끌어들일 수 있을지 고민 중인 아빠이기도 하다.

목차

  • CHAPTER 0 도입
    0.1 설계가 왜 잘못되는가?
    0.2 캡슐화와 추상화
    0.3 계층화
    0.4 의존성 역전 원칙
    0.5 모든 비즈니스 로직을 위한 장소: 도메인 모델

    [PART I 도메인 모델링을 지원하는 아키텍처 구축]

    CHAPTER 1 도메인 모델링
    1.1 도메인 모델이란?
    1.2 도메인 언어 탐구
    1.3 도메인 모델 단위 테스트
    1.4 모든 것을 객체로 만들 필요는 없다: 도메인 서비스 함수

    CHAPTER 2 저장소 패턴
    2.1 도메인 모델 영속화
    2.2 의사코드: 무엇이 필요할까?
    2.3 데이터 접근에 DIP 적용하기
    2.4 기억 되살리기: 우리가 사용하는 모델
    2.5 저장소 패턴 소개
    2.6 테스트에 사용하는 가짜 저장소를 쉽게 만드는 방법
    2.7 파이썬에서 포트는 무엇이고, 어댑터란 무엇인가
    2.8 마치며

    CHAPTER 3 막간: 결합과 추상화
    3.1 추상적인 상태는 테스트를 더 쉽게 해준다
    3.2 올바른 추상화 선택
    3.3 선택한 추상화 구현
    3.4 마치며

    CHAPTER 4 첫 번째 유스 케이스: 플라스크 API와 서비스 계층
    4.1 애플리케이션을 실세계와 연결하기
    4.2 첫 번째 엔드투엔드 테스트
    4.3 직접 구현하기
    4.4 데이터베이스 검사가 필요한 오류 조건
    4.5 서비스 계층 소개와 서비스 계층 테스트용 FakeRepository 사용
    4.6 모든 것을 왜 서비스라고 부르는가?
    4.7 모든 요소를 폴더에 넣고 각 부분이 어떤 위치에 있는지 살펴보기
    4.8 마치며

    CHAPTER 5 높은 기어비와 낮은 기어비의 TDD
    5.1 테스트 피라미드는 어떻게 생겼는가?
    5.2 도메인 계층 테스트를 서비스 계층으로 옮겨야 하는가?
    5.3 어떤 종류의 테스트를 작성할지 결정하는 방법
    5.4 높은 기어비와 낮은 기어비
    5.5 서비스 계층 테스트를 도메인으로부터 완전히 분리하기
    5.6 E2E 테스트에 도달할 때까지 계속 개선하기
    5.7 마치며

    CHAPTER 6 작업 단위 패턴
    6.1 작업 단위는 저장소와 협력
    6.2 테스트-통합 테스트로 UoW 조정하기
    6.3 작업 단위와 작업 단위의 콘텍스트 관리자
    6.4 UoW를 서비스 계층에 사용하기
    6.5 커밋/롤백 동작에 대한 명시적인 테스트
    6.6 명시적 커밋과 암시적 커밋
    6.7 예제: UoW를 사용해 여러 연산을 원자적 단위로 묶기
    6.8 통합 테스트 깔끔하게 정리하기
    6.9 마치며

    CHAPTER 7 애그리게이트와 일관성 경계
    7.1 모든 것을 스프레드시트에서 처리하지 않는 이유
    7.2 불변조건, 제약, 일관성
    7.3 애그리게이트란?
    7.4 애그리게이트 선택
    7.5 한 애그리게이트 = 한 저장소
    7.6 성능은 어떨까?
    7.7 버전 번호와 낙관적 동시성
    7.8 데이터 무결성 규칙 테스트
    7.9 마치며
    7.10 1부 돌아보기

    [PART II 이벤트 기반 아키텍처]

    CHAPTER 8 이벤트와 메시지 버스
    8.1 지저분해지지 않게 막기
    8.2 단일 책임 원칙
    8.3 메시지 버스에 전부 다 싣자
    8.4 첫 번째 선택지: 서비스 계층이 모델에서 이벤트를 가져와 메시지 버스에 싣는다
    8.5 두 번째 선택지: 서비스 계층은 자신만의 이벤트를 발생한다
    8.6 세 번째 선택지: UoW가 메시지 버스에 이벤트를 발행한다
    8.7 마치며

    CHAPTER 9 메시지 버스를 타고 시내로 나가기
    9.1 새로운 아키텍처가 필요한 새로운 요구 사항
    9.2 서비스 함수를 메시지 핸들러로 리팩터링하기
    9.3 새로운 요구 사항 구현하기
    9.4 새 핸들러 시범운영하기
    9.5 선택: 가짜 메시지 버스와 독립적으로 이벤트 핸들러 단위 테스트하기
    9.6 마치며

    CHAPTER 10 커맨드와 커맨드 핸들러
    10.1 커맨드와 이벤트
    10.2 예외 처리 방식의 차이점
    10.3 논의: 이벤트, 커맨드, 오류 처리
    10.4 동기적으로 오류 복구하기
    10.5 마치며

    CHAPTER 11 이벤트 기반 아키텍처: 이벤트를 사용한 마이크로서비스 통합
    11.1 분산된 진흙 공, 명사로 생각하기
    11.2 분산 시스템에서 오류 처리하기
    11.3 대안: 비동기 메시징을 사용한 시간적 결합
    11.4 레디스 발행/구독 채널을 통합에 사용하기
    11.5 엔드투엔드 테스트를 사용해 모든 기능 시범운영하기
    11.6 내부 이벤트와 외부 이벤트 비교
    11.7 마치며

    CHAPTER 12 명령-질의 책임 분리(CQRS)
    12.1 쓰기 위해 존재하는 도메인 모델
    12.2 가구를 구매하지 않은 사용자
    12.3 Post/리디렉션/Get과 CQS
    12.4 점심을 잠깐 미뤄라
    12.5 CQRS 뷰 테스트하기
    12.6 ‘명확한’ 대안 1: 기존 저장소 사용하기
    12.7 읽기 연산에 최적화되지 않은 도메인 모델
    12.8 ‘명확한’ 대안 2: ORM 사용하기
    12.9 SELECT N+1과 다른 고려 사항
    12.10 이제는 상어를 완전히 뛰어 넘을 때이다
    12.11 읽기 모델 구현을 변경하기 쉽다
    12.12 마치며

    CHAPTER 13 의존성 주입(그리고 부트스트래핑)
    13.1 암시적 의존성과 명시적 의존성
    13.2 명시적 의존성은 완전히 이상하고 자바스러운가?
    13.3 핸들러 준비: 클로저와 부분함수를 사용한 수동 DI
    13.4 클래스를 사용한 대안
    13.5 부트스트랩 스크립트
    13.6 실행 도중 핸들러가 제공된 메시지 버스
    13.7 진입점에서 부트스트랩 사용하기
    13.8 테스트에서 DI 초기화하기
    13.9 어댑터 ‘적절히’ 구축하기: 실제 사례
    13.10 마치며

    CHAPTER 14 맺음말
    14.1 왜 지금인가?
    14.2 여기서 거기까지 어떻게 갈 수 있을까?
    14.3 뒤엉킨 책임 분리
    14.4 애그리게이트와 제한된 콘텍스트 식별하기
    14.5 스트랭글러 패턴을 통해 마이크로서비스로 전환하는 이벤트 기반 접근 방법
    14.6 새로운 일을 시작하도록 이해관계자 설득하기
    14.7 기술 리뷰어들의 질문
    14.8 풋건
    14.9 추가 자료
    14.10 마치며

    [PART III 부록]

    APPENDIX A 정리 다이어그램과 표

    APPENDIX B 프로젝트 구조 틀
    B.1 환경 변수, 12팩터, 설정, 컨테이너 내부와 외부
    B.2 config.py
    B.3 docker-compose와 컨테이너 설정
    B.4 소스를 패키지로 설치하기
    B.5 Dockerfile
    B.6 테스트
    B.7 마치며

    APPENDIX C 인프라 교체: CSV로 모든 데이터 처리하기
    C.1 CSV를 사용한 저장소와 작업 단위 구현하기

    APPENDIX D 장고에서 작업 단위와 저장소 패턴 사용하기
    D.1 장고를 사용한 저장소 패턴
    D.2 장고 작업 단위 패턴
    D.3 API: 장고 뷰는 어댑터다
    D.4 이 모든 게 왜 그렇게 어려웠는가?
    D.5 이미 장고 앱을 사용 중이라면
    D.6 장고와 함께 진행할 수 있는 단계들

    APPENDIX E 검증
    E.1 검증이란 무엇인가?
    E.2 문법 검증
    E.3 포스텔의 법칙과 톨러런트 리더 패턴
    E.4 가장자리에서 검증하기
    E.5 의미 검증하기
    E.6 검증 화용론

추천사

출판사 서평

고수준 아키텍처 패턴을 적절한 위치에서 활용하는 능력을 키워보자

이 책은 파이썬을 활용한 실전 예제를 통해 도메인 주도 개발을 설명한다. 설명하는 과정에서 이론이나 실무에 지나치게 치우치지 않고 너무 복잡하거나 너무 간단한 예제를 사용하지도 않는다. 즉, 아주 적절한 수준의 설명과 예제로 도메인 주도 개발의 핵심 요소를 이해하기 쉽도록 도메인 모델과 소프트웨어 웨어를 설계하는 과정을 알려준다. 문제를 식별하고 해결책을 논의하며 저자가 권하는 패턴의 숨은 의도를 설명하는 방식으로 가이드한다. 복잡성을 처리해야 하는 팀에게 충분히 가치 있고 반드시 읽어야 하는, 세상에 오직 하나뿐인 도메인 주도 개발 책이다. 엔터프라이즈 시스템이 점차 복잡해짐에 따라 고객의 요구 사항에 맞춰 도메인 모델을 도출하고 구현하는 문제에 어려움을 겪는 개발자에게 이 책은 완벽한 길잡이가 되어줄 것이다.

주요 내용
● 의존성 역전, 포트와 어댑터 패턴(육각형/클린 아키텍처)과 의존성 주입의 연결 관계
● 도메인 주도 설계에서 엔티티, 값 객체, 애그리게이트를 구별하는 법
● 영속적 저장소 처리를 위한 저장소와 작업 단위 패턴
● 이벤트, 커맨드, 메시지 버스
● 명령-질의 책임 분리(CQRS)

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 원서(번역서)명/저자명을(를) 나타낸 표입니다.
ISBN 9791162244319
발행(출시)일자 2021년 06월 03일
쪽수 356쪽
크기
181 * 235 * 17 mm / 629 g
총권수 1권
원서(번역서)명/저자명 Architecture Patterns with Python/Percival, Harry

Klover 리뷰 (12)

구매 후 리뷰 작성 시, e교환권 200원 적립

10점 중 10점
/집중돼요
해리: 좋은 주제의 책을 써주었다.
오현석: 훌륭한 개발자이면서, 더 훌륭한 역자이다.
왕성한 활동중이다.
한빛: 내용은 300쪽 안되는데, 가격은 3만원이 넘는다.
학생들에게 부담이 되고,
결국 책을 사지 않는 습관으로 귀결 될것이다.
10점 중 10점
/집중돼요
날로 짜는 재미가 있는 파이썬은 구조화 하는 법을 알려준다. 물론 난 날로 짜는것을 좋아한다
10점 중 10점
/도움돼요
좋은책을 빠르게 배송해주셔서 감사합니다.
10점 중 10점
/추천해요
그냥 중고급자면 한번은 볼만한듯. 근데 이미 아는것도 꽤 돼서 큰 의미는 ..

문장수집 (1)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

그들은 도메인 모델을 보지 못했을것이다.
단지 데이터 모델만을 보았을것이다.
파이썬으로 살펴보는 아키텍처 패턴: TDD, DDD, EDM 적용하기

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

용선생 추론독해 초등 국어 3단계
이벤트
  • [sam] 카카오톡 선물하기 1+1
  • JLPT 우측 윙배너
01 / 02
TOP