파비의 매일매일 공부기록

파이썬으로 살펴보는 아키텍처 패턴 - 시작하며 본문

Study/Python

파이썬으로 살펴보는 아키텍처 패턴 - 시작하며

fabichoi 2021. 9. 27. 23:40

파이썬에 대해 더 잘 알아봐야 하기에(업무와 관련이 있으니)
책을 찾아보다가 설계와 관련된 내용이 있어서 이 책을 고르게 됐다.

단순한 로직을 변경하거나 표현 부분을 손보는 게 아닌 이상에는
결국 어떻게 설계하느냐에 따른 문제들일 수 있기에
코드를 하다 보면 어떤 게 맞는 방법인지에 대해 항상 고민하게 된다.

딱 들어맞는 정답은 당연히 없겠지만
그래도 어쨌든 선배(나보다 더 많이 겪어본 사람)들이 거쳐왔던 길에 대한 조언은
언제나 도움이 되지 않을까 싶다.
그래서 그렇게 책들을 많이 보는 것도 있을 거고.

책 초반에 작성된 역자의 말을 보면
파이썬을 사용해 실질적인 예지를 통해 DDD를 설명한다고 한다.
너무 이론이라 실무에 치우치지 않고 너무 복잡하거나 간단한 예제를 사용하지도 않는다고 한다.
더 좋은 프로그래머로 성장하는데 좋은 밑거름이 될 것이라 자신한다고 하니 열심히 읽어봐야겠다.

저자의 경우 소프트웨어 아키텍트가 팀에 없어서 본인이 되어야 했다고 한다. 그 역할을 수행하며 자신이 상당히 서툴다는 걸 알게 되었다고 한다.

파이썬을 사용한 이유 : 현재 세계에서 가장 빠르게 성장하는 프로그래밍 언어이기 때문.
파이썬의 선(Zen of Python) : 어떤 일을 수행할 때는 명확한 방법 한 가지가 있어야 한다. 그 방법이 유일하면 더 좋다.
But, 프로젝트가 커지면 어떤 일을 하는 가장 분명한 방법이 항상 변화하는 요구 사항과 복잡성을 해결하는 데 도움이 되지 않을 수 있음.

복잡성을 다루기 위한 도구들. 악명 높은 순으로 TDD, DDD, EDA라고 한다. 
TDD가 악명이 높다니.. 저자의 의견을 정리해보면 다음과 같다.
TDD : 올바른 코드를 만들 때는 도움이 됨. 코드의 퇴행에 대한 걱정하지 않고 리팩터링 하거나 새로운 기능을 추가할 수 있는 장점이 있다. 그러나 테스트의 이점을 최대한 살리는 건 어려울 수 있다. 어떻게 해야 가능한 한 빠른 테스트를 실행하고 커버리지와 피드백을 최대로 얻되 빠르고 의존성 없는 단위 테스트를 사용하면서 느리고 덜컹대는 엔드 투 엔드 테스트를 최소화할 수 있을지 고민해야 한다.
DDD : 비즈니스 모델에 대한 좋은 모델을 구축하는 데 초점을 맞춰 노력을 기울이라고 요구. 하지만 모델이 인프라와 관련된 관심사로 지장을 받지 않게 하고 모델들 변경하기 쉽게 하려는 고민이 있어야 함.
EDA(이벤트 기반 아키텍처) : 메시지를 통해 통합된 느슨하게 연결된 마이크로 서비스(반응형 마이크로 서비스라고도 부름)는 여러 앱이나 비즈니스 도메인에 걸친 복잡성을 관리하는 해법으로 잘 알려짐. 그러나 파이썬 세계의 잘 알려진 도구(플라스크, 장고, 셀러리 등)와 맞물리는 방법인지는 분명하지 않음.

다른 용어들은 거의 익숙한데 반해 CQRS는 어떤 걸 의미하는 용어인지 궁금하다.
책의 거의 마지막 장에 등장하는데 잘 익혀둬서 활용할 수 있으면 좋겠다.

반응형
Comments