Repository

MVT, MVC

  • 어떤 경우든 계층을 분리해서 유지하고 각 계층이 자신의 바로 아래 계층에만 의지하게 하는 것

  • 도메인 모델에는 어떤 의존성도 없어야한다.

  • 양파 아키텍쳐, startified architecture

ORM

  • ORM이 제공하는 가장 중요하는 기능은 영속성 무지(persistence ignorance)

  • 도메인 모델이 데이털ㄹ 어떻게 적재하는지, 어떻게 영속화하는지 알 필요가 없음

  • 일반적인 방법으로는 ORM이 도메인에게 의존함

  • 스키마를 별도로 정의하고, 스키마와 도메인 모델을 상호 변환하는 명시적인 매퍼를 정의

  • SQLAlchemy에서는 "고전적 매퍼"라고 함

트레이드 오프에 대해

  • 어떤 패턴을 넣을 때 중요하게 생각할 부분 "이로 인해 얻는 이익은 무엇인가?", "이 패턴을 채택하면 치뤄야하는 대가는 무엇인가?"
  • 읿반적으로 새로운 추상화 계층을 도입을 통해 기대하는 것: 전체적인 복잡성이 최소한으로 줄어듦 결과: 지역적 복잡성 증가, 움직이는 부품 수, 지속적 유지 보수 필요