복잡한 웹 애플리케이션 아키텍처의 해결사, 스트럿츠!
스트럿츠(Struts)는 “지지대”라는 의미로서, 잘 정의된 아키텍처를 적용해 효율적인 중대형 웹 애플리케이션 개발을 지원하기 위한 MVC(모델 2 프로그래밍) 기반 오픈소스 프레임워크이다.
서블릿과 JSP로 웹 애플리케이션을 구축할 수 있게 해주는 Struts 프레임워크가 개발자들 사이에서 인기가 급상승하자 개발자들은 복잡한 웹 애플리케이션을 작성하는데 반드시 필요한 정보를 가장 기본적인 기능에만 초점을 맞춘 온라인 문서에만 의존할 수 없게 되었다. 저자인 처크 캐버네스(Chuck Cavaness)는 자신이 근무하는 인터넷 기업에서 프레임워크를 채택한 이후, 프레임워크의 잠재력을 최대한 이용할 수 있는 방법에 골몰하면서 몇 달을 보내게 되었는데, 이때 이 책을 집필하게 되었다고 한다.
한마디로 “애플리케이션을 구축하면서 힘겹게 터득한 교훈을 집대성한 책”이라고 할 수 있다.
이 책은 웹의 역사를 거슬러 올라가면서 스트럿츠 프레임워크가 어떻게 생겨났고 그 개념이 무엇인가에 대해 설명한다. 또한 초보자에게 중요한, 스트럿츠를 사용하기 위한 환경 설정과 스트럿츠의 각 컴포넌트(M, V, C), 스트럿츠의 국제화, 로깅, 패키징, 성능 등을 자세히 다룬다. 2003년 4월 현재의 최신 버전인 1.1 버전에 맞추어 기술하고 있다.
[ 주요내용 ]
1장. 소개
스트럿츠 프레임워크를 살펴보기 앞서 웹, 서블릿, JSP에 대한 간단한 소개와 함께 최근 대두되고 있는 JSP 모델 1과 모델 2 그리고 스트럿츠 프레임워크의 개발 배경을 간단하게 살펴본다.
2장. 웹 계층 들여다보기
웹이란 무엇이며 웹의 기반이 되는 HTTP 프로토콜의 구조를 살펴본다. 이어서 웹에서 스트럿츠 프레임워크가 어떠한 자리를 차지할 것이며 그 영향력이 미치는 범위를 알아본다.
3장. 스트럿츠 프레임워크의 개요
세부적인 스트럿츠 프레임워크를 살펴보기 앞서 스트럿츠 아키텍처의 흐름을 알아보고 모델-뷰-컨트롤러 컴포넌트별로 스트럿츠에서 어떠한 기능을 제공하는지 알아보고 간단한 예제를 살펴본다. 스트럿츠를 본격적으로 접하는 첫 번째 장이다.
4장. 스트럿츠 애플리케이션 설정하기
스트럿츠를 어떻게 설치하며 어떻게 설정하면 되는가에 대해서 간략히 살펴본다. 이 책에서 계속해서 설명하게 될 예제 애플리케이션에 대한 설명도 덧붙여진다. 장 후반부에서는 스트럿츠 설정 파일을 쉽게 작성할 수 있는 방법도 간단히 살펴본다.
5장. 스트럿츠 컨트롤러 컴포넌트
스트럿츠 컨트롤러 컴포넌트의 메커니즘을 심도 있게 살펴본다. 어찌 보면 스트럿츠 프레임워크의 존재 이유가 컨트롤러 컴포넌트라고도 할 수 있다. 스트럿츠는 프리젠테이션 레이어와 모델 레이어의 중개자 역할을 하는 컴포넌트로써 강력한 기능을 제공한다.
6장. 스트럿츠 모델 컴포넌트
모델-뷰-컴포넌트 구조에서 모델의 역할과 스트럿츠에서 모델 컴포넌트를 위해 제공하는 기능들을 살펴본다.
7장. 스트럿츠 뷰 컴포넌트
뷰 컴포넌트를 지원하는 스트럿츠의 기능들을 살펴보고 버전 1.1에서 새롭게 추가한 DynaActionForm에 대해서도 알아본다. 더불어 새로운 프리젠테이션 기술로 떠오르고 있는 자바서버 페이스(JavaServer Faces)에 대해서도 간략히 설명한다.
8장. JSP 커스텀 태그 라이브러리
‘7장 스트럿츠 뷰 컴포넌트’에서 설명했던 기능들과 밀접한 관련이 있는 자바서버 페이지 커스텀 태그라이브러리와 스트럿츠에서 제공하는 태그 라이브러리들을 살펴본다.
9장. 스트럿츠 프레임워크 확장하기
실제 웹 애플리케이션을 스트럿츠 프레임워크 기반으로 구축하면서 필요할 수 있는 스트럿츠 프레임워크의 확장에 대해서 살펴본다. 단순히 스트럿츠를 사용하는 데만 그치는 것이 아니라 어떻게 하면 좀더 응용 및 확장이 가능한지에 대한 가이드를 제공한다.
10장. 예외 처리
스트럿츠 기반 웹 애플리케이션을 개발하는 데 있어 스트럿츠 프레임워크에서 제공하는 몇 가지 예외 처리 방법을 설명한다.
11장. Validator 프레임워크
ActionForm에서 유효성 검사를 더 편리하게 할 수 있도록 제공되는 Validator 프레임워크를 살펴본다. Validator는 개별적인 ActionForm마다 유효성 검사를 해야 하는 작업을 덜어준다.
12장. 국제화와 스트럿츠
모두라고 말할 수는 없지만 대한민국 개발자나 웹 기획자들은 웹 사이트를 구축함에 있어 국제화 지원에 대해서 이제까지 큰 고민을 하지 않았다. 그러나 웹 사이트에서 다국어 지원 등은 점점 더 보편화되어가는 추세다. 이 장에서는 스트럿츠 프레임워크에서 제공하는 국제화 지원 기능들을 살펴본다.
13장. 스트럿츠와 엔터프라이즈 자바빈즈
스트럿츠와 엔터프라이즈 자바빈즈를 함께 사용하는 방법을 알아본다. 웹 애플리케이션에서 모델 컴포넌트는 EJB에 위임하고 뷰와 컨트롤러 역할은 스트럿츠가 전담하여 사용하는 방식의 아키텍처를 살펴본다.
14장. 타일즈 사용하기
웹 사이트의 레이아웃 관리를 좀더 손쉽게 만들어 주는 타일즈(Tiles) 프레임워크를 알아본다. 타일즈는 스트럿츠와 함께 사용할 수도 있고 단독으로도 사용할 수 있다. 잘 사용하면 매우 유용한 프레임워크가 될 것이다.
15장. 스트럿츠 애플리케이션에서의 로깅
개발 시 유용한 로깅 기능을 위해 스트럿츠에서 제공하는 로깅 API를 살펴본다. 스트럿츠는 자카르타의 서브 프로젝트인 Commons의 로깅 기능을 사용하고 있다. 한편 또 다른 자카르타의 로깅 관련 서브 프로젝트인 log4j의 사용법도 알아본다.
16장. 스트럿츠 애플리케이션 패키징
완성된 스트럿츠 어플리케이션을 어떤 방식으로 배포하고 배치할 것인가에 대해서 살펴본다. 더불어 여러 모로 편리한 도구인 Ant를 사용하여 빌드하는 방법도 알아본다.
[ 대상층 ]
- JSP 모델 2 또는 MVC 개발 방식을 도입하려는 자바 웹 설계자
- 기존 웹 개발에서 하드코딩과 잦은 수정에 밤낮으로 지쳐온 자바 웹 개발자
- Servlet/JSP 등을 익히고 더 잘 구조화되고 검증된 모델 및 신기술을 배우고자 하는 초보 웹 개발자