스프링 코딩 공작소 (스프링 MVC로 나만의 웹 애플리케이션을 만들어 보자!)

스프링 코딩 공작소 (스프링 MVC로 나만의 웹 애플리케이션을 만들어 보자!)

$38.00
Description
처음부터 끝까지
직접 만들어 보며 익히는 스프링 MVC!
스프링 MVC는 웹 애플리케이션 개발 전용 프레임워크로, 스프링에서 제공하는 많은 기능을 자유롭게 확장해 사용할 수 있으며 영역별로 개발할 수 있다는 장점이 있다. 책에서는 이러한 스프링 MVC를 이용해 도서 쇼핑몰을 처음부터 끝까지 직접 만들어 볼 수 있게 구성했다. 또한, MultipartFile, RESTful 웹 서비스, 스프링 웹 플로우, 스프링 시큐리티, Log4j 등을 사용하기 때문에 다양한 스프링 기능도 함께 익힐 수 있다. 책을 따라 실습하다 보면 스프링 MVC의 개념과 원리를 자연스레 익힐 수 있을 것이다. 스프링 MVC가 처음이거나 스프링 MVC로 직접 웹 애플리케이션을 만들어 보고 싶은 분에게 도움이 될 것이다.
저자

송미영

웹기반의관공서위기관리시스템,의학용어온라인평가시스템,중도탈락예방시스템,앱기반의전자동화및교육용게임및유니티를이용한가상현실콘텐츠를개발하는등다수의실무경험과자바,웹프로그래밍(JSP/PHP),스프링,안드로이드프로그래밍,유니티엔진,VR/AR프로그래밍등을강의했다.현재수원여자대학교교수로재직하면서컴퓨터비전,모바일게임,가상현실등을연구한다.캡스톤디자인프로젝트나경진대회,공모전등에서학생들이현장실무능력을쌓을수있도록도와주는지도교수이며,CATS(ComputerApplicationTechnologyStudy)동아리도운영하고있다.또한,다년간의현장실무개발과교육강의로얻은지식을독자에게이해하기쉽게전하고자집필에도힘쓰고있다.

목차

1장스프링과스프링MVC
1.1자바플랫폼개발프레임워크의대세,스프링
__1.1.1스프링이란?
__1.1.2꼭알아야할스프링의주요특징
1.2MVC패턴기반의웹프레임워크,스프링MVC
__1.2.1스프링MVC
__1.2.2스프링MVC의구성요소
1.3마치며

2장스프링MVC개발환경설정과맛보기예제
2.1스프링MVC애플리케이션개발환경설정
__2.1.1자바설치및환경설정하기
__2.1.2웹서버톰캣설치하기
__2.1.3통합개발환경이클립스설치하기
__2.1.4스프링개발을위한STS설치하기
2.2첫번째스프링MVC애플리케이션구현
__2.2.1프로젝트생성하기
__2.2.2프로젝트실행하기
2.3마치며

3장첫번째스프링MVC애플리케이션분석:‘도서쇼핑몰’시작페이지만들기
3.1스프링MVC의프로젝트구조
__3.1.1프로젝트구조
__3.1.2프로젝트실행과정
3.2환경설정파일살펴보기:web.xml
__3.2.1네임스페이스와스키마선언
__3.2.2루트컨텍스트설정
__3.2.3서블릿컨텍스트설정
3.3스프링MVC환경설정파일
__3.3.1루트컨텍스트파일살펴보기:root-context.xml
__3.3.2서블릿컨텍스트파일살펴보기:servlet-context.xml
3.4컨트롤러:HomeController.java
3.5뷰:hello.jsp
3.6메이븐환경설정파일:pom.xml
__3.6.1프로젝트정보:<project>
__3.6.2속성정보:<properties>
__3.6.3의존성라이브러리정보:<dependencies>
__3.6.4빌드정보:<build>
3.7[실습]도서쇼핑몰시작페이지만들기
__3.7.1시작페이지만들기
__3.7.2부트스트랩CSS를적용하여시작페이지만들기
__3.7.3프로젝트실행경로변경
3.8마치며

4장스프링MVC애플리케이션의계층적구조:‘도서쇼핑몰’계층적공통모듈만들기
4.1웹애플리케이션의계층적구조
__4.1.1계층적구조
__4.1.2계층적구조의구현과정
4.2도서쇼핑몰의계층적공통모듈만들기
__4.2.1도서쇼핑몰애플리케이션의계층적구조
__4.2.2[실습]도서기본정보가담긴도메인객체
__4.2.3[실습]도서정보를관리하는퍼시스턴스계층
__4.2.4[실습]요청한도서목록을반환하는서비스계층
__4.2.5[실습]MVC를담당하는프레젠테이션계층
__4.2.6[실습]실행결과확인하기
4.3마치며

5장컨트롤러구현:‘도서쇼핑몰’에서도서목록출력하기
5.1컨트롤러개요
__5.1.1컨트롤러
__5.1.2컨트롤러구현과정
5.2컨트롤러정의
__5.2.1@Controller를이용한컨트롤러정의
__5.2.2<context:component-scan>요소로컨트롤러등록
__5.2.3[실습]@Controller로컨트롤러를정의하여도서목록출력하기
5.3@RequestMapping을이용한요청매핑경로설정
__5.3.1컨트롤러에@RequestMapping적용
__5.3.2[실습]컨트롤러에@RequestMapping작성하기
__5.3.3메서드에@RequestMapping적용
__5.3.4[실습]메서드에@RequestMapping작성하기
__5.3.5메서드수준의@RequestMapping단순화
__5.3.6[실습]단순화한@RequestMapping사용하기
5.4요청처리메서드와모델유형
__5.4.1Model인터페이스를이용한메서드작성
__5.4.2ModelMap클래스를이용한메서드작성
__5.4.3ModelAndView클래스를사용한메서드작성
__5.4.4[실습]ModelAndView클래스를사용하여결과반환하기
5.5마치며

6장요청처리메서드의파라미터유형:다양한조건으로검색한도서목록출력하기
6.1경로변수와@PathVariable
__6.1.1경로변수의개요
__6.1.2@PathVariable을이용한경로변수처리
__6.1.3[실습]@PathVariable을이용하여도서분야와일치하는도서목록출력하기
6.2매트릭스변수와@MatrixVariable
__6.2.1매트릭스변수의개요
__6.2.2@MatrixVariable을이용한매트릭스변수처리
__6.2.3[실습]@MatrixVariable을이용하여매트릭스변수값과일치하는도서목록출력하기
6.3요청파라미터와@RequestParam
__6.3.1요청파라미터의개요
__6.3.2@RequestParam을이용한요청파라미터처리
__6.3.3[실습]@RequestParam을이용하여도서ID와일치하는도서의상세정보출력하기
6.4마치며

7장스프링폼태그:도서등록페이지만들기
7.1스프링폼태그개요
__7.1.1스프링폼태그
__7.1.2스프링폼태그사용법
__7.1.3[실습]스프링폼태그로도서등록페이지만들기
7.2@ModelAttribute를이용한데이터바인딩
__7.2.1요청처리메서드의매개변수에@ModelAttribute적용
__7.2.2메서드에@ModelAttribute적용
__7.2.3[실습]@ModelAttribute를이용하여새로운도서등록하기
7.3@InitBinder를이용한커스텀데이터바인딩
__7.3.1메서드에@InitBinder적용
__7.3.2폼파라미터의커스텀데이터바인딩
__7.3.3[실습]@InitBinder를이용하여커스텀데이터바인딩하기
7.4마치며

8장스프링시큐리티:로그인/로그아웃페이지만들기
8.1스프링시큐리티개요
__8.1.1스프링시큐리티
__8.1.2스프링시큐리티태그
8.2접근권한과사용자권한설정
__8.2.1접근권한을설정하는시큐리티태그
__8.2.2사용자권한을설정하는시큐리티태그
8.3뷰페이지에사용하는시큐리티태그
__8.3.1권한태그:<sec:authorize>
__8.3.2인증태그:<sec:authentication>
__8.3.3[실습]스프링시큐리티태그로도서등록페이지에접근권한설정하기
8.4로그인과로그아웃처리
__8.4.1<form-login>태그
__8.4.2<logout>태그
__8.4.3[실습]스프링시큐리티태그로로그인페이지구현하기
__8.4.4[실습]스프링시큐리티태그로로그아웃페이지구현하기
8.5마치며

9장파일업로드처리:이미지파일업로드하기
9.1파일업로드의개요
__9.1.1파일업로드
__9.1.2파일업로드를위한웹페이지
9.2MultipartFile을사용한파일업로드
__9.2.1MultipartFile인터페이스의개요
__9.2.2파일업로드유형
__9.2.3[실습]리소스를이용한도서이미지출력하기
__9.2.4[실습]도서이미지파일업로드하기
9.3마치며

10장예외처리:도서검색오류에대한예외처리하기
10.1예외처리의개요
__10.1.1예외처리
__10.1.2예외처리방법의종류
10.2@ResponseStatus를이용한HTTP상태코드기반예외처리
__10.2.1HTTP상태코드의개요
__10.2.2@ResponseStatus를이용한예외처리
__10.2.3[실습]@ResponseStatus를이용하여예외처리하기
10.3@ExceptionHandler를이용한컨트롤러기반예외처리
__10.3.1@ExceptionHandler를이용한예외처리
__10.3.2[실습]@ExceptionHandler를이용하여예외처리하기
10.4@ControllerAdvice를이용한전역예외처리
__10.4.1전역예외처리를위한@ControllerAdvice
__10.4.2[실습]@ControllerAdvice를이용하여예외처리하기
10.5마치며

11장로그기록:로그기록만들기
11.1Log4j개요
__11.1.1로깅유틸리티Log4j
__11.1.2Log4j의구조와로깅레벨
__11.1.3로그환경설정파일의구성
11.2인터셉터개요
__11.2.1인터셉터
__11.2.2인터셉터등록
11.3인터셉터를이용한로그기록
__11.3.1HandlerInterceptor를이용한로그기록
__11.3.2[실습]HandlerInterceptor를사용하여로그기록하기
__11.3.3[실습]파일로로그기록출력하기
__11.3.4HandlerInterceptorAdapter를사용한로그기록
__11.3.5[실습]HandlerInterceptorAdapter를사용하여로그기록하기
11.4마치며

12장다국어처리:도서등록페이지에서다국어페이지만들기
12.1다국어처리의개요
12.2MessageSource를이용한다국어처리
__12.2.1메시지리소스파일작성
__12.2.2MessageSource환경설정
__12.2.3뷰페이지에메시지출력
__12.2.4[실습]MessageSource를이용하여다국어처리하기
12.3LocaleResolver와LocaleChangeInterceptor를이용한다국어변경
__12.3.1LocaleResolver환경설정
__12.3.2LocaleChangeInterceptor를이용한로케일변경
__12.3.3[실습]LocaleResolver와LocaleChangeInterceptor를이용하여다국어변경하기
12.4마치며

13장유효성검사:도서등록페이지의오류메시지출력하기
13.1유효성검사의개요
__13.1.1유효성검사의유형
__13.1.2@Valid를이용한유효성검사
13.2JSR-380으로유효성검사
__13.2.1JSR-380애너테이션선언
__13.2.2@Valid를이용한유효성검사
__13.2.3<form:errors>태그로오류메시지출력
__13.2.4[실습]JSR-380을이용하여유효성검사하기
13.3사용자

출판사 서평

스프링MVC구조부터웹프로젝트제작까지
완벽히이해하고구현한다!

웹애플리케이션제작과정을그대로담았다!
‘MVC구조와공통모듈만들기→기본기능구현하기→고급기능구현하기’단계에맞춰웹애플리케이션의제작과정을시작부터끝까지담았다.그대로따라하며진행할수있게구성했으며,책을따라실습하다보면모든과정을자연스레익힐수있을것이다.

스프링의다양한기능을배우자!
프로젝트를진행하며MultipartFile,RESTful웹서비스,스프링웹플로등스프링의다양한기능도함께설명한다.또한,로그기록만들기,다국어페이지만들기,유효성검사하기,데이터베이스와연동하여CRUD처리하기까지직접구현하면서스프링을좀더깊이이해하고활용할수있다.

3단계로학습한다!
스프링을처음배우는독자도학습할수있도록장마다개념을설명한후기본예제로사용법을익히고,앞에서배운개념을반영해웹애플리케이션에직접적용해볼수있도록구성했다.‘개념설명→기본예제→실습’단계로구성하여스프링에익숙하지않은독자가반복하여학습할수있게도와준다.

[베타테스터후기]
애플리케이션을MVC패턴으로구성하여Model,View,Controller의역할을명확히나누어수행하는내용을학습할수있었습니다.또한log4j.xml파일의설정시작부터라이브러리사이의의존성관리도배울수있어좋았습니다.스프링을빠르게익히고싶다면이책으로도움을얻을수있을것입니다.
이승표|게임서버프로그래머

서비스규모가커지면스프링으로바꾸는경우가많습니다.스프링생태계자료가풍부하고시스템이안정적이기때문이죠.이책은스프링MVC를활용하여도서쇼핑몰을만듭니다.윈도기반에서이클립스를활용하여구축하지만저는Mac과인텔리제이를사용해서실습을진행했습니다.실습하는데특별히문제는없었고톰캣과filepath설정등만바꾸어서진행했습니다.책은시작부터스프링을설명하기때문에자바언어공부는따로해야합니다.스프링MVC핵심로직도친절하게설명하기때문에전반적인개념을잡는데좋습니다.
황시연|백엔드개발자

개발시작전핵심스프링개념을설명하고한번더복습할수있도록구성되어있습니다.개발에대한이해가높아지도록책구성을만들었다는점에서매우좋았으며,독자로서공부하기도쉬웠습니다.또한3년차개발자로서누가설정해놓은개발환경에그저코드만짜기일쑤였는데,이책을보면서개발환경의이코드는어떤역할을하는지,왜필요한지등을알게되어스프링원리를깊게이해할수있었습니다.갓입사한신입보다는저처럼개발경력은조금있지만정확하게원리를이해하고싶거나,처음부터끝까지프로그램을만들고싶은사람에게좋은길잡이가될것입니다.특히실습을따라가다보면놓칠수있는내용을세세하게설명하고있어오류가발생할상황을많이줄여주는것같습니다.주니어개발자에게추천하고싶습니다.
강솔|자이트솔루션

이책은스프링MVC로스프링프레임워크에서지원되는다양한기술(스프링폼태그,스프링시큐리티,파일업로드,예외처리,로그기록,다국어처리,유효성검사,RESTful,spring-webflow,tiles,데이터베이스연동)을사용하여도서쇼핑몰을단계별로구현해나가는것에중점을둡니다.
스프링프레임워크는XML설정이매우중요한데,XML설정에상당부분을할애하여XML설정에대한이해를도와줍니다.스프링부트를사용하지않는순수스프링프레임워크는간편설정을제공하지않기때문에필요한라이브러리를pom.xml에모두추가하여개발환경을구성해야합니다.직접라이브러리사이의의존관계는물론버전별호환성도세세하게신경써야합니다.그렇게하지않으면라이브러리사이의의존관계가꼬이거나호환성문제로빌드되지않거나애플리케이션이비정상적으로동작할수있습니다.또한스프링프레임워크를사용하는데필요한설정들은XML기반으로servlet-context.xml,root-context.xml,security-context.xml,web.xml등XML설정파일을직접설정해야합니다.톰캣도내장된톰캣이없으므로직접톰캣을내려받아환경설정에추가하고해당톰캣으로빌드된WAR파일로구동되도록설정해야합니다.
이렇듯불편함을감수하면서개발해야하지만,그동안스프링부트의편리함과익숙함에묻혀스프링프레임워크에대해잘몰랐던부분들을직접설정하고경험하면서많은부분을알수있었습니다.스프링부트로개발할때보다신경써야할부분이매우많지만,스프링MVC로처음개발하는사람에게는스프링프레임워크를더깊이이해할수있는기회가될것입니다.
권민승|백엔드개발자