🙆‍♂️ import 🙇‍♂️

자바 성능 튜닝 이야기[ProgrammingInsight-이상민]

J2EE 디자인 패턴정리[떵짜루의 개인 블로그-YOUNGMIN JUN]


MVC??

MVCModel, View, Controller의 약자이다.

하나의 JSP, Swing 처럼 화면에 모든 처리 로직을 모아두는 방식이 아닌,
Model, View, Controller의 역할을 각기 나누어 Class를 생성하고 개발하는 Model 방식을 말한다.

대부분 MVC 모델은 웹 환경에서 JSP MVC 모델을 이야기 한다.

개념에 더 근접하기 위해 Swing, SWT 기반 2 Tier Application 제작의 관점에서 접근하면,
SWT : 표준 위젯 툴킷(SWT, Standard Widget Toolkit)은 이클립스에서 사용하고 있는 Java기반의 위젯 툴킷(Widget Toolkit)이다.

View ?

View사용자가 결과를 보거나, 입력할 수 있는 화면 단을 생각하면 편하다.

View의 역할은 이벤트를 발생, 그 결과를 보여주는 역할을 수행한다.

Controller ?

ControllerViewModel을 연결자로 생각하면 된다.

View를 통해 전달 받은 Event를 Model로 연결하는 역할을 수행한다.

Model ?

ModelView에서 입력된 내용을 저장, 관리, 수정하는 역할을 수행한다.


2 Tier 구조가 아닌 웹과 같은 3 Tier로 구성된 JSP 모델은 주로 Model1Model2 방식을 사용한다.

Model 1

JSP Model 1JSP에서 Java Bean 을 호출하고 DB에서 정보를 조회, 등록, 수정, 삭제 CRUD 작업을 처리 한 후 그 결과를 브라우저로 보내 주는 방식이다.

이러한 Model 1 방식은 개발 완료 후 로직이나 프로세스를 변경하는 경우에 수정이 어렵다는 단점이 있다.

하나의 JSP 파일 안에 비즈니스 로직이나 프로세스에 대한 코드가 모두 적혀있기 때문이다.

또한 더 큰 문제는, 이러한 Model 1 방식으로 개발을 진행하면 화면과 비즈니스 모델의 분업화가 어려워 개발자 역량에 따라 구현 코드가 굉장히 많이 달라질 수 있다는 것이다.

이러한 Model 1 방식은 Controller 가 구현되지 않았기 때문에 MVC Model 이라고 볼 수 없다.

Model 2

Model 1 방식의 단점들을 해결하기 위해 나온 것이 JSP Model 2 이다.

Model 2MVC Model 을 정확히 준수한다.

Model 1 방식은 JSP로 해당 요청 처리를 직접 하지만, Model 2 방식은 Servlet 을 통해 요청을 한다는 것이 Model 1Model 2 의 가장 큰 차이점이다.

Model 2 에서는 ServletController 의 역할을 수행한다.

Model 2 는 결과와 처리 로직 부분이 분리되어 있기 때문에, 대규모의 프로젝트 환경에서 더욱 유리하게 분업화하여 작업할 수 있다.


J2EE 패턴

J2EE 패턴을 공부 하기 위해선, MVC 모델을 먼저 이해 하는것이 중요하다.

J2EE 패턴에는 MVC 구조가 기본으로 깔려 있다.

J2EE 패턴에 대한 간략 설명은 맨 아래에 정리해두었다!

J2EE 패턴 ????

Intercepting Filter 패턴

요청 타입에 따라 다른 처리를 하기 위한 패턴이다.

Front Controller 패턴

요청 전후에 처리하기 위한 컨트롤러를 지정하는 패턴이다.

View Helper 패턴

프레젠테이션 로직과 상관 없는 비즈니스 로직을 헬퍼로 지정하는 패턴이다.

Composite View 패턴

최소 단위의 하위 컴포넌트를 분리하여 화면을 구성하는 패턴이다.

Service to Worker 패턴

Front Controller와 View Helper 사이에 디스패처를 두어 조합하는 패턴이다.

Dispatcher View 패턴

Front Controller와 View Helper로 디스패치 컴포넌트를 형성한다. 뷰 처리가 종료될 때까지 다른 활동을 지연하는 점이 Service to Worker 패턴과 다르다.

Business Delegate 패턴

비즈니스 서비스 접근을 캡슐화하는 패턴이다.

Service Locator 패턴

서비스와 컴포넌트 검색을 쉽게 하는 패턴이다.

Session Facade 패턴

비즈니스 티어 컴포넌트를 캡슐화하고, 원격 클라이언트에서 접근할 수 있는 서비스를 제공하는 패턴이다.

Composite Entity 패턴

로컬 엔티티 빈과 POJO를 이용하여 큰 단위의 엔티티 객체를 구현한다.

Transfer Object 패턴

일명 Value Object 패턴이라고 많이 알려져 있다. 데이터를 전송하기 위한 객체에 대한 패턴이다.

Transfer Object Assembler 패턴

하나의 Transfer Object로 모든 데이터를 처리 할 수 없으므로, 여러 Transfer Object를 조합하거나 변형한 객체를 생성하여 사용하는 패턴이다.

Value List Handler 패턴

데이터 조회를 처리하고, 결과를 임시 저장하며, 결과 집합을 검색하여 필요한 항목을 선택하는 역할을 수행한다.

Data Access Object 패턴

일명 DAO라고 많이 알려져 있다. DB에 접근을 전달하는 클래스를 추상화하고 캡슐화한다.

Service Activator 패턴

비동기적 호출을 처리하기 위한 패턴이다.

profile
🚀 기록보단 길록을 20.10 ~ 22.02 ⭐ Move To : https://gil-log.github.io/

0개의 댓글