데이터 액세스 층의 역할
데이터 엑세스 층은 기본적으로 RDB(테이블) 엑세스를 비즈니스 로직에서 숨기고, 비즈니스 로직에 필요한 데이터를 테이블에 취득해서 오브젝트에 매핑하는 것이다. 이렇게 오브젝트와 RDB를 매핑하는 것을 O/R매핑이라고 한다. [O는 Object, R은 Relational(테이블)]
O/R매핑
O/R매핑은 시스템 개발 방법에 따라서 O에서 R과, R에서 O의 두 가지 방향이 존재한다. 일반적으로 O에서 R의 O/R 매핑은 객체 지향 분석으로 엔티티(도메인 모델의 클래스)를 추출해, 그 엔티티를 바탕으로 설계 단계에서 테이블을 작성한다. 기본적으로 테이블읠 한 레코드가 한 오브젝트에 대응한다. 객체 지향으로 분석-설계하면 일반적으로 이러한 O/R매핑이 된다. 마찬가지로 R에서 O의 O/R 매핑(단순하게 R/O 매핑이라고 하겠다.)은 시스템의 데이터 분석을 DOA(Data Oriented Approach(데이터 중심 접근) 등에서 처리해 테이블을 작성할 경우나 시스템 개발 이전에 테이블이 이미 존재할 경우에 사용한다.
또한, 주로 참조용 웹 애플리케이션이나 단순 입출력 애플리케이션일 때는 화면에 표시할 데이터를 모아 한 오브젝트로 만드는 편이 효율적이므로, O/R 매핑을 피하고 R/O 매핑을 일부러 선택하는 것도 고려할 수 있다.
예를 들어, 사원 이름과 기본 급여 목록 표시 화면이 필요할 때는 사원 테이블(항목: 사원 번호, 이름, 직위, 나이, 주소 등)과 급여 테이블(항목:사원번호, 기본급, 조정 수당)에서 사원 오브젝트와 급여 오브젝트를 생성해 표시하는 것보다 사원 테이블과 급여 테이블에서 급여 목록 오브젝트(속성: 이름, 기본급)를 생성해 표시하는 편이 더 효율적이다.
'Study > Spring' 카테고리의 다른 글
[Spring Framework] 부품화 (0) | 2019.08.03 |
---|---|
[Spring Framework] DB 액세스 프레임워크의 종류 (0) | 2019.08.03 |
[Spring Framework] 트랜잭션 관리 (0) | 2019.08.03 |
[Spring Framework] 도메인 모델 (0) | 2019.08.03 |
[Spring Framework] 비즈니스 로직 층의 패턴 (0) | 2019.08.03 |