파비의 매일매일 공부기록

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

Study/Python

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

fabichoi 2021. 10. 19. 23:30

7.6 성능은 어떨까?
- 배치를 하나만 요청해도 모든 배치를 읽어오므로 비효율적이라고 생각할 수 있지만 다음의 이유를 들어 성능에 대한 설명을 한다.
- 1. 의도적으로 DB에서 읽기 쿼리를 한 번만 하고, 변경된 부분을 한 번만 영속화하여 데이터를 모델링하고 있음. 여러 번 다양한 질의를 던지는 시스템보다 훨씬 더 성능이 좋은 경향이 있음. 이러한 방식을 차용하지 않으면 시스템이 진화할수록 트랜잭션이 점차 느려지고 더 복잡해질 수 있음.
- 2. 데이터 구조를 최소한으로 사용하며 한 행당 소수의 문자열과 정수를 만듦. 
- 3. 시간이 지나도 가져오는 데이터의 양은 제어를 벗어나지 않음.
- 지연 읽기를 하는 방법이 있음. 

7.7 버전 번호와 낙관적 동시성
- 낙관적 동시성 제어 : 두 사용자의 DB 변경이 서로 충돌하는 경우가 드물다고 여김.
- 비판적 동시성 제어 : 두 사용자의 DB 변경이 충돌을 일으키기 쉽다고 가정. 모든 경우 충돌을 피하려고 노력. 안정성을 위해 모든 대상을 락을 사용해 잠금. 비판적 잠금을 사용하면 DB가 충돌을 막아주므로 실패를 처리할 때 고민할 필요가 없음(교착 상태 예외).
- 실패를 처리하는 일반적 방법 : 실패한 연산을 처음부터 재시도. 

7.8 데이터 무결성 규칙 테스트
- 원하는 동작을 얻었는지 확인. 
- 동시성 제어를 어떤 방식으로 할지는 비즈니스 환경이나 사용하려는 저장소 기술에 따라 아주 많이 달라짐.

어렵다. 많이 어렵다.
사실 그냥 책을 읽었을 뿐.. 딱히 와닿거나 이해되는 부분이 거의 없다. ㅠㅠ

그래도 괜찮다. 어찌 됐든 '어그리게이트'라는 건 들어봤다고 할 수 있지 않나? (이번 장에서 엄청 많이 나옴)

반응형
Comments