확장메뉴
주요메뉴


소득공제
미리보기 공유하기

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

: TDD, DDD, EDM 적용하기

리뷰 총점9.1 리뷰 10건 | 판매지수 4,602
베스트
IT 모바일 top100 7주
정가
32,000
판매가
28,800 (10% 할인)
YES포인트
배송안내
서울특별시 영등포구 은행로
지역변경
  • 배송비 : 무료 ?
  •  국내배송만 가능
  •  최저가 보상
  •  분철옵션 선택 시, 영업일 기준 3일내 출고됩니다.
  •  분철상품은 해외배송이 불가합니다.
  •  문화비소득공제 신청가능
[대학생X취준생] 지치지 않는 자, 점수를 잡는다! - 리유저블텀블러/한국문학 담요/슬라이드 파일 증정
오라일리 2022 스티커 캘린더북 이벤트
월간 개발자 2022년 2월호
월간 개발자 2022년 1월호
YES24 트윈링 분철 : 인서트라벨/스티커 택1 증정
1월 전사
현대카드
1 2 3 4 5

품목정보

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

이 상품의 태그

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

아키텍처 패턴의 기초부터 활용까지 다루는 실전 가이드

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

저자 소개 (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 검증 화용론

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

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

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

주요 내용

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

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

파이썬 커뮤니티가 이 책을 손꼽아 기다렸다. 파이썬에 모던 애플리케이션 아키텍처를 적용하면 어떤 형태가 되는지를 잘 보여주며, 의존성 역전 원칙을 유연하고 동적인 언어에 우아하게 적용하는 방법을 알려준다.
- 브랜던 로즈(Brandon Rhodes) (python-patterns.guide 운영자)

지금까지 파이썬만으로 유지보수하기 좋은 대규모 시스템을 작성하는 방법을 알려주는 책은 없었다. 이 책은 복잡한 소프트웨어 개발에도 파이썬이 더할 나위 없이 적합하다는 사실을 잘 보여준다.
- 히네크 슐라바크(Hynek Schlawack) (파이써니스타 및 연설가)

회원리뷰 (10건) 리뷰 총점9.1

혜택 및 유의사항?
파이썬으로 살펴보는 아키텍처 패턴 내용 평점5점   편집/디자인 평점5점 아*한 | 2021.06.21 | 추천0 | 댓글0 리뷰제목
#파이썬 #한빛미디어 #아키텍처   프로그래밍 기본서를 본 후 어느 정도 익숙해지면 중급으로 가는 길은 무엇인가 고민을 하게 된다. 종종 어떤 언어의 중급서를 추천해달라는 말도 듣는다.   중급으로 가려면 특정 언어에 종속된다기 보다는 언어에 구애받지 않고 프로그래밍 설계 역량을 키워야 하지 않을까 싶다.   이런점에서 입문용 언어의 이미지가 강하지만;
리뷰제목

#파이썬 #한빛미디어 #아키텍처

 

프로그래밍 기본서를 본 후 어느 정도 익숙해지면 중급으로 가는 길은 무엇인가 고민을 하게 된다. 종종 어떤 언어의 중급서를 추천해달라는 말도 듣는다.

 

중급으로 가려면 특정 언어에 종속된다기 보다는 언어에 구애받지 않고 프로그래밍 설계 역량을 키워야 하지 않을까 싶다.

 

이런점에서 입문용 언어의 이미지가 강하지만 사실 강력한 언어인 파이썬으로 살펴보는 아키텍처 패턴 책이 나왔다.

 

파이썬을 몰라도 아키텍처 패턴에 관하여 배운다고 생각하면서 읽을 수도 있다. 파이썬은 몰라도 코드를 보면 대충 느낌을 알 수도 있다. 그래도... 당연하지만 파이썬을 알고 읽는 것이 베스트이다.

 

 

아키텍처를 논하기 때문에 이런 그림들이 종종 등장하여 이해를 돕는다. 구조를 이해하기엔 그림이 최고인 것 같다.

 

 

당연히 코드도 있다. 파이썬이지만 본인의 언어로 변경해는 작업을 하면서 익히는 것도 엄청 도움이 될 것 같다. 아키텍처 패턴 학습에 관심이 있다면 추천한다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

댓글 0 이 리뷰가 도움이 되었나요? 공감 0
파이썬 Flask 기반의 아키텍처링은 이렇게! 내용 평점4점   편집/디자인 평점4점 가*뫼 | 2021.06.20 | 추천0 | 댓글0 리뷰제목
한국에서의 Back-end 개발은 타국가와 다르게 Spring 프레임워크에 굉장히 의존적인 것이 특이사항이라고 볼 수 있다. 전자정부프레임워크를 위시한 Java Spring 기반의 엔지니어가 2000년대 초반부터 많았기 때문에 유지보수도 용이하고 성능 측면에서도 나쁘지 않은 Spring 프레임워크가 대세가 될 수 밖에 없었다고 생각한다. 당연히 그에 대한 영향으로 각종 기술서적 역시 Java와 Sp;
리뷰제목

한국에서의 Back-end 개발은 타국가와 다르게 Spring 프레임워크에 굉장히 의존적인 것이 특이사항이라고 볼 수 있다. 전자정부프레임워크를 위시한 Java Spring 기반의 엔지니어가 2000년대 초반부터 많았기 때문에 유지보수도 용이하고 성능 측면에서도 나쁘지 않은 Spring 프레임워크가 대세가 될 수 밖에 없었다고 생각한다. 당연히 그에 대한 영향으로 각종 기술서적 역시 Java와 Spring 기반으로 한 책들이 많을 수 밖에 없었다. 위 책의 아키텍처나 TDD, DDD와 같은 책도 현재 한국에서 출간된 서적 중 많은 비율은 Java와 Spring을 대상으로 설명하고 있다.

그러나 2021년 기준, 스타트업처럼 빠르게 프로덕트를 만들어야하거나 규모가 있는 회사에서도 린하게 움직이기 위해 Spring이 아닌 Python, Node JS 등 다른 생태계의 언어와 프레임워크를 도입하기 시작했다. 이런 흐름에 따라 입문 수준의 Python Flask, Django 도서는 그동안 꽤 출간이 됐었지만, 아키텍처 레벨에서 어떻게 시스템을 디자인하고 테스팅을 할 지에 대한 책은 거의 없거나 많지 않았다.

본 도서는 Python의 Flask를 기반으로 스텝별로 Hands-on 실습을 통해서 어떻게 아키텍처를 개선하고 어떤 점을 신경써야하는 지 잘 기술되어 있는 서적이다. Spring Framework 의 빈출 질문인 Select N+1 이슈나 ORM 관련 엔지니어가 신경써야할 부분 등 Python 기반의 백엔드 개발을 한다면 여러 가지 시행 착오를 겪지않고 대비할 수 있게 책 구성이 되어있는 점이 장점이라고 생각한다.

다만, 도서의 기대 독자가 입문자보다는 어느 정도 Back-end 개발 경험이 있는 엔지니어이므로 여러 가지 기본적인 내용은 생략하고 있으므로 시스템 디자인을 일정 수준 이상 구성해본 엔지니어가 도서를 봤을 때 더욱 가려운 부분을 잘 긁어줄 수 있을 것이라고 보인다. 책의 두께 대비 난이도가 꽤 있기 때문에 여러 번 읽어서 체화하는 것을 추천한다!

댓글 0 이 리뷰가 도움이 되었나요? 공감 0
포토리뷰 파이썬으로 살펴보는 아키텍처 패턴 내용 평점5점   편집/디자인 평점5점 스타블로거 : 블루스타 로*티 | 2021.06.20 | 추천1 | 댓글0 리뷰제목
아키텍처 패턴을 아시나요? 이 패턴은 문제점을 해결하기 위한 재사용 가능한 솔루션을 말합니다. 소프트웨어의 전체적인 그림을 만드는 솔루션이라 할 수 있습니다. 아키텍처 패턴은 디자인패턴보다 더 넓은 범주를 갖고 있습니다. 예시로 컴퓨터 하드웨어 성능 제한, 비즈니스 위험 최소화를 생각해 볼 수 있습니다. 개발자들은 비즈니스 프로세스를 개선하거나 자동화하기 위해 일;
리뷰제목

아키텍처 패턴을 아시나요?
이 패턴은 문제점을 해결하기 위한 재사용 가능한 솔루션을 말합니다.

소프트웨어의 전체적인 그림을 만드는 솔루션이라 할 수 있습니다.

아키텍처 패턴은 디자인패턴보다 더 넓은 범주를 갖고 있습니다.

예시로 컴퓨터 하드웨어 성능 제한, 비즈니스 위험 최소화를 생각해 볼 수 있습니다.

개발자들은 비즈니스 프로세스를 개선하거나 자동화하기 위해 일합니다.

도메인 주도 개발 설계하는 과정을 알려주는 책이 나왔습니다.

책 제목은 ‘파이썬으로 살펴보는 아키텍처 패턴'입니다.

파이썬을 활용한 실전 예제를 통해 도메인 주도 개발을 이해할 수 있습니다.

도메인은 프로세스가 지원하는 활동을 말합니다.

파이썬으로 아키텍처 패턴을 활용하는 방법을 배우는 시간이 되시길 바랍니다.


 

◆ 도메인 모델링 아키텍처
도메인 모델링 아키텍처는 4가지 핵심패턴이 있는데요.
저장소 패턴, 서비스 계층 패턴, 작업단위 패턴, 애그리게이트 패턴이 있습니다.

저장소 패턴은 영속적인 저장소에 대한 추상화를 다룹니다.

서비스 계층 패턴은 유스 케이스의 시작과 끝을 명확하게 정의하기 위한 패턴입니다.

작업단위 패턴은 원자적 연산을 제공합니다.

마지막으로애그리게이트 패턴은 데이터 정합성을 강화하기 위한 패턴입니다.

4가지 핵심패턴이 어떻게 동작하는지 처음엔 알기 어려울 수 있습니다.

하지만 차례대로 학습하고 반복하시면 도메인 모델링에 대해 이해하게 될 것입니다.



◆ 저장소 패턴
저장소 패턴은 데이터 저장소를 더 간단히 추상화 한 것으로 이 패턴을 사용하면 모델 계층과 데이터 계층을 분리할 수 있습니다.

계층을 분리하면 3가지로 분리 할 수 있는데요.
표현 계층(UI), 비즈니스 로직, 데이터베이스 계층으로 나눌 수 있습니다.

장고를 배우게 되면 배우는 패턴으로 MVC 패턴이 이 계층을 의미합니다.

하지만 도메인 모델에서는 어떤 의존성도 없기를 바람을 알고 있어야 합니다.

저장소 패턴은 영속적 저장소에 대한 단순한 추상화로 만드는 겁니다.

데이터를 접근할 때 최소한의 필요한 것만 남기고 나머지 관련 사항을 감출 수 있어야 합니다.


 

끝으로 파이썬은 아키텍처 패턴의 기초부터 활용하는 법을 알려줍니다.

이 책은 비즈니스 관련 대화로부터 모델을 구축하는 방법을 배울 수 있습니다.

도메인 주도 설계를 배워야 할 내용이 많습니다.

도메인 주도 설계 관련 추천할만 한 책 2권을 말씀드리겠습니다.

첫 번째는 더 깊게 파고 싶은 분들에게는 위키북스 ‘도메인 주도 설계’ 책 입니다.

두 번째는 에이콘 출판사의 ‘도메인 주도 설계 핵심' 빨간책을 추천합니다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

댓글 0 1명이 이 리뷰를 추천합니다. 공감 1
스프링분철 서비스를 선택하세요.
수량감소 수량증가 28,800
  •  다운받은 받은 쿠폰은 결제 페이지에서 적용해 주세요.
  •  분철옵션 선택 시, 영업일 기준 3일내 출고됩니다.
  •  분철상품은 해외배송이 불가합니다.
1   28,800

스프링분철 신청 가능

뒤로 앞으로 맨위로 aniAlarm