일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 화상영어
- 사이드
- 프로젝트
- 괜찮음
- 쓰릴오브파이트
- 미드시청
- 리얼 클래스
- realclass
- 월간
- Daily Challenge
- 뭐든
- Problem Solving
- 잡생각
- 개발자
- 매일
- 운동
- FIT XR
- 링피트
- 10분
- 영어원서읽기
- 만화도
- Writing
- 읽기
- English
- 30분
- 3줄정리
- 파비최
- 스탭퍼
- 영어공부
- leetcode
Archives
- Today
- Total
파비의 매일매일 공부기록
파이썬으로 살펴보는 아키텍처 패턴 - 2장 #2 본문
2.4 기억 되살리기: 우리가 사용하는 모델
- 일반적인 ORM 방식 : ORM에 의존하는 모델. 요즘 대부분 개발할 때 직접 SQL 질의 수행하지 않음. 대부분은 모델 객체를 대신해 SQL를 생성하는 ORM 프레임 워크를 사용함.
- ORM : 객체와 도메인 모델의 세계와 데이터베이스와 관계 대수의 세계를 이어주는 다리 역할을 하기 위해 존재하므로 '객체-관계 맵핑'이라고 함.
- 영속성 무지(persistence ignorance) : ORM이 제공하는 가장 중요한 기능 중 하나. 도메인 모델이 데이터를 어떻게 적재하는지 또는 어떻게 영속화하는지에 대해 알 필요가 없음. 영속성 무지가 성립하면 특정 데이터베이스 기술에 도메인이 직접 의존하지 않도록 유지 가능.
- 의존성 역전 : 모델에 의존하는 ORM. 스키마를 별도로 정의하고 스키마와 도메인 모델을 상호 변환하는 명시적인 매퍼를 정의.
- ORM에 대한 테스트 코드를 작성하고 API에 직접 SQLAlchemy(ORM 중 하나)를 적용한다.
- 이 작업을 하는 이유는 코드에서 사용된 SQLAlchemy를 제거하고 다른 ORM을 사용할 수도 있으며, 도메인 모델은 변경할 필요가 없는 이점이 있다.
- 도메인 모델에서 수행하는 작업에 따라 객체 지향 패러다임으로부터 멀어지면 멀어질수록 ORM이 원하는 대로 작동하게 만들기가 점점 더 어려워지며, 도메인 모델을 직접 바꿀 필요가 생길 수 있기에 트레이드오프를 고려해야 함.
반응형
'Study > Python' 카테고리의 다른 글
파이썬으로 살펴보는 아키텍처 패턴 - 3장 #1 (0) | 2021.10.05 |
---|---|
파이썬으로 살펴보는 아키텍처 패턴 - 2장 #3 (0) | 2021.10.04 |
파이썬으로 살펴보는 아키텍처 패턴 - 2장 #1 (0) | 2021.10.02 |
파이썬으로 살펴보는 아키텍처 패턴 - 1장 #3 (0) | 2021.10.01 |
파이썬으로 살펴보는 아키텍처 패턴 - 1장 #2 (0) | 2021.09.30 |
Comments