파비의 매일매일 공부기록

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

Study/Python

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

fabichoi 2021. 10. 3. 23:30

2.4 기억 되살리기: 우리가 사용하는 모델
- 일반적인 ORM 방식 : ORM에 의존하는 모델. 요즘 대부분 개발할 때 직접 SQL 질의 수행하지 않음. 대부분은 모델 객체를 대신해 SQL를 생성하는 ORM 프레임 워크를 사용함.
- ORM : 객체와 도메인 모델의 세계와 데이터베이스와 관계 대수의 세계를 이어주는 다리 역할을 하기 위해 존재하므로 '객체-관계 맵핑'이라고 함.
- 영속성 무지(persistence ignorance) : ORM이 제공하는 가장 중요한 기능 중 하나. 도메인 모델이 데이터를 어떻게 적재하는지 또는 어떻게 영속화하는지에 대해 알 필요가 없음. 영속성 무지가 성립하면 특정 데이터베이스 기술에 도메인이 직접 의존하지 않도록 유지 가능.
- 의존성 역전 : 모델에 의존하는 ORM. 스키마를 별도로 정의하고 스키마와 도메인 모델을 상호 변환하는 명시적인 매퍼를 정의.
- ORM에 대한 테스트 코드를 작성하고 API에 직접 SQLAlchemy(ORM 중 하나)를 적용한다.
- 이 작업을 하는 이유는 코드에서 사용된 SQLAlchemy를 제거하고 다른 ORM을 사용할 수도 있으며, 도메인 모델은 변경할 필요가 없는 이점이 있다.
- 도메인 모델에서 수행하는 작업에 따라 객체 지향 패러다임으로부터 멀어지면 멀어질수록 ORM이 원하는 대로 작동하게 만들기가 점점 더 어려워지며, 도메인 모델을 직접 바꿀 필요가 생길 수 있기에 트레이드오프를 고려해야 함.

반응형
Comments