확장메뉴
주요메뉴


닫기
사이즈 비교
소득공제
파이썬으로 살펴보는 아키텍처 패턴

파이썬으로 살펴보는 아키텍처 패턴

: TDD, DDD, EDM 적용하기

리뷰 총점8.5 리뷰 14건 | 판매지수 1,260
베스트
IT 모바일 top100 7주
정가
32,000
판매가
28,800 (10% 할인)
배송안내
서울특별시 영등포구 은행로 11(여의도동, 일신빌딩)
지역변경
  • 배송비 : 무료 ?
분철서비스 시작 시 알려드립니다. 분철서비스 알림신청
  •  국내배송만 가능
  •  최저가 보상
  •  문화비소득공제 신청가능

품목정보

품목정보
발행일 2021년 06월 03일
쪽수, 무게, 크기 356쪽 | 183*235*30mm
ISBN13 9791162244319
ISBN10 1162244313

책소개 책소개 보이기/감추기

저자 소개 (3명)

저자 소개 관련자료 보이기/감추기

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 검증 화용론

출판사 리뷰 출판사 리뷰 보이기/감추기

추천평 추천평 보이기/감추기

파이썬 커뮤니티가 이 책을 손꼽아 기다렸다. 파이썬에 모던 애플리케이션 아키텍처를 적용하면 어떤 형태가 되는지를 잘 보여주며, 의존성 역전 원칙을 유연하고 동적인 언어에 우아하게 적용하는 방법을 알려준다.
- 브랜던 로즈(Brandon Rhodes) (python-patterns.guide 운영자)
지금까지 파이썬만으로 유지보수하기 좋은 대규모 시스템을 작성하는 방법을 알려주는 책은 없었다. 이 책은 복잡한 소프트웨어 개발에도 파이썬이 더할 나위 없이 적합하다는 사실을 잘 보여준다.
- 히네크 슐라바크(Hynek Schlawack) (파이써니스타 및 연설가)

회원리뷰 (11건) 회원리뷰 이동

한줄평 (3건) 한줄평 이동

총 평점 6.0점 6.0 / 10.0

배송/반품/교환 안내

배송 안내
반품/교환 안내에 대한 내용입니다.
배송 구분 예스24 배송
  •  배송비 : 무료배송
포장 안내

안전하고 정확한 포장을 위해 CCTV를 설치하여 운영하고 있습니다.

고객님께 배송되는 모든 상품을 CCTV로 녹화하고 있으며, 철저한 모니터링을 통해 작업 과정에 문제가 없도록 최선을 다 하겠습니다.

목적 : 안전한 포장 관리
촬영범위 : 박스 포장 작업

  • 포장안내1
  • 포장안내2
  • 포장안내3
  • 포장안내4
반품/교환 안내

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

반품/교환 안내에 대한 내용입니다.
반품/교환 방법
  •  고객만족센터(1544-3800), 중고샵(1566-4295)
  •  판매자 배송 상품은 판매자와 반품/교환이 협의된 상품에 한해 가능합니다.
반품/교환 가능기간
  •  출고 완료 후 10일 이내의 주문 상품
  •  디지털 콘텐츠인 eBook의 경우 구매 후 7일 이내의 상품
  •  중고상품의 경우 출고 완료일로부터 6일 이내의 상품 (구매확정 전 상태)
반품/교환 비용
  •  고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담임
  •  직수입양서/직수입일서중 일부는 변심 또는 착오로 취소시 해외주문취소수수료 20%를 부과할수 있음

    단, 아래의 주문/취소 조건인 경우, 취소 수수료 면제

    •  오늘 00시 ~ 06시 30분 주문을 오늘 오전 06시 30분 이전에 취소
    •  오늘 06시 30분 이후 주문을 익일 오전 06시 30분 이전에 취소
  •  직수입 음반/영상물/기프트 중 일부는 변심 또는 착오로 취소 시 해외주문취소수수료 30%를 부과할 수 있음

    단, 당일 00시~13시 사이의 주문은 취소 수수료 면제

  •  박스 포장은 택배 배송이 가능한 규격과 무게를 준수하며, 고객의 단순변심 및 착오구매일 경우 상품의 반송비용은 박스 당 부과됩니다.
반품/교환 불가사유
  •  소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
  •  소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우 : 예) 화장품, 식품, 가전제품, 전자책 단말기 등
  •  복제가 가능한 상품 등의 포장을 훼손한 경우 : 예) CD/LP, DVD/Blu-ray, 소프트웨어, 만화책, 잡지, 영상 화보집
  •  소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
  •  디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  •  eBook 대여 상품은 대여 기간이 종료 되거나, 2회 이상 대여 했을 경우 취소 불가
  •  중고상품이 구매확정(자동 구매확정은 출고완료일로부터 7일)된 경우
  •  LP상품의 재생 불량 원인이 기기의 사양 및 문제인 경우 (All-in-One 일체형 일부 보급형 오디오 모델 사용 등)
  •  시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  •  전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
소비자 피해보상
  •  상품의 불량에 의한 반품, 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결기준(공정거래위원회 고시)에 준하여 처리됨
환불 지연에
따른 배상
  •  대금 환불 및 환불 지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리
  •  쿠폰은 결제 시 적용해 주세요.
1   28,800
뒤로 앞으로 맨위로 공유하기