본문 바로가기
IT/Java

스트러츠란?(STRUTS)

by 성준하이 2024. 7. 1.
반응형

현재는 자바의 Spring이 엄청나게 독점을 했지만 한때는 Spring 과 어깨를 나란히 했던 스트러츠 (Struts) 에 대해서 다뤄 볼 것이다.

 

스트럿츠는 아파치 프로젝트의 일부로 진행되고 있는 MVC모델에 기반한 웹 프레임워크

- 웹 MVC 프레임워크

- WebWork 프레임워크 기반

 

이다.

 

https://ko.wikipedia.org/wiki/%EC%95%84%ED%8C%8C%EC%B9%98_%EC%8A%A4%ED%8A%B8%EB%9F%BF%EC%B8%A0

 

아파치 스트럿츠 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 아파치 스트럿츠(Apache Struts)는 Java EE 웹 애플리케이션을 개발하기 위한 오픈 소스 프레임워크이다. 이전에는 자카르타 프로젝트의 하부프로젝트에 속하였으나

ko.wikipedia.org

 

구조는 아래와 같다.

ActionServlet에 사용자의 요청이 전달되면 다음과 같은 절차에 따라 처리된다.

1. 웹 애플리케이션이 구동되면 ActionServlet이 초기화된다.
ActionServlet이 초기화 될 때 스트럿츠의 각종 설정 파일들이 로드되고 각종 Config 클래스들과 RequestProcessor가 초기화된다.

2. ActionServlet은 사용자의 요청이 있으면 요청을 처리해줄 RequestProcessor를 찾아 사용자의 요청을 전달한다. RequestProcessor는 사용자의 요청 URL에 따라 ActionForm을 생성하고 요청 파라미터를 ActionForm에 저장한다. 이 때 필요에 따라 ActionForm 에 저장된 값이 올바른지 검증한다.

3. RequestProcessor는 사용자의 요청 URL에 따라 Action을 선택하여 execute() 메서드를 호출한다. 이때 앞서 생성한 ActionForm을 파라미터로 전달한다.

4. Action에서는 사용자의 요청을 수행하기 위한 모델 영역의 비즈니스 로직을 수행하고, 수행 결과 값을 ActionForm이나 스코프,세션 스코프 중 한 곳에 저장한다. 비즈니스로직의 수행 결과에 따라 RequestProcessor에 ActionForward를 리턴한다.

5. RequestProcessor는 Action에서 리턴한 ActionForward에 따라 뷰 영역의 리소스(주로 jsp)를 호출한다.

6. 뷰 영역에서는 프리젠테이션로직을 수행하고 수행결과(주로 HTML)를 사용자에게 전달한다.

 

현재는 struts2 까지 나온상태이고 이런 struts의 장단점은 아래와 같다.

 

장점

○ 단일 진입 서블릿을 사용하여 관리가 용이하다.

○ 확장성을 위주로 만들어졌다.

○ JSTL, JSF 등 표준을 포함하여 버전업 되고 있다.

○ 여러 통합 개발 환경과 서드파티에서 Struts개발을 지원하고 있다

단점

○ Struts 프레임워크를 이해하는데 시간이 많이 걸린다.

○ 프레임워크를 이용해도 프로그램코드가 줄어드는 것은 아니다.

○ Struts 태그 라이브러리가 표준은 아니다.

○ 프레임워크의 변경이 잦다.

○ 규모가 커질수록 struts-config.xml이 방대해지고, 무수히 많은 액션클래스가 생긴다.

반응형

댓글