파비의 매일매일 공부기록

파이썬으로 살펴보는 아키텍처 패턴 - 3장 #1 본문

Study/Python

파이썬으로 살펴보는 아키텍처 패턴 - 3장 #1

fabichoi 2021. 10. 5. 23:30

3장은 결합과 추상화에 대한 내용이다.
저장소 패턴은 영구 저장소에 대한 추상화다. 좋은 추상화를 만드는 요소 및 추상화로부터 얻으려는 게 무엇인지, 그리고 테스트와 추상화는 어떤 연관이 있는지 알아본다.

저자가 말하고자 하는 핵심 주제는 '멋진 패턴 사이에 감춰져 있지만 지저분한 세부 사항을 감추기 위해 간단한 추상화를 사용할 수 있다.'이다.

만약 실무에서 B 컴포넌트가 깨지는 게 두려워 A 컴포넌트를 변경할 수 없는 경우를 '결합'이라고 함.
지역적인 결합은 좋음. 각 컴포넌트가 서로 지원하며 맞물려 돌아가는 경우 결합된 요소들 사이에 '응집'이 있다고 한다.
그러나 전역적인 결합은 성가신 존재. 코드를 변경하는데 드는 비용 증가함. 결국에는 코드를 변경할 수 없는 지경에 이를 수 있음. 
추상화를 통해 세부 사항을 감추면 시스템 내 결합 정도를 줄일 수 있음.

3.1 추상적인 상태는 테스트를 더 쉽게 해 준다.
- 두 파일 디렉터리를 동기화시키는 경우를 예로 들어 코드를 작성한다.
- 그러나 이렇게 작성된 코드는(저자가 제시한) 테스트가 충분치 않을뿐더러 확장성도 좋지 않다.
- 또한 고수준 코드가 저수준 세부 사항과 결합되어 있어서 코드 수정이 더 고달플 수 있다. 다뤄야 할 시나리오가 복잡할수록 테스트 작성이 더욱 어려워진다.

3.2 올바른 추상화 선택
- 테스트하기 쉽도록 코드를 다시 작성하기 위한 방법에 대해 고민해본다.
- 추상화를 하면 지저분한 세부 사항을 감추고 로직에만 초점을 맞출 수 있다.
- 무엇을 원하는가와 원하는 바를 어떻게 달성할지를 분리한다.

다음 포스팅에서는 3.2에서 선택한 추상화를 구현할 예정이다.

반응형
Comments