프로그래머호이잇

3장 관계형 데이터베이스 본문

아키텍처패턴

3장 관계형 데이터베이스

호이잇! 2021. 11. 29. 22:29

프레젠이션 : 서비스제공, 정보표시 (HTML,CSS Javascript)사용자 요청, HTTP 요청
도메인 : 시스템의 핵심이 되는 논리
데이터 원본 : 데이터베이스, 메시징 시스템, 트랜잭션 관리자 및 다른 패키지와의 통신

데이터 원본 계층의 역할은 애플리케이션이 작업을 수행하는 데 필요한 인프라의 다양한 부분과 통신하는 것이고, 이계층에서 가장 중요한 일은 데이터베이스와 상호작용하는 것임.

도메인 논리 패턴 집합 : 아키텍처 패턴

1. 게이트웨이
기본적으로 SQL 접근을 도메인 논리와는 별도로 분리하고 개별 클래스에 배치하는 것이 좋음. SQL을 제대로 이해하지 못해 효과적으로 쿼리를 정의하는 것에 대한 어려움을 겪는 경우 많음.
이를 구현하는 방법중 하나는 게이트웨이를 사용하는 것.

  • 행 데이터 게이트웨이 : 각 행마다 인스턴스 하나를 만드는 것
  • 테이블 데이터 게이트웨이 : 각 테이블의 레코드 집합을 반환하는 인스턴스를 만드는 것

도메인 모델과 게이트웨이를 함께 사용하는 것이 가능하지만, 게이트웨이의 일부 필드가 도메인 객체의 필드로 변환되는 현상이 발생하여 도메인 객체를 복잡하게 만듬.
이런 문제를 해결하기위해 데이터 매퍼를 사용함
Example)고객객체 <- 고객매퍼 -> 고객 테이블 (Database)
도메인 객체와 데이터 베이스를 서로 격리함.

2. 관계형 데이터베이스
ORM : Object Relational Mapping
객체와 관계형 데이터 베이스를 매핑해주는 것
ORM 장점
1. 객체 지향적인 코드로 비즈니스 로직에 집중할수 있음.
2. 재사용 및 유지보수의 편리성 증가
3. DBMS 종속성이 줄어듬
ORM단점
1. 동시성 문제 해결이 어려움
2. 잘못 구현 된 경우 속도 저하가 발생할 수 있음



 

출처 : 엔터프라이즈 애플리케이션 아키텍처 패턴 (마틴파울러)

'아키텍처패턴' 카테고리의 다른 글

5장 동시성  (0) 2022.09.18
4장 웹 프레젠테이션  (0) 2021.12.19
ORM 소스 예제  (0) 2021.12.06
2장 도메인논리 구성  (0) 2021.12.06