이책은스트럿츠2가추구하는직관성과간결함의철학을따른다.웹애플리케이션을개발할때꼭알아야할가장기본적인웹의작동원리를설명하며,초보웹개발자가프레임워크의윤곽을어렵지않게파악하도록도와준다.이번개정판에서는스트럿츠2.3버전에맞춰내용을개정했으며,최신트렌드를위한Ajax,JSON,RESTful웹서비스에대한내용을반영했다.표준기반의웹애플리케이션개발을위한예제를새롭게구성했으며,고급웹개발을위해스트럿츠2의아키텍처에대한자세한설명과현실무에서가장많이사용되는데이터베이스프로그래밍에대한내용을보충했다.
결하지만강한심장을가진자바웹개발프레임워크의표준
-직관적이고진보적인웹애플리케이션프레임워크
-간편한개발환경구축,수월한개발,뛰어난확장성
-모바일환경과친밀하게연동할수있는레스트풀서비스지원
자바웹애플리케이션전문개발프레임워크인스트럿츠2는MVC아키텍처기반의개발과오픈소스프레임워크의정착을이끌었다.
스트럿츠2의목적은직관적인개발,따라서더욱쉽고,빠르고,안정적인웹애플리케이션개발을하자는것이다.이를위해오픈소스의베스트프랙티스를주저함없이받아들이는오픈마인드를실현하고있다.스트럿츠2는여전히발전하고있으며최근모바일환경과오픈API환경을쉽게지원할수있도록레스트서비스를보강하고있다.POJO기반의엔터프라이즈서비스를지원하는애플리케이션을쉽게만들고싶다면스트럿츠2의간결함을철학으로하는아키텍처와플러그인형식으로접목할수있는다양한오픈소스프레임워크를지원하는특징과자바웹개발초보자라도쉽게접근할수있도록최소화한설정기능은더욱큰매력으로다가올것이다.
이책은개발환경구축부터스트럿츠2의주요아키텍처까지충분한설명을하고있으며,많은예제를통해스스로깨달을수있도록구성하였다.이책을읽고스트럿츠2만을배우는것이아니라웹개발에대한기초를닦을수있도록힘썼다.이번개정판에서는최신트렌드를위한Ajax,JSON,RESTful웹서비스에대한내용을반영했다.표준기반의웹애플리케이션개발을위한예제를새롭게구성했고,또한고급웹개발을위하여스트럿츠2의아키텍처에대한자세한설명과현실무에서가장많이사용되는데이터베이스프로그래밍에대한내용을보충했다.퍼시스턴스레이어를구성하는방법,순수JDBC프로그래밍뿐만아니라스프링과아이바티스프레임워크을스트럿츠2에서연동하는방법을소개하고있어,프로젝트개발에직접적인도움을줄수있는내용을포함하고있다.
개정판에서달라진점
스트럿츠2가2.1.x버전에이르러적지않은변화를맞이함에따라,초판에서소개한예제들이제대로실행되지않는경우가발생했다.이는스트럿츠2를새롭게배우려는분들과이미초판을통해스트럿츠2를이용하는분들에게걸림돌이됐다.
스트럿츠2의새로운버전에서달라진점과2.0.x버전에서2.1.x버전으로업그레이드하는방법의전체적인윤곽을알아보려면,부록C‘스트럿츠2의버전업데이트’에서설명하고있으니꼭읽어보길바란다.
초판에서는스트럿츠2에직접적으로관련이없는내용은과감하게생략했다.그러나개정판에서는최대한실무와가까운환경에서스트럿츠2를이용한웹애플리케이션개발방법을함께배울수있게도움을주고자했다.
첫째,새로운버전의기능을문제없이적용할수있도록책전반에걸쳐변경된내용을수정했다.
둘째,초판에서스트럿츠2의기능을배우고스트럿츠2태그의사용법을자연스럽게알아갈수있도록구성했던예제들을최대한그대로사용했지만,화면을구성할때표준기반으로작업할수있도록EL과JSTL을사용해화면을구성하는방법을예제마다별도로소개한다.웹애플리케이션을개발하는사람이라면EL과JSTL관련지식이꼭필요하기때문에좀더체계적인학습을위해부록에EL과JSTL사용법을추가해뒀으니좋은참고자료가되길바란다.
셋째,새롭게추가된여러플러그인중유용한것을선별해소개한다.애노테이션을이용해설정을최소화하는방법과응답을JSON형식으로쉽게변환할수있는JSON플러그인등을추가로소개하고있다.
네번째변화는좀더활용적인측면에중점을두었다.실무에서널리사용하는기술을다뤄보고,각기술의기본적인개념을이해할수있게집약적인자료를소개하고있다.
또한스트럿츠2와스프링프레임워크의연동을위해스프링프레임워크를사용하는이유와핵심개념을간략하게다뤘다.
그리고최근모바일웹이핫이슈가되는상황에서레스트풀(RESTful)웹서비스의사용이매우적절한통신방식으로떠오르고있다.레스트풀웹서비스를쉽게이해할수있게기본적인개념을소개하며,스트럿츠2를이용해레스트풀웹서비스를개발하는방법을설명한다.
웹애플리케이션은결국동적인데이터를처리하는것이목적이므로,가장많이사용하는데이터베이스액세스방법을기초적인부분부터차근히소개하여오픈소스프레임워크를연동해효율적으로개발할수있게한다.서비스계층과데이터액세스계층의설계방법과JDBCAPI를이용한서비스계층과데이터액세스계층구성방법,그리고아이바티스,스프링프레임워크를함께사용해진보된형식의아키텍처를이용한각계층의구성방법도소개한다.SQL매퍼프레임워크인아이바티스를설명하고,스프링을이용한선언적트랜잭션처리를위한AOP의개념도소개한다.
실무에가까운주제를다루면내용이제법무거워질수있기때문에최대한간결함을유지하고자노력했고,스트럿츠2뿐만아니라웹애플리케이션을개발할때필요한개념을익힐수있는기회를만들어보려노력했다.
이책에서다루는내용
■스트럿츠2개발환경구축
■웹개발기본개념
■스트럿츠2의기본핵심개념:액션,리절트,인터셉터
■표준기반의웹개발을위한스트럿츠2활용방법(예제포함)
■스트럿츠2의핵심아키텍처
■스트럿츠2와데이터베이스연동(스프링,아이바티스연동)
■Ajax활용방법
■RESTful웹서비스
■파일처리,유효성검사,국제화
■스트럿츠2태그레퍼런스
■다양한플러그인사용법
예제파일
<스트럿츠2예제프로젝트>
-기본출력(문자열,객체값,리스트형식의데이터)
-기본입출력(문자열,객체값,날짜형식데이터등)
-어노테이션을이용한개발(액션,리절트정의생략가능)
-Ajax
-스트럿츠2기본태그라이브러리이용
-파일업로드,다운로드
-유효성검사
-국제화
-JDBC프로그래밍
?스프링/아이바티스(iBatis)연동
-플러그인(JSON,REST,Sitemesh,JasperReport등)
-예외처리
-스트럿츠2태그레퍼런스예제
이책의대상독자
이책의독자는이미다양한분야와기술에익숙한사람일수도,첫입문자일수도있다.자신의관심사항에맞도록1부에서는기초적인내용을위주로,2부부터는심화된내용으로구성했다.
자바웹프로그래밍을경험해본독자라면예제를통해스트럿츠2로웹애플리케이션을개발하는방법을학습하는데큰어려움이없을것이다.스트럿츠2를배우기위해기타다른프레임워크또는스트럿츠1에대한선지식이필요하지않다.스트럿츠2는스트럿츠1의업그레이드버전이아닌새로운아키텍처를기반으로하고있기때문이다.
이책의구성
이책의1부는초보개발자라도스트럿츠2를사용해쉽게웹애플리케이션을개발할수있도록구성했다.스트럿츠2의아키텍처를깊이이해하고있지못하더라도예제를실습하다보면스트럿츠2의기본적인개념을자연스럽게익힐수있다.
2부는스트럿츠2의아키텍처를자세하게다룬다.1부를통해스트럿츠2의기본적인사용법을익혔더라도,이를충분히활용하려면스트럿츠2의내부아키텍처를이해해야한다.2부를통해스트럿츠2가내부적으로어떻게동작하는지자세하게알아볼수있다.
3부는스트럿츠2를활용하는기술에대해다룬다.국제화를지원하는웹애플리케이션을만드는법,다른유용한오픈소스를플러그인방식으로스트럿츠2와함께활용할수있는방법과스트럿츠2프레임워크와데이터베이스와연동하는방법을소개하고,스트럿츠2의태그라이브러리사용법을살펴볼것이다.
끝으로4부는부록으로서,이책에서제공하는예제를실습하는데필요한개발환경을구축하는방법과국제화지원을위한국가별ISO-639-1코드,스트럿츠2새로운버전의업데이트내용과,표준기반의작업에도움을주기위해EL과JSTL의사용법을요약식으로정리했다.스트럿츠2애플리케이션을개발하는데도움이될것이다.
이책을읽는독자중에는다양한분야와기술에이미익숙한사람도있고,이제막자바웹애플리케이션개발의첫걸음을뗀새내기도있을것이다.각자의관심사항에맞게책을읽어나갈수있게1부에서는기초적인내용위주로다뤘고,2부부터는심화된내용을학습할수있도록구성했다.
저자서문
초기혼돈스러웠던웹개발시절스트럿츠1을처음접하고웹애플리케이션개발에대한훌륭한가이드를제공받으며,이전에는크게흥미를느끼지못했던오픈소스에대한관심이커졌다.이후여러오픈소스를접하며그들의막강한기능과가능성에눈을뜨기시작했다.
세계곳곳의열정적인개발자와커뮤니티의활동을통해다양하고유용한오픈소스프레임워크가탄생하고,실제시스템개발에큰도움을주고있다.심지어상용벤더도이러한오픈소스프레임워크를상용솔루션에포함시킬정도로그기능과신뢰가더욱두터워졌다.
웹개발의새로운기준을마련하기위해스트럿츠2는스트럿츠1의모습을과감히탈피하고,여러유용한프레임워크의장점을흡수했다.또한스트럿츠2는개발자의의도대로직관적으로개발할수있는쉬운사용법을제공하며,복잡하고반복적인처리는프레임워크가떠안을수있게한다.
스트럿츠2를이용한프로그래밍은간단하고명료해서좋다.
“복잡한처리를위한아키텍처는프레임워크가모두책임질테니,개발자는편안하고쉽게작업하라.”이것이스트럿츠2의철학이아닐까하는생각이든다.이책을읽는여러분은기존의모습과확연히달라진새로운웹애플리케이션개발프레임워크인스트럿츠2의흥미로움에매료될것이다.스트럿츠2는단순하고편리하게개발할수있는환경을제공해주는반면,프레임워크를사용하면서도프레임워크에종속되지않는자유로움을느낄수있는개발을배려하고있다.스트럿츠2는아키텍처의모습에서도많은매력을지니고있지만실제개발을접할때진정그장점을느낄수있다.
-현철주