파비의 매일매일 공부기록

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

Study/Python

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

fabichoi 2021. 10. 17. 23:30

이번장에서는 모델을 다시 살펴보면서 불변 조건과 제약에 대해 알아보고 '내부적인 일관성'을 유지하는 방법을 살펴봄. 그리고 일관성 경계를 설명하고 일관성 경계가 어떻게 유지보수 편의를 해치지 않으면서 고성능 소프트웨어를 만들 수 있게 도와주는지 살펴봄.

1. 모든 것을 스프레드시트에서 처리하지 않는 이유
- 비즈니스 사용자들은 간단하고 익숙하면서도 강력한 스프레드시트를 좋아한다. (이건 리얼 100 퍼 공감)
- 도메인 로직의 일부는 제약을 강제로 지키게 해서 시스템이 만족하는 불변 조건을 유지하려는 목적으로 작성됨.
- 불변 조건 : 어떤 연산이 끝날 때마다 항상 참이어야 하는 요소.

2. 불변 조건, 제약, 일관성
- 제약 : 모델이 취할 수 있는 상태의 수를 제한.
- 경우에 따라 일시적으로 규칙을 완화할 수 있음.
- 동시성이 적용되면 상황이 더 복잡해지며, 테이블에 락을 적용해서 문제를 해결함.
- 락을 사용하면 같은 테이블이나 같은 행에 대해 두 연산이 동시에 일어나는 경우를 방지할 수 있음.

3. 애그리게이트란?
- 시스템을 불변 조건을 보호하고 동시성을 최대한 살리고 싶을 때 사용할 수 있는 패턴
- 다른 도메인 객체들을 포함하며 이 객체 컬렉션 전체를 한꺼번에 다룰 수 있게 해주는 도메인 객체
- 변경 방법 : 애그리게이트와 그 안의 객체 전체를 불러와서 애그리게이트 자체에 대해 메서드를 호출
- 모델 안에 컬렉션이 있으면 어떤 엔티티를 선정해서 그 엔티티와 관련된 모든 객체를 변경할 수 있는 단일 진입점으로 삼으면 좋음.

반응형
Comments