: 데이터베이스에 대한 접근을 전담하고 있는 DAO 클래스는 공통적으로 개발해보자.
1. 기본 아키텍처
최근 대부분의 중,대규모 웹 애플리케이션은 효율적으로 개발 및 유지보수하기 위하여
계층화하여 개발하는 것이 일반적이다.
이 아키택처에서 기본적으로 가지는 계층은 UI 계층, 비지니스 계층,
퍼시스턴스 계층(Persistence Layer), 도메인 모델 계층(Domain Model Layer) 의
네 가지로 구분할 수 있다.
■ UI 계층
* 사용자에 대한 요청 및 응답 처리
* 상위 계층(비지니스 계층, 퍼시스턴스 계층)에서 발생하는
Exception, Error 에 대한 처리.
* 최종 UI에서 표현해야 할 도메인 모델을 엮는 기능
* 최종 UI에서 입력한 데이터에 대한 유효성 검증(Validation) 기능
* 비지니스 로직과 최종 UI 사이를 분리하기 위한 컨트롤러 기능
■ 비지니스 계층
* Application 비지니스 로직 처리와 비지니스와 관련된 도메인 모델의 적합성 검증
* Transaction 처리
* UI 계층과 Persistence 계층 사이를 연결하는 역할로서 두 계층이 직접적으로
통신하지 않게 하여 Application의 유연성을 증가시킨다.
* 비지니스 계층에 있는 객체들 간의 관계를 관리한다.
* 다른 계층들과 통신하기 위한 인터페이스를 제공한다.
■ Persistence 계층
* 영구 데이터를 빼내어 객체화시킨다.
* 영구 저장소(일례로 관계형 데이터베이스)에 데이터를 저장, 수정, 삭제한다.
■ Domain Model 계층
* 관계형 데이터베이스의 엔티티와 비슷한 개념을 가지는 것으로
실제 비지니스 객체를 의미한다.
위 네 계층은 독립적으로 분리할 수 있도록 구현해야 하며,
일반적으로 각 계층 사이에서는 도메인 모델을 제외하고
Interface를 이용하여 통신하는 것이 일반적이다.
도메인 모델은 UI/비지니스/Persistence 계층 전체에 걸쳐 사용하게 된다.
Posted by 홍반장