JAVA_

[Controller] 팩토리 패턴을 활용한 액션 관리 및 메모리 절약법

Joyfullyever 2025. 3. 9. 00:14

✴︎ 모든 액션은 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 클래스를 생성하는 것이 좋음

• 하나의 액션에서 모든 이동을 처리하는 것보다 유지보수가 용이