J2EE 디자인 패턴이란?
· Sun Microsystems에서 만들어진 반복되는 설계 문제를 해결하기 위한 모범 사례 모음이다.
- 패턴은 다양한 문제에 적용할 수 있고, J2EE 개발자들의 성공적인 경험을 활용할 수 있는 솔루션이다.
· 웹 기반의 엔터프라이즈 어플리케이션을 개발하기 위해 만들어졌다.
· J2EE: Java 2 Platform Enterprise Edition, JAVA SE를 확장한 엔터프라이즈 사양 세트를 의미한다.
- 자바 1.2 ~ 자바 1.4 까지는 J2EE, 자바5 ~ 자바8 까지는 Java EE, 그 이후는 Jakarta EE로 이름이 바뀌었다.
- Java SE vs Java EE: https://www.educba.com/java-vs-java-ee/
J2EE 디자인 패턴의 종류
· J2EE 디자인 패턴에는 여러 종류가 있지만, 크게 3개의 레이어로 나뉘어진자.
Presentation Layer, Business Layer, Integration Layer
Presentation Layer Design Pattern
Intercepting Filter Pattern
· 사용자 요청의 전처리와 후처리를 쉽게 처리한다.
View Helper Pattern
· Helper 컴포넌트의 Presentation formatting에 관계되지 않은 로직을 분리한다.
즉, 화면과 Business Delegate에 접근하는 Helper를 분리한다.
Composite View Pattern
· 독립적인 View를 모아서 새로운 View를 생성한다.
Front Controller Pattern
· 사용자 요청제어를 한곳에서 관리하기 위한 컨트롤러를 제공한다.
Business Layer Design Pattern
Business Delegate Pattern
· Presentation 계층과 Business 계층과의 결합도를 완화하는 방법이다.
· 자세한 내용 https://scshim.tistory.com/449
Session Facade Pattern
· 비즈니스 객체의 복잡도를 감추는 중앙 집중적인 워크플로우를 다루는 기능이다.
Transfer Object Pattern
· 클라이언트에서 서버로 한 번에 여러 속성을 가진 데이터를 전달하는 경우 사용한다.
· 한 객체 안에 여러 값을 묶어서 전달한다.
· 데이터 송수신을 위한 round trip 숫자를 줄일 수 있어서 성능상 이점이 생긴다.
· 일반적으로 DTO라고 부르는 객체가 이에 해당한다.
· 디버깅을 위해 toString()을 구현하는 것을 권장한다.
· VO 패턴이라고도 불리지만, 이 용어를 사용하기에는 애매한 부분이 있다.
- 값 객체(Value Object)는 원시 객체처럼 레퍼런스가 아니라 값으로 비교될 수 있는 클래스로 만든 객체를 뜻하는 용어이기도 하다.
ex) 자바의 record, 코틀린의 value class
Transfer Object Assembler Pattern
· 네트워크간의 상호작용을 감소시키는 계층간의 데이터 교환기능이다.
· 하나의 Transfer Object로 모든 데이터를 처리할 수 없으므로,
여러 Transfer Object를 조합하거나 변형한 객체를 생성하여 사용하는 패턴이다.
Value List Handler Pattern
프레젠테이션 계층으로 다양한 요소의 리스트를 제공하는 기능이다.
Composite Entity Pattern
단일 Entity Bean으로 의존 객체들을 그룹지어 실행 성능을 높이는 기능이다.
Service Locator Pattern
비즈니스 서비스를 찾고, 생성하는 것과 같은 복잡한 서비스를 묶는 기능이다.
Integration Layer Design Pattern
Data Access Object Pattern
추상 데이터 소스를 통해 데이터 접근의 투명성을 보장하는 기능이다.
Service Aviator Pattern
비동기적 호출을 처리하기 위한 패턴이다.
https://www.koreascience.or.kr/article/JAKO200211922691872.pdf
https://download.oracle.com/otn_hosted_doc/jdeveloper/1012/ejb/ejb_aj2eepatterns.html
'자바' 카테고리의 다른 글
[Java] if-else vs switch, 조건문의 속도 차이와 그 이유 (0) | 2021.12.05 |
---|---|
J2EE 디자인 패턴 - Data Access Object Pattern (0) | 2021.12.05 |
J2EE 디자인 패턴 - Business Delegate Pattern (0) | 2021.12.03 |
[Java] 자바 8에 추가/변경된 사항 (0) | 2021.09.29 |
[Java] 자바 String을 효율적으로 사용하는 방법 (StringBuilder, StringBuffer, StringJoiner, Collectors.joining) (0) | 2021.09.29 |
댓글