-
스트럿츠2 프레임워크란 ?DEV/Struts 2021. 1. 21. 12:00
스트럿츠는 아파치 프로젝트의 일부로 진행되고 있는 MVC모델에 기반한 웹 프레임워크
- 웹 MVC 프레임워크
- WebWork 프레임워크 기반
특징
- 프론트 컨트롤러 타입 ( 모든 요청을 받아 공통 처리 실행하는 컨트롤러) MVC 프레임워크
- 브라우저의 요청을 프론트 컨트롤러가 받아서 공통처리 시행
- 개별처리와 뷰를 호출
- 스트럿츠 1과 차이점
- 스트럿츠1에서는 개별처리 액션을 하려면 Action클래스를 상속해야함
- 스트럿츠2에서는 POJO로 작성 가능
- ActionForm이 필요없어져 사라졌다 (Action 클래스에서 저장)
- 설정 파일 사용안함, CoC나 애노테이션을 활용한 Zero Configuration에서 개발 가능
기능
- struts.xml 파일에 저장되는 구성 가능한 MVC 구성 요소. 무엇이든 변경하고 싶다면 xml 파일에서 쉽게 할 수 있음
- POJO 기반 작업. Struts 2 액션 클래스는 Plain Old Java Object로 개발자가 인터페이스를 구현하거나 클래스를 상속하는 것을 방지
- 비동기 요청을 만드는 데 사용되는 Ajax 지원. 불필요한 정보를 제공하지 않고 필요한 필드 데이터 만 전송하므로 성능이 향상
- Hibernate, Spring, Tiles 등과의 통합 지원
- JSP, freemarker, velocity 또는 기타 어떤 것을 사용하든 관계없이 Struts 2에서 다양한 종류의 결과 유형을 사용할 수 있음
- UI 태그, 데이터 태그, 제어 태그 등과 같은 다양한 태그를 활용가능
- 테마 및 템플릿에 대한 충분한 지원을 제공. Struts 2는 xhtml, simple 및 css_xhtml을 포함한 세 가지 다른 종류의 테마를 지원
구성
1. StrutsPrepareAndExecuteFilter
- 브라우저로 부터 요청을 받아 개별 처리와 뷰를 호출
2. Interceptors
- 복수의 요청에 대해 공통 처리
- 인증, 로깅 등
- 내장된것을 사용하거나 개발자가 직접 작성
3. Action
- 요청별로 개별 처리
4. Result
- 뷰 종류 (JSP, Velocity..)와 관련 속성(JSP파일경로) 등 관리
- 뷰 표시하는 역할
- 액션 처리 후 Result로 이동
5. Context Map
- 뷰에서 액세스할 데이터가 저장
- 액션 처리에서 얻은 model과 HttpServletRequest 같은 서블릿 관련 오브젝트가 저장
6. OGNL
- Context Map 안의 데이터에서 엑세스 할 때 사용하는 식 언어
- JSP가 지원하는 EL과 같다
- 데이터 액세스 또는 사칙연산, 비교연산 가능
7. Struts-Tags
- 뷰에 기술할 태그
- HTML을 효율적으로 렌더링
장점
- 단순화 된 디자인
- 플러그인 사용 용이성
- 단순화 된 ActionForm 및 주석
- 훨씬 더 나은 태그 기능
- OGNL 통합
- AJAX 지원
- 다양한보기 옵션
단점
- 호환성 문제, 잘못된 문서
스트럿츠와 비교한 Spring MVC
장점
- Struts에서 불가능한 컨트롤러, JavaBeans 모델 및 뷰 간의 명확한 분리
- Spring MVC는 Struts에 비해 더 유연함
- Spring은 Velocity, XLST 또는 다양한 다른 뷰 기술과 같은 다양한 플랫폼과 함께 사용할 수 있음
- Spring의 ActionForm과 같은 것은 없지만 도메인 객체에 직접 바인딩
- 코드는 Struts에 비해 더 테스트하기 쉬움
- 7 개의 독립 계층으로 구성된 완전한 J2EE 프레임 워크로 다른 프레임 워크와의 통합을 단순화
단점
- 프레임워크의 복잡성
'DEV > Struts' 카테고리의 다른 글
스트럿츠2.5 기본 환경설정 및 MVC구현 (1) 2021.01.21