일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 뭐든
- Problem Solving
- 프로젝트
- 개발자
- 미드시청
- 운동
- FIT XR
- 파비최
- 사이드
- 영어공부
- 3줄정리
- 괜찮음
- 스탭퍼
- Writing
- 리얼 클래스
- 월간
- 쓰릴오브파이트
- 링피트
- 잡생각
- Daily Challenge
- 화상영어
- 만화도
- leetcode
- 30분
- English
- 매일
- 10분
- 영어원서읽기
- 읽기
- realclass
- Today
- Total
파비의 매일매일 공부기록
파이썬으로 살펴보는 아키텍처 패턴 - 시작하며 본문
파이썬에 대해 더 잘 알아봐야 하기에(업무와 관련이 있으니)
책을 찾아보다가 설계와 관련된 내용이 있어서 이 책을 고르게 됐다.
단순한 로직을 변경하거나 표현 부분을 손보는 게 아닌 이상에는
결국 어떻게 설계하느냐에 따른 문제들일 수 있기에
코드를 하다 보면 어떤 게 맞는 방법인지에 대해 항상 고민하게 된다.
딱 들어맞는 정답은 당연히 없겠지만
그래도 어쨌든 선배(나보다 더 많이 겪어본 사람)들이 거쳐왔던 길에 대한 조언은
언제나 도움이 되지 않을까 싶다.
그래서 그렇게 책들을 많이 보는 것도 있을 거고.
책 초반에 작성된 역자의 말을 보면
파이썬을 사용해 실질적인 예지를 통해 DDD를 설명한다고 한다.
너무 이론이라 실무에 치우치지 않고 너무 복잡하거나 간단한 예제를 사용하지도 않는다고 한다.
더 좋은 프로그래머로 성장하는데 좋은 밑거름이 될 것이라 자신한다고 하니 열심히 읽어봐야겠다.
저자의 경우 소프트웨어 아키텍트가 팀에 없어서 본인이 되어야 했다고 한다. 그 역할을 수행하며 자신이 상당히 서툴다는 걸 알게 되었다고 한다.
파이썬을 사용한 이유 : 현재 세계에서 가장 빠르게 성장하는 프로그래밍 언어이기 때문.
파이썬의 선(Zen of Python) : 어떤 일을 수행할 때는 명확한 방법 한 가지가 있어야 한다. 그 방법이 유일하면 더 좋다.
But, 프로젝트가 커지면 어떤 일을 하는 가장 분명한 방법이 항상 변화하는 요구 사항과 복잡성을 해결하는 데 도움이 되지 않을 수 있음.
복잡성을 다루기 위한 도구들. 악명 높은 순으로 TDD, DDD, EDA라고 한다.
TDD가 악명이 높다니.. 저자의 의견을 정리해보면 다음과 같다.
TDD : 올바른 코드를 만들 때는 도움이 됨. 코드의 퇴행에 대한 걱정하지 않고 리팩터링 하거나 새로운 기능을 추가할 수 있는 장점이 있다. 그러나 테스트의 이점을 최대한 살리는 건 어려울 수 있다. 어떻게 해야 가능한 한 빠른 테스트를 실행하고 커버리지와 피드백을 최대로 얻되 빠르고 의존성 없는 단위 테스트를 사용하면서 느리고 덜컹대는 엔드 투 엔드 테스트를 최소화할 수 있을지 고민해야 한다.
DDD : 비즈니스 모델에 대한 좋은 모델을 구축하는 데 초점을 맞춰 노력을 기울이라고 요구. 하지만 모델이 인프라와 관련된 관심사로 지장을 받지 않게 하고 모델들 변경하기 쉽게 하려는 고민이 있어야 함.
EDA(이벤트 기반 아키텍처) : 메시지를 통해 통합된 느슨하게 연결된 마이크로 서비스(반응형 마이크로 서비스라고도 부름)는 여러 앱이나 비즈니스 도메인에 걸친 복잡성을 관리하는 해법으로 잘 알려짐. 그러나 파이썬 세계의 잘 알려진 도구(플라스크, 장고, 셀러리 등)와 맞물리는 방법인지는 분명하지 않음.
다른 용어들은 거의 익숙한데 반해 CQRS는 어떤 걸 의미하는 용어인지 궁금하다.
책의 거의 마지막 장에 등장하는데 잘 익혀둬서 활용할 수 있으면 좋겠다.
'Study > Python' 카테고리의 다른 글
파이썬으로 살펴보는 아키텍처 패턴 - 1장 (0) | 2021.09.29 |
---|---|
파이썬으로 살펴보는 아키텍처 패턴 - 0장 (2) | 2021.09.28 |
getattr 함수를 활용하기 (0) | 2021.09.02 |
파이썬 동시성 프로그래밍 - #12 솔루션 선택하기 (0) | 2021.08.19 |
파이썬 동시성 프로그래밍 - #11 GPU 사용하기 (0) | 2021.08.18 |