Description
애플리케이션 아키텍처 설계부터 프레임워크 제작까지 다룬 스프링 가이드북!
『토비의 스프링 3.1 세트』는 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 이르기까지 모두 참고할 수 있는 스프링 바이블이다. 단순한 예제를 스프링 3.0과 스프링 3.1의 기술을 적용하며 발전시켜 나가는 과정을 통해 스프링의 핵심 프로그래밍 모델인 IoC/DI, PSA, AOP의 원리와 이에 적용된 다양한 디자인 패턴, 프로그래밍 기법을 이해할 수 있다. 또한 XML 대신 자바코드를 이용해서 스프링을 개발할 수 있는 최신 빈 설정 기법부터 편리한 RESTful 스타일의 웹 컨트롤러 작성 기법까지 스프링 3.0과 스프링 3.1의 최신 기술을 상세하게 소개하고 그 중에서 자신에게 맞는 최적의 기술을 선택하고 조합할 수 있는 기준과 활용전략을 안내하였다.
저자

이일민

지은이:이일민
호주의IT서비스기업인이프릴의대표컨설턴트다.엔터프라이즈오픈소스커뮤니티인오픈시드의대표이며한국스프링사용자모임(KSUG)의공동설립자이기도하다.8비트컴퓨터시절프로그래밍의매력에빠져10여년간취미로프로그래밍을즐겨오다전문개발자의길로들어서서19년째소프트웨어개발과교육,컨설팅일을해오고있다.2004년부터스프링을이용해서기업과학교,인터넷서비스업체의시스템을개발해왔고스프링을기반으로한애플리케이션프레임워크제작컨설팅과스프링개발자교육을해오고있다.JCO컨퍼런스에서세차례스프링을주제로발표했고기묘,이프릴,KSUG등을통해스프링세미나를진행하기도했다.스프링과오픈소스기술에관련된정보와경험을공유하는블로그(toby.epril.com)를운영하고있다.

  

목차

『토비의스프링3.1Vol.1스프링의이해와원리』

1장오브젝트와의존관계
2장테스트
3장템플릿
4장예외
5장서비스추상화
6장AOP
7장스프링핵심기술의응용
8장스프링이란무엇인가?
9장스프링프로젝트시작하기
부록A스프링모듈
부록B스프링의존라이브러리

『토비의스프링3.1Vol.2스프링의기술과선택』

1장IoC컨테이너와DI
2장데이터액세스기술
3장스프링웹기술과스프링MVC
4장스프링@MVC
5장AOP와LTW
6장테스트컨텍스트프레임워크
7장스프링의기타기술과효과적인학습방법
부록A스프링모듈
부록B스프링의존라이브러리

출판사 서평

★이책에서다루는내용★

[Vol.1스프링의이해와원리]

★스프링의3대핵심기술인IoC/DI,PSA,AOP를빠르고효과적으로배울수있는실전예제중심의설명
개발현장에서매일만나는평범한자바코드를스프링의핵심기술을적용해서깔끔하고스프링다운코드로개선해나가는과정을상세하게보여줌으로써스프링의핵심원리와적용방법을이해할수있게해준다.

★자바언어와JDBC만알면누구라도따라할수있는58단계의상세한스프링애플리케이션핵심코드개발과정
자바초보개발자도부담없이따라할수있도록58단계로세분화된애플리케이션핵심코드개발과정과58개의예제프로젝트를제공해복잡한스프링의기술을차근차근학습해나갈수있게해준다.

★스프링3.0과스프링3.1의최신기술활용방법과업그레이드전략제시
스프링3.0과스프링3.1의최신기술을이용해서애플리케이션을개발할때필요로하는친절한가이드라인을제공해준다.스프링3.0으로개발된예제를스프링3.1의기술에맞게전환하는과정을상세하게보여준다.

★스프링애플리케이션아키텍처설계와스프링기반프레임워크제작을위한완벽가이드
스프링을이용한엔터프라이즈애플리케이션아키텍처작성을위한다양한아키텍처소개와전략분석,스프링을기반으로한사내프레임워크제작에꼭필요한스프링확장기법과원리를소개한다.


[Vol.2스프링의기술과선택]

★DIJ/JavaConfig,OXM,@MVC,SpEL,Task,REST등의스프링3.0의최신기술소개
JavaEE6의JSR-303과자바코드를이용한최첨단DI기술,XML매핑을위한OXM,기존MVC를완벽하게대체한강력한웹프레임워크인@MVC,스프링공식EL인SpEL,JSR-303(BeanValidation)과새로운컨버터와포매터활용방법,각종비동기작업을위한Task기능,REST템플릿사용법등스프링3.0의새로운기능을기존스프링기술과함께상세히소개한다.

★런타임추상화,프로파일,프로퍼티소스,캐시추상화,발전된@MVC,플래시맵등스프링3.1의최신기술소개
프로파일을이용한다이내믹한빈설정기술,통합된프로퍼티소스,더욱강력해진@MVC핸들러작성,플래시맵활용방법과AOP를이용한캐시추상화등스프링3.1의최신기술과달라진점을자세히소개한다.

★스프링기술선택을위한상세한기술비교,선택기준제시
같은기술에도수많은옵션을제공하는스프링의특성때문에기술선택에고민하는개발자를위해서스프링이제공하는다양한기술옵션을비교하고,환경에따른적절한선택을위한기준을제공해준다.

★@Enable빈설정모듈화기법소개
스프링3.1의최신자바코드빈설정기법을이용해서재사용가능한빈설정모듈을만드는방법을스프링3.1에적용된실전예를기준으로상세하게설명한다.

★스프링애플리케이션아키텍처설계와스프링기반프레임워크제작을위한완벽가이드
스프링을이용한엔터프라이즈애플리케이션아키텍처작성을위한다양한아키텍처소개와전략분석,스프링을기반으로한사내프레임워크제작에꼭필요한스프링확장기법을소개한다.


★이책의구성★

스프링이공개된지이미9년째이고많은개발자가스프링을사용해애플리케이션을개발해오고있다.그럼에도적지않은수의개발자들은스프링의핵심가치와혜택을충분히누리지못하는듯하다.스프링의가치를제대로누리며사용하려면스프링을제대로공부해야한다.스프링을효과적으로익히려면다음의세가지단계를통해스프링을학습해야한다.

▶스프링의핵심가치와원리에대한이해
▶스프링의기술에대한지식과선택기준정립
▶스프링의적용과확장

이책은이세가지단계를따라서스프링을공부하려는사람을대상으로쓰여진책으로,Vol.1에서는첫단계인'핵심가치와원리에대한이해'를중심으로하고,Vol.2에서는두번째단계인'스프링기술에대한지식과선택'을집중해서다룬다.세번째단계인확장에대해서는책의여러곳에서다양한전략과예제,힌트를제공한다.하지만본격적으로응용과확장에대한지식을쌓는일은독자들의몫이다.각자의상황에맞게처음두단계에서배운지식을응용해스프링을확장해보는훈련을해야한다.



의구성과예제



Vol.1에서는간단한예제를만들어가는과정을통해스프링의기본원리와핵심기술을설명한다.스프링은개발자가만드는코드가얹혀서동작하는프레임워크다.프레임워크의가장중요한목적은개발자가일정한틀을따라효과적으로애플리케이션을개발하도록돕는것이다.따라서프레임워크를잘이해하려면프레임워크를사용했을때애플리케이션코드가어떻게만들어지는지자세히살펴봐야한다.



Vol.1에서는각장마다스프링프레임워크를사용하지않고개발한단순한코드를먼저작성해보고,여러단계를거쳐최종적으로스프링프레임워크를활용한코드로발전시킨다.프레임워크를적용하지않았을때의코드와적용후의코드를비교하면서스프링프레임워크를사용하면어떤식으로코드가만들어져야하는지를설명한다.



Vol.1에서다루는내용은Vol.2에서본격적으로소개할스프링의다양한기술을이해하는데중요한기반이된다.스프링에적용된기본패턴과기반이되는원리를Vol.1에서설명하는순서에따라학습해두면이후에스프링의개별기술과API를익힐때많은도움이될것이다.



1장부터7장까지는사용자관리기능을구현하는하나의예제를만드는과정을단계적으로설명한다.예제는처음부터끝까지모두연결된다.코드를지속적으로개선하면서발전시키기때문에코드가계속바뀌고새로운클래스가추가되거나사라지기도한다.부록CD의예제들은각장에서코드가바뀌는주요절별로제공된다.가능하면Vol.1의예제는책의내용을참고해서직접따라해보기를권장한다.코드가만들어지고개선되고발전하는과정을직접체험하는것이Vol.1의내용을이해하는데가장좋은방법이다.



스프링3.1의새로운기술을다루는7.6절을제외한나머지모든예제는스프링3.0을기준으로사용할라이브러리를소개한다.모든내용은스프링3.1에서도동일하게적용되므로스프링3.1을이용해예제를작성해도무방하다.부록CD에는스프링3.0과3.1버전으로각각작성된Vol.1의예제프로젝트가담겨있다.







의구성과예제



Vol.2에서는스프링프레임워크를이용해애플리케이션을작성하는다양한방법을살펴보고,각방법의특징과장단점을설명한다.Vol.2는각장마다개별기술을독립적으로설명하므로원하는장부터살펴봐도상관없다.다만1장은스프링을이용해애플리케이션을만들때반드시알아야할애플리케이션구조와설정방법을설명하므로다른장으로넘어가기전에먼저살펴보기를권장한다.



Vol.2는스프링이제공하는기술의종류와특징,사용법에대한설명에집중하고,이를이용해서만들어지는애플리케이션코드의패턴과구조에관한내용은Vol.1에서자세히다루므로Vol.2에서다루지않는다.Vol.2의내용은Vol.1에서설명한내용을이해하고있다는전제하에작성됐다.스프링의개발기술내용을빠르게살펴보고싶다면Vol.1을보지않고Vol.2를먼저봐도되지만,가능한한Vol.1을먼저공부하고Vol.2의내용을보기를권장한다.



Vol.2의내용은대부분스프링3.0과스프링3.1버전에동일하게적용할수있다.스프링3.1에만적용되는내용은각장의마지막절에서따로설명한다.



Vol.2의예제코드는두가지로구성된다.



첫째는각장에서설명하는스프링기술의사용방법을담은학습테스트다.책에는설명에꼭필요한일정분량의코드만소개되어있다.각기술의사용방법을담은좀더다양한코드는부록CD에담긴learningtest프로젝트의학습테스트코드를참고하면된다.테스트코드이지만기술학습용으로작성됐으므로이를Vol.2의내용과함께살펴보면스프링기술의사용방법에대한아이디어를얻을수있을것이다.learningtest프로젝트는스프링3.0으로작성된것과스프링3.1로작성된것,두가지가제공된다.



둘째는스프링웹기술인스프링MVC를이용해만든웹애플리케이션예제인springusergroup프로젝트다.이프로젝트는서버에서동작하도록만들어진완전한애플리케이션이다.그렇다고이예제프로젝트를그대로가져다실전에서활용하면될것이라고기대해선안된다.프로젝트를구성할때참고하거나프로젝트의각기술영역에대한접근방법이자신의상황과일치한다면일부를활용할수는있겠지만,Vol.2에서줄곧설명하는대로아키텍처와계층구조,사용할기술,설정방법,각기술의접근방법은각자의상황과환경에맞게선택해야한다.springusergroup예제의목적은스프링MVC를사용한웹프레젠테이션계층의개발과이를다른계층과어떻게접목하는지에관한것임을기억하자.



예제프로젝트를설치하고사용하는방법은각프로젝트폴더의readme.txt파일을참고하면된다.모든예제프로젝트는JavaSE1.6과이클립스기반의STS(SpringSourceToolSuite)에서작성됐다.STS는http://www.springsource.com/products/sts에서다운로드받을수있다.



책의예제에사용한DB는MySQL5.1버전이다.하지만적절한JDBC드라이버를추가하고DB연결정보를수정해주면그밖의DB를사용해서예제를실행할수있다.DB를변경하는방법도프로젝트루트의readme.txt파일에나와있다.





[부록CD수록]



-이책에들어있는모든예제의소스코드

-스프링3.0과스프링3.1의기술활용법을보여주는학습테스트코드

-스프링@MVC를이용한웹애플리케이션프로젝트





★이책의대상독자★



이책은스프링을이용해서엔터프라이즈자바애플리케이션을개발하려는모든개발자를대상으로한다.이책을공부하기위해서는자바언어와JDBC를이용한DB프로그래밍,그리고기초적인웹개발지식이필요하다.Vol.2에는스프링외의서드파티프레임워크나JavaEE표준기술을스프링에통합해서사용하는내용이일부포함되어있다.이런내용을살펴볼때는관련기술에대한지식이추가로필요할수있다.





★스프링3.1의새로운기능★



스프링3.1에추가된주요한기능과특징은다음과같다.



강화된자바코드를이용한빈설정

스프링3.1은스프링3.0부터지원하기시작한자바코드를이용한빈설정방식을대폭확장해서스프링빈설정의거의모든영역으로확대했다.기존에XML로작성했던스프링설정정보를3.1에서는자바코드로대체할수있다.XML을전혀사용하지않고스프링애플리케이션을작성할수도있다.자바코드를이용한빈설정을위해다양한애노테이션이추가됐다.XML의전용커스텀태그를대체할수있는,@Enable로시작하는전용애노테이션도제공된다.



런타임환경추상화

스프링애플리케이션이실행되는런타임환경정보를추상화한환경오브젝트가컨테이너를통해제공된다.실