Layered Architecture (계층화 아키텍쳐)
대부분의 중\/대규모의 어플리케이션은 효율적인 개발 및 유지보수를 위해 계층화하여 개발하는 것이 일반적이다. 계층화 아키텍쳐는 MVC로 대표되고, MVC 패턴의 특징은 다음과 같다.
컨트롤러와 모델과는 독립적으로 뷰를 수정할 수 있다.
모델 컴포넌트는 뷰와 컨트롤러 컴포넌트로부터 데이터 구조와 같은 내부적인 상세한 사항을 숨긴다.
모델에 인터페이스를 가능한 한 사용하면, GUI 또는 J2ME와 같은 영역에서도 재사용이 가능하다.
컨트롤러에서 모델 코드 부분을 분리하면 원격 비즈니스 컴포넌트 사용으로 옮겨가는 것이 수월하다.
계층의 세분화
Domain Model
Presentation <-> Controller <-> Business <-> Persistence (<-> Database)
목적
Business, Persistence layer에서 해야할 작업을 JSP가 모두 담당하게 된다면 구현해야 할 작업이 많아져서 코드가 복잡해짐 -> 유지보수가 어려움
코드의 재사용성을 증가시킴
Business layer (Service layer)
- Controller와 Persistence layer를 연결하는 역할. 두 계층이 직접 통신하지 않게끔 하여 (loosely coupled) 어플리케이션의 유연성을 증가시킴
References
http:\/\/blog.daum.net\/question0921\/797
http:\/\/egloos.zum.com\/mt1716\/v\/9291203
http:\/\/www.openseed.co.kr\/4