[Controller] 팩토리 패턴을 활용한 액션 관리 및 메모리 절약법
✴︎ 모든 액션은 4단계로 정리할 수 있음
: 웹 애플리케이션에서 액션을 처리하는 로직은 아래 4단계로 나눌 수 있음
• DAO, DTO 생성 → USEBEAN
• DTO 세팅 → SET PROPERTY
• CRUD → selectOne
• 응답 준비 → 어디로 어떻게 보낼지
⇒ 위 단계는 독립적이며, 적절한 설계를 통해 유지보수성을 높일 수 있음
✴︎ DAO와 DTO의 멤버 변수 처리
• DAO를 멤버 변수로 두는 것은 좋은 방식
• DTO를 멤버 변수로 두는 것은 신중해야 함
: DTO는 데이터를 저장하는 역할이며, 멤버 변수로 두면 이전 요청의 정보가 남아 있을 가능성이 있음
: 멤버 변수로 둔다면 재사용을 고려해야함
✴︎ 메모리 최적화 개념
• 객체를 NEW 하는 것은 메모리 사용을 증가시킴
• 최적화 원칙
: 멤버변수 = new XX → 객체를 자주 생성하는 구조는 피해야 함
: 기본 생성자를 활용하여 효율적으로 객체 관리
: Spring과 같은 프레임워크는 객체 관리를 자동화
⇒ 불필요한 객체 생성을 줄이고, 재사용 가능한 구조를 유지하는 것이 핵심
✴︎ Factory Pattern을 활용한 액션 관리
• 기본 개념
1. 팩토리 객체는 서버당 한번만 NEW
2. 초기 생성 시 모든 Action 객체를 NEW
3. 이후에는 재사용하기 때문에 메모리 효율이 극대화됨
Action action = ActionFactory.getAction(actionName);
• Key-Value 매칭을 통해 적절한 객체를 반환하는 역할을 함
: Key = int, String, boolean // Value = 객체
ActionFactory factory = new ActionFactory();
• 팩토리를 인스턴스화하는 방식은 유지되며, 객체 재사용을 통해 성능을 최적화할 수 있음
<jsp:useBean id="factory" class="controller.common.ActionFactory" scope="application"/>
• NEW를 한번만 수행, 메모리 효율이 뛰어남
✴︎ ShoppingMall Project Feedback
• 페이지 이동이 여러 개라면, 개별적인 Action 클래스를 생성하는 것이 좋음
• 하나의 액션에서 모든 이동을 처리하는 것보다 유지보수가 용이