[자바성능튜닝이야기] 1. 디자인 패턴 꼭 써야 한다
1. 디자인 패턴 꼭 써야 한다
디자인 패턴은 임백준님의 개발자의 초식, 디자인 패턴「그러나…」에도 잘 드러나있듯이 과거의 소프트웨어 개발 과정에서 발견한 설계의 노하우를 일종의 패턴으로 정리해 놓은 것이다. 따라서 문제점에 대해서 검증된 방법으로 해결 방안을 찾을 수 있고, 시스템을 만들기 위해서 전체 중 일부 의미 있는 클래스들을 묶기 위해 사용될 수 있다. 반복되는 의미 있는 집합을 정의하고 이름을 지정해서, 누가 이야기하더라도 동일한 의미의 패턴이 되도록 만들어 놓은 것이다.
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 패턴: 비동기적 호출을 처리하기 위한 패턴
여기 명시된 패턴 중 성능과 가장 밀접한 관련이 있는 패턴은 Service Locator 패턴이다. 그리고 애플리케이션 개발 시 반드시 사용해야 하는 Transfer Object 패턴도 중요하다.