일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 영어원서읽기
- 개발자
- 읽기
- 매일
- 화상영어
- 만화도
- English
- 30분
- realclass
- 10분
- FIT XR
- 쓰릴오브파이트
- Problem Solving
- Writing
- 월간
- 뭐든
- 파비최
- 운동
- 괜찮음
- 잡생각
- 3줄정리
- Daily Challenge
- 영어공부
- 프로젝트
- 리얼 클래스
- 미드시청
- leetcode
- 링피트
- 스탭퍼
- 사이드
Archives
- Today
- Total
파비의 매일매일 공부기록
파이썬으로 살펴보는 아키텍처 패턴 - 12장 #3 본문
12.7 읽기 연산에 최적화되지 않은 도메인 모델
- 도메인 모델을 만드는 데 든 노력은 주로 쓰기 연산임.
- 읽기를 위한 요구 사항은 개념적으로 도메인 모델에 대한 요구사항과 상당히 다름.
12.8 '명확한' 대안 2: ORM 사용하기
- SQL을 그냥 사용하는 코드보다 실제로 더 쉽게 이해하고 작성 가능.
- ORM을 사용하려면 연습 및 문서를 많이 살펴봐야 하며 몇 가지 성능상의 문제를 야기함.
12.9 SELECT N+1과 다른 고려 사항
- ORM에서 일반적인 성능 문제라고 할 수 있는 SELECT N+1 문제.
- 객체 리스트를 가져올 때 ORM은 보통 필요한 모든 객체의 ID를 가져오는 질의를 먼저 수행.
- 그 후 각 객체의 애트리뷰트를 얻기 위한 개별 질의를 수행.
- 특히 객체에 외래 키 관계가 많은 경우 이런 일이 더 자주 발생.
- 정규화되지 않은 뷰를 추가하거나, 읽기 전용 복사본을 만들거나 캐시 계층을 추가하여 연산의 속도를 최적화.
12.10 이제는 상어를 완전히 뛰어넘을 때이다
- 여러 클라이언트가 동시에 데이터를 변경하면 이상한 경합 조건이 발생.
- 데이터를 읽을 때는 동시에 연산을 실행하는 클라이언트 수에 제한이 없음. 따라서 읽기 전용 저장소는 수평 규모 확장 가능.
- DB 기능을 활용하는 대신 이벤트 기반 아키텍처를 재사용하는 방법에 대해 안내.
12.11 읽기 모델 구현을 변경하기 쉽다
- 완전히 다른 저장소 엔진인 레디스를 사용해 읽기 모델을 구축하기로 결정했을 때 발생하는 예제를 소개.
반응형
'Study > Python' 카테고리의 다른 글
파이썬으로 살펴보는 아키텍처 패턴 - 13장 #2 (0) | 2021.11.02 |
---|---|
파이썬으로 살펴보는 아키텍처 패턴 - 13장 #1 (0) | 2021.11.01 |
파이썬으로 살펴보는 아키텍처 패턴 - 12장 #2 (0) | 2021.10.30 |
파이썬으로 살펴보는 아키텍처 패턴 - 12장 #1 (0) | 2021.10.29 |
파이썬으로 살펴보는 아키텍처 패턴 - 11장 #3 (0) | 2021.10.28 |
Comments