스프링 코딩 공작소
스프링 MVC로 나만의 웹 애플리케이션을 만들어 보자!
Regular price
$42.70
Sale price
Regular price
✈️
Estimated delivery date 예상 배송일
Standard Shipping
불러오는 중...
주문일로부터 8-12 영업일
Express Shipping
불러오는 중...
주문일로부터 6-8 영업일
처음부터 끝까지
직접 만들어 보며 익히는 스프링 MVC!
스프링 MVC는 웹 애플리케이션 개발 전용 프레임워크로, 스프링에서 제공하는 많은 기능을 자유롭게 확장해 사용할 수 있으며 영역별로 개발할 수 있다는 장점이 있다. 책에서는 이러한 스프링 MVC를 이용해 도서 쇼핑몰을 처음부터 끝까지 직접 만들어 볼 수 있게 구성했다. 또한, MultipartFile, RESTful 웹 서비스, 스프링 웹 플로우, 스프링 시큐리티, Log4j 등을 사용하기 때문에 다양한 스프링 기능도 함께 익힐 수 있다. 책을 따라 실습하다 보면 스프링 MVC의 개념과 원리를 자연스레 익힐 수 있을 것이다. 스프링 MVC가 처음이거나 스프링 MVC로 직접 웹 애플리케이션을 만들어 보고 싶은 분에게 도움이 될 것이다.
직접 만들어 보며 익히는 스프링 MVC!
스프링 MVC는 웹 애플리케이션 개발 전용 프레임워크로, 스프링에서 제공하는 많은 기능을 자유롭게 확장해 사용할 수 있으며 영역별로 개발할 수 있다는 장점이 있다. 책에서는 이러한 스프링 MVC를 이용해 도서 쇼핑몰을 처음부터 끝까지 직접 만들어 볼 수 있게 구성했다. 또한, MultipartFile, RESTful 웹 서비스, 스프링 웹 플로우, 스프링 시큐리티, Log4j 등을 사용하기 때문에 다양한 스프링 기능도 함께 익힐 수 있다. 책을 따라 실습하다 보면 스프링 MVC의 개념과 원리를 자연스레 익힐 수 있을 것이다. 스프링 MVC가 처음이거나 스프링 MVC로 직접 웹 애플리케이션을 만들어 보고 싶은 분에게 도움이 될 것이다.
Couldn't load pickup availability
출판사 리뷰
출판사 리뷰
스프링 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로 처음 개발하는 사람에게는 스프링 프레임워크를 더 깊이 이해할 수 있는 기회가 될 것입니다.
권민승 | 백엔드 개발자
완벽히 이해하고 구현한다!
웹 애플리케이션 제작 과정을 그대로 담았다!
'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로 처음 개발하는 사람에게는 스프링 프레임워크를 더 깊이 이해할 수 있는 기회가 될 것입니다.
권민승 | 백엔드 개발자
목차
목차
1장 스프링과 스프링 MVC
1.1 자바 플랫폼 개발 프레임워크의 대세, 스프링
__1.1.1 스프링이란?
__1.1.2 꼭 알아야 할 스프링의 주요 특징
1.2 MVC 패턴 기반의 웹 프레임워크, 스프링 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.1 Model 인터페이스를 이용한 메서드 작성
__5.4.2 ModelMap 클래스를 이용한 메서드 작성
__5.4.3 ModelAndView 클래스를 사용한 메서드 작성
__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.2 MultipartFile을 사용한 파일 업로드
__9.2.1 MultipartFile 인터페이스의 개요
__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.1 HTTP 상태 코드의 개요
__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.1 Log4j 개요
__11.1.1 로깅 유틸리티 Log4j
__11.1.2 Log4j의 구조와 로깅 레벨
__11.1.3 로그 환경 설정 파일의 구성
11.2 인터셉터 개요
__11.2.1 인터셉터
__11.2.2 인터셉터 등록
11.3 인터셉터를 이용한 로그 기록
__11.3.1 HandlerInterceptor를 이용한 로그 기록
__11.3.2 [실습] HandlerInterceptor를 사용하여 로그 기록하기
__11.3.3 [실습] 파일로 로그 기록 출력하기
__11.3.4 HandlerInterceptorAdapter를 사용한 로그 기록
__11.3.5 [실습] HandlerInterceptorAdapter를 사용하여 로그 기록하기
11.4 마치며
12장 다국어 처리: 도서 등록 페이지에서 다국어 페이지 만들기
12.1 다국어 처리의 개요
12.2 MessageSource를 이용한 다국어 처리
__12.2.1 메시지 리소스 파일 작성
__12.2.2 MessageSource 환경 설정
__12.2.3 뷰 페이지에 메시지 출력
__12.2.4 [실습] MessageSource를 이용하여 다국어 처리하기
12.3 LocaleResolver와 LocaleChangeInterceptor를 이용한 다국어 변경
__12.3.1 LocaleResolver 환경 설정
__12.3.2 LocaleChangeInterceptor를 이용한 로케일 변경
__12.3.3 [실습] LocaleResolver와 LocaleChangeInterceptor를 이용하여 다국어 변경하기
12.4 마치며
13장 유효성 검사: 도서 등록 페이지의 오류 메시지출력하기
13.1 유효성 검사의 개요
__13.1.1 유효성 검사의 유형
__13.1.2 @Valid를 이용한 유효성 검사
13.2 JSR-380으로 유효성 검사
__13.2.1 JSR-380 애너테이션 선언
__13.2.2 @Valid를 이용한 유효성 검사
__13.2.3 <form:errors> 태그로 오류 메시지 출력
__13.2.4 [실습] JSR-380을 이용하여 유효성 검사하기
13.3 사용자 정의 애너테이션으로 유효성 검사
__13.3.1 사용자 정의 애너테이션 생성
__13.3.2 ConstraintValidator 인터페이스의 구현체 생성
__13.3.3 [실습] 사용자 정의 애너테이션을 이용하여 유효성 검사하기
13.4 Validator 인터페이스로 유효성 검사
__13.4.1 유효성 검사 과정
__13.4.2 Validator 인터페이스의 구현체 생성
__13.4.3 @InitBinder를 선언한 메서드 추가
__13.4.4 [실습] Validator 인터페이스를 사용하여 유효성 검사하기
__13.4.5 [실습] Validator 인터페이스와 JSR-380을 연동해서 유효성 검사하기
13.5 마치며
14장 RESTful 웹 서비스: 장바구니 페이지 만들기
14.1 RESTful 웹 서비스의 개요
14.2 RESTful 방식의 애너테이션
__14.2.1 @RequestBody
__14.2.2 @ResponseBody
__14.2.3 @RestController
__14.2.4 [실습] RESTful 방식의 장바구니 기본 구조 만들기
14.3 RESTful 웹 서비스의 CRUD
__14.3.1 [실습] RESTful 웹 서비스를 위한 장바구니 CRUD 만들기
14.4 마치며
15장 스프링 웹 플로우: 주문 처리 페이지 만들기
15.1 웹 플로우의 개요
__15.1.1 스프링 웹 플로우
__15.1.2 스프링 웹 플로우의 특징
__15.1.3 [실습] 웹 플로우를 적용하는 주문 처리의 기본 구조 만들기
15.2 웹 플로우와 MVC 연동을 위한 환경 설정
__15.2.1 스프링 웹 플로우 환경 설정
__15.2.2 스프링 MVC 환경 설정
__15.2.3 [실습] 웹 플로우 적용을 위한 환경 설정하기
15.3 웹 플로우 구성 요소
__15.3.1 <flow> 요소
__15.3.2 <view-state> 요소
__15.3.3 <transition> 요소
__15.3.4 <end-state> 요소
__15.3.5 <evaluate> 요소
__15.3.6 <action-state> 요소
__15.3.7 <decision-state> 요소
__15.3.8 [실습] 주문 처리를 위한 웹 플로우 정의 파일 만들기
__15.3.9 [실습] 주문 처리를 위한 웹 플로우 페이지 작성하기
15.4 마치며
16장 타일즈: 웹 페이지 모듈화하기
16.1 타일즈 개요
__16.1.1 타일즈
__16.1.2 pom.xml 파일에 의존 라이브러리 등록
__16.1.3 servlet-context.xml 파일에 타일즈 환경 설정
__16.1.4 [실습] 타일즈 적용을 위한 환경 설정하기
16.2 타일즈 레이아웃 정의
__16.2.1 기본 레이아웃 정의
__16.2.2 타일즈 레이아웃 정의 파일 만들기
__16.2.3 타일즈 레이아웃 페이지 만들기
__16.2.4 [실습] 타일즈 레이아웃 정의하기
16.3 타일즈와 웹 플로우 연동
__16.3.1 FlowBuilder 서비스 설정
__16.3.2 ViewResolver 빈 등록
__16.3.3 [실습] 스프링 웹 플로우에 타일즈 연동하기
16.4 마치며
17장 데이터베이스 연동: 도서 목록 CRUD 처리하기
17.1 데이터베이스 설치
__17.1.1 MySQL 설치
__17.1.2 MySQL 기본 명령어
__17.1.3 [실습] 데이터베이스와 테이블 생성 및 데이터 등록하기
17.2 JDBC 연동을 위한 환경 설정
__17.2.1 pom.xml 파일에 의존 라이브러리 등록
__17.2.2 servlet-context.xml에 데이터베이스 환경 설정
__17.2.3 [실습] JDBC 연동을 위한 환경 설정하기
17.3 데이터 검색
__17.3.1 queryForObject() 메서드
__17.3.2 queryForList() 메서드
__17.3.3 query() 메서드
__17.3.4 [실습] CRUD 메서드를 사용하여 도서 목록 조회하기
17.4 데이터 삽입, 수정, 삭제
__17.4.1 삽입, 수정, 삭제
__17.4.2 [실습] CRUD 메서드를 사용하여 신규 도서 삽입하기
__17.4.3 [실습] CRUD 메서드를 사용하여 도서 정보 수정하기
__17.4.4 [실습] CRUD 메서드를 사용하여 도서 삭제하기
17.5 마치며
1.1 자바 플랫폼 개발 프레임워크의 대세, 스프링
__1.1.1 스프링이란?
__1.1.2 꼭 알아야 할 스프링의 주요 특징
1.2 MVC 패턴 기반의 웹 프레임워크, 스프링 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.1 Model 인터페이스를 이용한 메서드 작성
__5.4.2 ModelMap 클래스를 이용한 메서드 작성
__5.4.3 ModelAndView 클래스를 사용한 메서드 작성
__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.2 MultipartFile을 사용한 파일 업로드
__9.2.1 MultipartFile 인터페이스의 개요
__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.1 HTTP 상태 코드의 개요
__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.1 Log4j 개요
__11.1.1 로깅 유틸리티 Log4j
__11.1.2 Log4j의 구조와 로깅 레벨
__11.1.3 로그 환경 설정 파일의 구성
11.2 인터셉터 개요
__11.2.1 인터셉터
__11.2.2 인터셉터 등록
11.3 인터셉터를 이용한 로그 기록
__11.3.1 HandlerInterceptor를 이용한 로그 기록
__11.3.2 [실습] HandlerInterceptor를 사용하여 로그 기록하기
__11.3.3 [실습] 파일로 로그 기록 출력하기
__11.3.4 HandlerInterceptorAdapter를 사용한 로그 기록
__11.3.5 [실습] HandlerInterceptorAdapter를 사용하여 로그 기록하기
11.4 마치며
12장 다국어 처리: 도서 등록 페이지에서 다국어 페이지 만들기
12.1 다국어 처리의 개요
12.2 MessageSource를 이용한 다국어 처리
__12.2.1 메시지 리소스 파일 작성
__12.2.2 MessageSource 환경 설정
__12.2.3 뷰 페이지에 메시지 출력
__12.2.4 [실습] MessageSource를 이용하여 다국어 처리하기
12.3 LocaleResolver와 LocaleChangeInterceptor를 이용한 다국어 변경
__12.3.1 LocaleResolver 환경 설정
__12.3.2 LocaleChangeInterceptor를 이용한 로케일 변경
__12.3.3 [실습] LocaleResolver와 LocaleChangeInterceptor를 이용하여 다국어 변경하기
12.4 마치며
13장 유효성 검사: 도서 등록 페이지의 오류 메시지출력하기
13.1 유효성 검사의 개요
__13.1.1 유효성 검사의 유형
__13.1.2 @Valid를 이용한 유효성 검사
13.2 JSR-380으로 유효성 검사
__13.2.1 JSR-380 애너테이션 선언
__13.2.2 @Valid를 이용한 유효성 검사
__13.2.3 <form:errors> 태그로 오류 메시지 출력
__13.2.4 [실습] JSR-380을 이용하여 유효성 검사하기
13.3 사용자 정의 애너테이션으로 유효성 검사
__13.3.1 사용자 정의 애너테이션 생성
__13.3.2 ConstraintValidator 인터페이스의 구현체 생성
__13.3.3 [실습] 사용자 정의 애너테이션을 이용하여 유효성 검사하기
13.4 Validator 인터페이스로 유효성 검사
__13.4.1 유효성 검사 과정
__13.4.2 Validator 인터페이스의 구현체 생성
__13.4.3 @InitBinder를 선언한 메서드 추가
__13.4.4 [실습] Validator 인터페이스를 사용하여 유효성 검사하기
__13.4.5 [실습] Validator 인터페이스와 JSR-380을 연동해서 유효성 검사하기
13.5 마치며
14장 RESTful 웹 서비스: 장바구니 페이지 만들기
14.1 RESTful 웹 서비스의 개요
14.2 RESTful 방식의 애너테이션
__14.2.1 @RequestBody
__14.2.2 @ResponseBody
__14.2.3 @RestController
__14.2.4 [실습] RESTful 방식의 장바구니 기본 구조 만들기
14.3 RESTful 웹 서비스의 CRUD
__14.3.1 [실습] RESTful 웹 서비스를 위한 장바구니 CRUD 만들기
14.4 마치며
15장 스프링 웹 플로우: 주문 처리 페이지 만들기
15.1 웹 플로우의 개요
__15.1.1 스프링 웹 플로우
__15.1.2 스프링 웹 플로우의 특징
__15.1.3 [실습] 웹 플로우를 적용하는 주문 처리의 기본 구조 만들기
15.2 웹 플로우와 MVC 연동을 위한 환경 설정
__15.2.1 스프링 웹 플로우 환경 설정
__15.2.2 스프링 MVC 환경 설정
__15.2.3 [실습] 웹 플로우 적용을 위한 환경 설정하기
15.3 웹 플로우 구성 요소
__15.3.1 <flow> 요소
__15.3.2 <view-state> 요소
__15.3.3 <transition> 요소
__15.3.4 <end-state> 요소
__15.3.5 <evaluate> 요소
__15.3.6 <action-state> 요소
__15.3.7 <decision-state> 요소
__15.3.8 [실습] 주문 처리를 위한 웹 플로우 정의 파일 만들기
__15.3.9 [실습] 주문 처리를 위한 웹 플로우 페이지 작성하기
15.4 마치며
16장 타일즈: 웹 페이지 모듈화하기
16.1 타일즈 개요
__16.1.1 타일즈
__16.1.2 pom.xml 파일에 의존 라이브러리 등록
__16.1.3 servlet-context.xml 파일에 타일즈 환경 설정
__16.1.4 [실습] 타일즈 적용을 위한 환경 설정하기
16.2 타일즈 레이아웃 정의
__16.2.1 기본 레이아웃 정의
__16.2.2 타일즈 레이아웃 정의 파일 만들기
__16.2.3 타일즈 레이아웃 페이지 만들기
__16.2.4 [실습] 타일즈 레이아웃 정의하기
16.3 타일즈와 웹 플로우 연동
__16.3.1 FlowBuilder 서비스 설정
__16.3.2 ViewResolver 빈 등록
__16.3.3 [실습] 스프링 웹 플로우에 타일즈 연동하기
16.4 마치며
17장 데이터베이스 연동: 도서 목록 CRUD 처리하기
17.1 데이터베이스 설치
__17.1.1 MySQL 설치
__17.1.2 MySQL 기본 명령어
__17.1.3 [실습] 데이터베이스와 테이블 생성 및 데이터 등록하기
17.2 JDBC 연동을 위한 환경 설정
__17.2.1 pom.xml 파일에 의존 라이브러리 등록
__17.2.2 servlet-context.xml에 데이터베이스 환경 설정
__17.2.3 [실습] JDBC 연동을 위한 환경 설정하기
17.3 데이터 검색
__17.3.1 queryForObject() 메서드
__17.3.2 queryForList() 메서드
__17.3.3 query() 메서드
__17.3.4 [실습] CRUD 메서드를 사용하여 도서 목록 조회하기
17.4 데이터 삽입, 수정, 삭제
__17.4.1 삽입, 수정, 삭제
__17.4.2 [실습] CRUD 메서드를 사용하여 신규 도서 삽입하기
__17.4.3 [실습] CRUD 메서드를 사용하여 도서 정보 수정하기
__17.4.4 [실습] CRUD 메서드를 사용하여 도서 삭제하기
17.5 마치며
저자
저자
송미영
웹 기반의 관공서 위기 관리 시스템, 의학 용어 온라인 평가 시스템, 중도 탈락 예방 시스템, 앱 기반의 전자 동화 및 교육용 게임 및 유니티를 이용한 가상현실 콘텐츠를 개발하는 등 다수의 실무 경험과 자바, 웹 프로그래밍(JSP/PHP), 스프링, 안드로이드 프로그래밍, 유니티 엔진, VR/AR 프로그래밍 등을 강의했다. 현재 수원여자대학교 교수로 재직하면서 컴퓨터 비전, 모바일 게임, 가상현실 등을 연구한다. 캡스톤 디자인 프로젝트나 경진대회, 공모전 등에서 학생들이 현장 실무 능력을 쌓을 수 있도록 도와주는 지도 교수이며, CATS(Computer Application Technology Study) 동아리도 운영하고 있다. 또한, 다년간의 현장 실무 개발과 교육 강의로 얻은 지식을 독자에게 이해하기 쉽게 전하고자 집필에도 힘쓰고 있다.
Payment & Security
Payment methods
Your payment information is processed securely. We do not store credit card details nor have access to your credit card information.

