객체지향적인 도메인 레이어 구축하기 - DOMAIN MODEL 패턴과 JPA의 조화
- 조영호 | NHN 커머스개발센터 차장
- Eternity’s Chit-Chat이라는 블로그를 운영하고 있으며 시간이 날 때마다 소프트웨어 개발과 관련된 다양한 이야기를 적고 있습니다. 애자일 방법론과 객체-지향 분석/설계, 도메인 주도 설계(Domain-Driven Design), 도메인-특화 언어(Domain-Specific Language)에 많은 관심을 가지고 있습니다. NHN에서 카페서비스 개발을 담당했으며 현재는 NHN Business Platform에서 쇼핑 서비스를 개발하고 있습니다.
DOMAIN MODEL 패턴은 애플리케이션의 핵심 지식을 담고 있는 도메인 레이어를 객체 지향적으로 구성하는 아키텍처 패턴입니다.
대부분의 엔터프라이즈 애플리케이션은 도메인 레이어를 절차적인 방식으로 구축하는 TRANSACTION SCRIPT 패턴을 적용함으로써 객체가 제공하는 다양한 혜택을 제대로 누리지 못하고 있습니다.
TRANSACTION SCRIPT 패턴을 선택하는 이유 중 하나는 도메인의 개념을 표현하는 객체 모델과 데이터를 표현하는 데이터 모델 간의 임피던스 불일치 문제를 해결하기가 쉽지 않기 때문입니다.
JPA(Java Persistence API)는 이러한 임피던스 불일치 문제를 해결하기 위해 제정된 표준 스펙으로 DOMAIN MODEL 패턴을 따르는 객체 지향적인 도메인 레이어를 쉽게 구축할 수 있게 해 줍니다.
이 세션에서는 DOMAIN MODEL 패턴의 구축을 도와주는 JPA의 특징과 적용 방법을 살펴보겠습니다.
대부분의 엔터프라이즈 애플리케이션은 도메인 레이어를 절차적인 방식으로 구축하는 TRANSACTION SCRIPT 패턴을 적용함으로써 객체가 제공하는 다양한 혜택을 제대로 누리지 못하고 있습니다.
TRANSACTION SCRIPT 패턴을 선택하는 이유 중 하나는 도메인의 개념을 표현하는 객체 모델과 데이터를 표현하는 데이터 모델 간의 임피던스 불일치 문제를 해결하기가 쉽지 않기 때문입니다.
JPA(Java Persistence API)는 이러한 임피던스 불일치 문제를 해결하기 위해 제정된 표준 스펙으로 DOMAIN MODEL 패턴을 따르는 객체 지향적인 도메인 레이어를 쉽게 구축할 수 있게 해 줍니다.
이 세션에서는 DOMAIN MODEL 패턴의 구축을 도와주는 JPA의 특징과 적용 방법을 살펴보겠습니다.
강의대상 : 이 세션은 객체 지향 프로그래밍 언어를 이용하고 데이터베이스에 영속성 정보를 저장하는 엔터프라이즈 애플리케이션을 구축해 본 경험이 있는 초, 중급 개발자를 대상으로 합니다.