Data Mapper

Data Mapper

객체와 데이터베이스 간에 데이터를 이동하는 매퍼(473) 계층으로 객체와 데이터베이스를 서로 독립적으로 유지하고 매퍼 자체를 유지합니다.

개체와 관계형 데이터베이스는 데이터를 구조화하는 메커니즘이 다릅니다.
컬렉션 및 상속과 같은 개체의 많은 부분은 관계형 데이터베이스에 없습니다.
많은 비즈니스 논리를 사용하여 개체 모델을 구축할 때 이러한 메커니즘을 사용하여 데이터와 이에 수반되는 동작을 더 잘 구성하는 것이 중요합니다. 이렇게 하면 변형 스키마가 생성됩니다. 즉, 개체 스키마와 관계형 스키마가 일치하지 않습니다.

여전히 두 스키마 간에 데이터를 전송해야 하며 이 데이터 전송은 그 자체로 복잡성이 됩니다.
메모리 내 개체가 관계형 데이터베이스 구조에 대해 알고 있는 경우 하나의 변경 사항이 다른 쪽으로 파급되는 경향이 있습니다.

데이터 매퍼는 메모리 내 개체를 데이터베이스에서 분리하는 소프트웨어 계층입니다.
그 책임은 둘 사이에서 데이터를 전송하고 서로를 격리하는 것입니다.
Data Mapper를 사용하면 메모리 내 개체는 데이터베이스가 있는지조차 알 필요가 없습니다.
그들은 SQL 인터페이스 코드가 필요하지 않으며 데이터베이스 스키마에 대한 지식이 전혀 필요하지 않습니다.
(데이터베이스 스키마는 항상 그것을 사용하는 객체에 대해 무지합니다.)
Mapper(473)의 형태이기 때문에 Data Mapper 자체는 도메인 계층에도 알려지지 않습니다.

참고자료