- 각 패턴들에 대한 내용 / 핵심은 아래에서
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를 이용하여 큰 단위의 엔티티 객체를 구현
[POJO?] https://dev-coco.tistory.com/82
Transfer Object
일명 Value Object 패턴이라고 많이 알려져 있다. 데이터를 전송하기 위한 객체에 대한 패턴
Transfer Object Assembler
하나의 Transfer Object로 모든 타입 데이터를 처리할 수 없으므로, 여러 Transfer Object를 조합하거나 변형한 객체
를 생성하여 사용하는 패턴
Value List Handler
데이터 조회를 처리하고, 결과를 임시 저장하며, 결과 집합을 검색하여 필요한 항목을 선택하는 역할
Data Access Object
일명 DAO라고 많이 알려져 있다. DB에 접근을 전담하는 클래스를 추상화하고 캡슐화한다.
Service Activator
비동기적 호출을 처리하기 위한 패턴
Transfer Object 패턴
class EmployeeTO implements Serializable {
private String empName;
...
public EmployeeTO() {
super();
}
public EmployeeTO(String empName, ...) {
super();
this.empName = empName;
...
}
// getter
// setter
// toString
}
- 필드를 private로 지정해서 getter setter를 만들지 public으로 지정해서 메서드들을 만들지 않을지 정답은 없지만
후자가 빠르다 - 정보은닉, 수정 불가를 위해 getter setter 메서드를 작성하는 것이 일반적
이를 활용하면 empName이 null값이라도 null이 아니라 0을 리턴 - Transfer Object를 구현할 때는 반드시 toString()을 구현할 것
- 안그러면 EmployeeTo@c1716같은 알 수 없는 값을 리턴함
- JUnit 기반에서 확인할 일이 있을때 매우 유용하기에 귀찮더라도 반드시 구현할 것!
- 참고로 Serializable은 객체를 직렬화 즉, 서버 사이의 데이터 전송을 가능하게 하기 위함이라 생각하면 된다
Service Locator 패턴
- 예전에 많이 사용됐던 EJB의 EJB Home 객체나 DB의 DataSource를 찾을 때 소용 되는 응답 속도를 감소시키기 위함
Business Delegate 패턴
Session Facade 패턴
Data Acess Object 패턴
'개발서적 > 자바 성능 튜닝 이야기' 카테고리의 다른 글
[자성튜이] 로그 작성 (0) | 2024.09.16 |
---|---|
[자성튜이] IO 이야이야기 (0) | 2024.08.25 |
[자성튜이] static에 관하여 / reflection (0) | 2024.08.22 |
[자성튜이] String을 자제해라 / for문을 더 빠르게?? (0) | 2024.08.22 |
[자성튜이] 속도 측정 (0) | 2024.08.22 |