간편결제, 신용카드 청구할인
카카오페이 3,000원
(카카오페이 5만원 이상 결제시, 12/1~12/31 기간 중 1회)
인터파크 롯데카드 5% (38,480원)
(최대할인 10만원 / 전월실적 40만원)
북피니언 롯데카드 30% (28,350원)
(최대할인 3만원 / 3만원 이상 결제)
NH쇼핑&인터파크카드 20% (32,400원)
(최대할인 4만원 / 2만원 이상 결제)
Close

스프링 철저 입문 : 처음부터 끝까지 철저하게 배우는

원제 : SPRING徹底入門 SPRING FRAMEWORKによるJAVAアプリケ-ション開發
소득공제

2013년 9월 9일 이후 누적수치입니다.

판매지수 27
?
판매지수란?
사이트의 판매량에 기반하여 판매량 추이를 반영한 인터파크 도서에서의 독립적인 판매 지수입니다. 현재 가장 잘 팔리는 상품에 가중치를 두었기 때문에 실제 누적 판매량과는 다소 차이가 있을 수 있습니다. 판매량 외에도 다양한 가중치로 구성되어 최근의 이슈도서 확인시 유용할 수 있습니다. 해당 지수는 매일 갱신됩니다.
Close
공유하기

실무 중심의 스프링 프레임워크 완벽 입문서

  • 역 : 신상재
  • 출판사 : 위키북스
  • 발행 : 2018년 03월 15일
  • 쪽수 : 904
  • ISBN : 9791158390792
정가

45,000원

  • 40,500 (10%할인)

    2,250P (5%적립)

할인혜택
적립혜택
  • I-Point 적립은 마이페이지에서 직접 구매확정하신 경우만 적립 됩니다.
추가혜택
주문수량
감소 증가

* 배송예정일이 오늘이나 내일인 경우 1) 당일/하루배송 보장! 2) 배송 지연 시 I-Point 2,000P또는 4,000원 도서상품권 지급 &n 더보기

  • 이벤트/기획전

  • 연관도서

  • 상품권

AD

책소개

스프링 프레임워크의 기초부터 개발 가이드까지!

자바 기반 애플리케이션 프레임워크의 업계 표준인 스프링 프레임워크를 배워보자. 이 책은 DI/AOP, JDBC, JPA 같은 기본 기술부터 MVC, 시큐리티, 배치와 그 밖의 다양한 스프링 프로젝트까지 함께 설명한다. 그리고 스프링 프레임워크의 기본적인 사용법부터 개발 가이드까지, 프레임워크를 활용하기 위한 방법과 노하우까지 철저하게 풀어내고 있다. 스프링 프레임워크를 이용해 자바 애플리케이션을 처음 개발하는 사람은 물론, 이미 써봤지만 다른 기능들을 더 활용해보고 싶은 사람, 사내 업무 시스템을 자바로 개발하는 사람 모두에게 이 책을 추천한다.

스프링 프레임워크의 기초부터 개발 가이드까지!

자바 기반 애플리케이션 프레임워크의 업계 표준인 스프링 프레임워크를 배워보자. 이 책은 DI/AOP, JDBC, JPA 같은 기본 기술부터 MVC, 시큐리티, 배치와 그 밖의 다양한 스프링 프로젝트까지 함께 설명한다. 그리고 스프링 프레임워크의 기본적인 사용법부터 개발 가이드까지, 프레임워크를 활용하기 위한 방법과 노하우까지 철저하게 풀어내고 있다.

스프링 프레임워크를 이용해 자바 애플리케이션을 처음 개발하는 사람은 물론, 이미 써봤지만 다른 기능들을 더 활용해보고 싶은 사람, 사내 업무 시스템을 자바로 개발하는 사람 모두에게 이 책을 추천한다

출판사 서평

이 책을 손에 든 대부분의 독자라면 아마도 '스프링'이라는 단어를 한번쯤은 들어봤거나 실제로 사용해봤을 것이다. 2013년에 프로젝트가 시작된 이래 전 세계적으로 많은 사용자를 확보한 스프링 부트를 스프링 프레임워크보다 먼저 접한 사람들도 다수 있을 것 같고 아예 스프링 자체를 처음 접하는 사람도 있을지도 모르겠다.

이 책은 스프링 프레임워크를 이용해 웹 애플리케이션을 개발하고 있는(혹은 개발할) 모든 개발자를 대상으로 한다. 지금부터 스프링을 배우려는 초심자부터 스프링을 어느 수준 이상으로 사용하고 있는 베테랑까지 이 책을 읽다 보면 스프링의 기초부터 실제 시스템을 구축하는 응용 방법까지 폭넓게 익힐 수 있도록 만들어져 있다. 특히 스프링 부트를 스프링보다 먼저 접한 사람이라면 스프링 본체에 대해 기초부터 배우면서 어디까지가 스프링 프레임워크의 범위이고 어디부터가 스프링 부트의 범위인지 이해할 수 있게 되어 스프링 부트의 편리함을 다시 한번 깨닫는 기회가 될 수 있을 것이다.

이 책에는 실제 시스템을 구축할 때 고려해야 할 사항들을 포함하고 있으며, 기본 개념뿐 아니라 소스코드를 통해 설명을 이어나가는 상당히 실천적인 입문서다. 이를 위해 스프링이 기능이나 사용법을 설명할 때 비슷한 분량의 소스코드도 함께 보여줄 수 있게 노력했다. 이 책을 버스나 지하철에서 보는 것은 권장하지 않는다. 대신 집으로 귀가한 후나, 가까운 카페나 사무실에서 PC의 전원을 켠 다음 책을 읽어주길 바란다. 그리고 실제로 소스코드를 쳐보면서 스프링 프레임워크를 체험해 봤으면 좋겠다.

★ 이 책의 구성 ★
이 책은 크게 스프링 프레임워크 본체에 대한 설명(1장~8장), 스프링 관련 프로젝트에 대한 설명(9장~13장), 그리고 이들을 종합적으로 엮은 실습(14장), 뒤에 추가된 내용(15장)으로 구성된다. 각 장은 다음과 같은 기준으로 분류할 수 있다.
- 스프링이 만들어진 배경과 역사(1장)
- 스프링 코어(2장)
- 데이터 접근(3장, 10장, 11장)
- 웹 애플리케이션(4장~7장, 9장, 12장)
- 테스트(8장)
- 스프링 부트(13장)
- 스프링 배치(15장)

1장에서는 스프링 프레임워크가 등장한 배경과 발전해온 역사를 설명한다. 스프링이 처음 만들어진 이유를 이해하면 스프링이 어떤 철학을 가지고 발전해온 것인지 알게 된다. 다음은 스프링 코어에 대한 이야기로, 2장 후반부에서 스프링에서 가장 중요한 DI와 AOP를 설명한다. DI와 AOP의 개념이 아직 잘 잡혀있지 않다면 이 장을 먼저 읽어보는 것도 좋을 것이다. 데이터 접근에 대해서는 3장, 10장, 11장에서 설명하고 있는데, 3장에서 스프링 JDBC를 사용하는 방법을 먼저 익힌 후, 10장과 11장에서 데이터 접근을 위한 다른 라이브러리를 연계해서 사용하는 방법을 배우게 된다.참고로 스프링 코어와 데이터 접근 부분은 웹 애플리케이션뿐만 아니라 일반 애플리케이션에서도 응용할 수 있는 내용으로 돼 있다.

4장부터는 본격적으로 웹 애플리케이션을 개발하는 데 필요한 내용이 나오는데 우선 스프링 MVC를 설명하고 5장에서는 화면을 응답하는 웹 애플리케이션을, 6장에서는 데이터만 응답하는 웹 애플리케이션(RESTful 웹 서비스)을 개발하는 방법을 설명한다. 7장에서는 실제로 웹 애플리케이션을 개발할 때 필요한 세션 관리나 파일 업로드와 같은 응용 기술을 다룬다. 스프링 시큐리티를 활용한 인증이나 인가 기능에 대해서는 9장에서 설명하고 12장에서는 웹 애플리케이션과 연계할 템플릿 엔진으로 타임리프를 소개한다. 애플리케이션을 개발할 때 테스트는 반드시 필요한 부분으로, 8장에서는 스프링을 사용한 애플리케이션에서 단위 테스트와 통합 테스트를 할 때 어떤 모듈을 사용하면 되는지 설명한다.

13장에서는 드디어 스프링 부트가 등장하는데, 여기서는 기능 설명을 하는 것이 아니라 우선 체험부터 할 수 있게 구성돼 있다. 스프링 부트를 우선 체험한 다음 기능에 대한 설명을 하는 방법으로 전개해서 더욱 더 쉽게 이해할 수 있게 구성했다. 14장에서는 이 책에서 다룬 내용을 튜토리얼 형식으로 실습해볼 수 있다. 이제까지 익힌 스프링 프레임워크의 기능을 활용해 웹 애플리케이션을 만들어보자. 15장은 뒤에 이 책이 만들어진 후, 온라인 문서로 덧붙여진 내용으로 스프링 배치에 대해 설명한다. 한글 번역서에서는 종이 책에 내용을 포함하였다.

[저자 소개]

주식회사 NTT 데이터

모토하시 켄지(기획 및 1장 담당)

주식회사 NTT 데이터 미국 법인에서 오픈 스택과 오픈 컴퓨트, 오픈 네트워킹 파운데이션 등의 IaaS에 관련된 혁신 활동을 해왔다. 특히 오픈 스택은 창립 멤버의 한 사람으로 설립 초기부터 깊이 관여해왔다.
마키 토시아키(2장, 13장, 14장 담당)
주식회사 피보탈 저팬의 시니어 솔루션 아키텍트다. NTT 데이터에서 현재의 저자들과 스프링 프레임워크의 보급 활동을 할 때 스프링과 PaaS(클라우드 파운더리)의 큰 가능성에 매력을 느껴 피보탈로 옮겼다.
시미즈 카즈키(2장, 4장, 5장, 6장, 7장, 8장, 9장, 11장 담당)
주식회사 닛신 소프트웨어에 입사한 후, 자바 기반의 시스템을 개발했고, 현재는 TERASOLUNA 서버 프레임워크의 아키텍트로 하루하루 열심히 활동 중이다.
코지마 유스스케(2장, 3장, 7장, 11장, 12장 담당)
주식회사 NTT 데이터에 입사한 이래 공공 분야의 시스템 개발에서 베테랑 아키텍트 역할을 했다. 이후 관계사 공통의 전사 프레임워크 개발에 참여한 것이 인연이 되어 이 책의 집필에 참여하게 됐다.
이케야 토모유키(10장, 12장 담당)
주식회사 NTT 데이터에 입사한 후, 스프링을 활용한 시스템을 다수 개발했고 현재는 NTT 데이터가 만든 스프링 기반의 표준 프레임워크인 TERASOLUNA 서버 프레임워크 개발 리더를 맡고 있다.
쿠라모토 키이치(15장 담당)
주식회사 NTT 데이터에 입사한 후 수년 간 스프링을 활용한 시스템을 개발하고 금융기관의 미션 크리티컬한 시스템에 자바 프레임워크를 도입하고 지원하는 일을 했다.
카와사키 마사히로(감수 담당)
주식회사 NTT데이터에 입사한 후 스프링 프레임워크를 사용하지 않는 업무 시스템을 개발하고 프로젝트 관리를 했다.

<출판사 리뷰>

이 책을 손에 든 대부분의 독자라면 아마도 ‘스프링’이라는 단어를 한번쯤은 들어봤거나 실제로 사용해봤을 것이다. 2013년에 프로젝트가 시작된 이래 전 세계적으로 많은 사용자를 확보한 스프링 부트를 스프링 프레임워크보다 먼저 접한 사람들도 다수 있을 것 같고 아예 스프링 자체를 처음 접하는 사람도 있을지도 모르겠다.
이 책은 스프링 프레임워크를 이용해 웹 애플리케이션을 개발하고 있는(혹은 개발할) 모든 개발자를 대상으로 한다. 지금부터 스프링을 배우려는 초심자부터 스프링을 어느 수준 이상으로 사용하고 있는 베테랑까지 이 책을 읽다 보면 스프링의 기초부터 실제 시스템을 구축하는 응용 방법까지 폭넓게 익힐 수 있도록 만들어져 있다.
특히 스프링 부트를 스프링보다 먼저 접한 사람이라면 스프링 본체에 대해 기초부터 배우면서 어디까지가 스프링 프레임워크의 범위이고 어디부터가 스프링 부트의 범위인지 이해할 수 있게 되어 스프링 부트의 편리함을 다시 한번 깨닫는 기회가 될 수 있을 것이다.
이 책에는 실제 시스템을 구축할 때 고려해야 할 사항들을 포함하고 있으며, 기본 개념뿐 아니라 소스코드를 통해 설명을 이어나가는 상당히 실천적인 입문서다. 이를 위해 스프링이 기능이나 사용법을 설명할 때 비슷한 분량의 소스코드도 함께 보여줄 수 있게 노력했다.
이 책을 버스나 지하철에서 보는 것은 권장하지 않는다. 대신 집으로 귀가한 후나, 가까운 카페나 사무실에서 PC의 전원을 켠 다음 책을 읽어주길 바란다. 그리고 실제로 소스코드를 쳐보면서 스프링 프레임워크를 체험해 봤으면 좋겠다.

★ 이 책의 구성 ★
이 책은 크게 스프링 프레임워크 본체에 대한 설명(1장~8장), 스프링 관련 프로젝트에 대한 설명(9장~13장), 그리고 이들을 종합적으로 엮은 실습(14장), 뒤에 추가된 내용(15장)으로 구성된다. 각 장은 다음과 같은 기준으로 분류할 수 있다.

■ 스프링이 만들어진 배경과 역사(1장)
■ 스프링 코어(2장)
■ 데이터 접근(3장, 10장, 11장)
■ 웹 애플리케이션(4장~7장, 9장, 12장)
■ 테스트(8장)
■ 스프링 부트(13장)
■ 스프링 배치(15장)

1장에서는 스프링 프레임워크가 등장한 배경과 발전해온 역사를 설명한다. 스프링이 처음 만들어진 이유를 이해하면 스프링이 어떤 철학을 가지고 발전해온 것인지 알게 된다.
다음은 스프링 코어에 대한 이야기로, 2장 후반부에서 스프링에서 가장 중요한 DI와 AOP를 설명한다. DI와 AOP의 개념이 아직 잘 잡혀있지 않다면 이 장을 먼저 읽어보는 것도 좋을 것이다.
데이터 접근에 대해서는 3장, 10장, 11장에서 설명하고 있는데, 3장에서 스프링 JDBC를 사용하는 방법을 먼저 익힌 후, 10장과 11장에서 데이터 접근을 위한 다른 라이브러리를 연계해서 사용하는 방법을 배우게 된다.
참고로 스프링 코어와 데이터 접근 부분은 웹 애플리케이션뿐만 아니라 일반 애플리케이션에서도 응용할 수 있는 내용으로 돼 있다.
4장부터는 본격적으로 웹 애플리케이션을 개발하는 데 필요한 내용이 나오는데 우선 스프링 MVC를 설명하고 5장에서는 화면을 응답하는 웹 애플리케이션을, 6장에서는 데이터만 응답하는 웹 애플리케이션(RESTful 웹 서비스)을 개발하는 방법을 설명한다. 7장에서는 실제로 웹 애플리케이션을 개발할 때 필요한 세션 관리나 파일 업로드와 같은 응용 기술을 다룬다.
스프링 시큐리티를 활용한 인증이나 인가 기능에 대해서는 9장에서 설명하고 12장에서는 웹 애플리케이션과 연계할 템플릿 엔진으로 타임리프를 소개한다.
애플리케이션을 개발할 때 테스트는 반드시 필요한 부분으로, 8장에서는 스프링을 사용한 애플리케이션에서 단위 테스트와 통합 테스트를 할 때 어떤 모듈을 사용하면 되는지 설명한다.
13장에서는 드디어 스프링 부트가 등장하는데, 여기서는 기능 설명을 하는 것이 아니라 우선 체험부터 할 수 있게 구성돼 있다. 스프링 부트를 우
선 체험한 다음 기능에 대한 설명을 하는 방법으로 전개해서 더욱 더 쉽게 이해할 수 있게 구성했다.
14장에서는 이 책에서 다룬 내용을 튜토리얼 형식으로 실습해볼 수 있다. 이제까지 익힌 스프링 프레임워크의 기능을 활용해 웹 애플리케이션을 만들어보자.
15장은 뒤에 이 책이 만들어진 후, 온라인 문서로 덧붙여진 내용으로 스프링 배치에 대해 설명한다. 한글 번역서에서는 종이 책에 내용을 포함하였다.

<베타리더 후기>

“스프링이 제공하는 유용한 기능들에 대해 빠짐없이, 기본적인 설명뿐 아니라 깊이 있는 예제를 통해 이해하고 사용하기 쉽게 기술돼 있어 만만치 않은 분량이었음에도 스프링에 철저히 입문할 수 있었다. 입문의 수준을 넘어 스프링의 바이블이라고 할 수 있을 정도로 훌륭한 『스프링 철저 입문』 완전 강추!”
-- 박준수 님

“여러 해 동안 이뤄진 스프링의 변화를 이 책을 통해 상당 부분 따라잡을 수 있었습니다. 스프링프레임워크가 다루는 영역이 워낙 넓기 때문에 스프링 책은 가벼운 맛보기만으로 끝나기 쉬운데, 이 책은 실전에 가까운 예제를 통해 이론과 실제를 적절히 알려주는 책이라고 생각합니다.”
-- 오현석 님

“책 제목 그대로 스프링 프레임워크를 철저하게 학습하기에 좋은 책입니다. 스프링의 방대한 기능을 군더더기 없이 설명하고, 실제 개발하며 필요한 기능을 학습할 수 있습니다.”
-- 이경원 님

“스프링에 처음 입문한 사람이라면 다양한 컴포넌트에 관한 이해와 개념을 익힐 수 있고, 스프링 경험이 있는 숙련자라면 최신 기술 및 실무에서 다양한 시각으로 스프링 프레임워크를 사용할 수 있도록 도와주는 좋은 교재가 될 것입니다.”
-- 이석곤 님

추천사

[베타리더 후기]

"스프링이 제공하는 유용한 기능들에 대해 빠짐없이, 기본적인 설명뿐 아니라 깊이 있는 예제를 통해 이해하고 사용하기 쉽게 기술돼 있어 만만치 않은 분량이었음에도 스프링에 철저히 입문할 수 있었다. 입문의 수준을 넘어 스프링의 바이블이라고 할 수 있을 정도로 훌륭한 [스프링 철저 입문] 완전 강추!"
- 박준수 님

"여러 해 동안 이뤄진 스프링의 변화를 이 책을 통해 상당 부분 따라잡을 수 있었습니다. 스프링프레임워크가 다루는 영역이 워낙 넓기 때문에 스프링 책은 가벼운 맛보기만으로 끝나기 쉬운데, 이 책은 실전에 가까운 예제를 통해 이론과 실제를 적절히 알려주는 책이라고 생각합니다."
- 오현석 님

"책 제목 그대로 스프링 프레임워크를 철저하게 학습하기에 좋은 책입니다. 스프링의 방대한 기능을 군더더기 없이 설명하고, 실제 개발하며 필요한 기능을 학습할 수 있습니다."
- 이경원 님

"스프링에 처음 입문한 사람이라면 다양한 컴포넌트에 관한 이해와 개념을 익힐 수 있고, 스프링 경험이 있는 숙련자라면 최신 기술 및 실무에서 다양한 시각으로 스프링 프레임워크를 사용할 수 있도록 도와주는 좋은 교재가 될 것입니다."
- 이석곤 님

목차

01장: 스프링 프레임워크
1.1. 스프링 프레임워크 개요
1.2. 스프링 프레임워크의 역사
1.3. 스프링 관련 프로젝트에 관해
- 1.3.1. 스프링 MVC
- 1.3.2. 스프링 시큐리티
- 1.3.3. 스프링 데이터
- 1.3.4. 스프링 배치
- 1.3.5. 스프링 인티그레이션
- 1.3.6. 스프링 클라우드
- 1.3.7. 스프링 툴 스위트
- 1.3.8. 스프링 IO 플랫폼
- 1.3.9. 스프링 부트
1.4. Java EE와의 관계

02장: 스프링 코어(DI, AOP)
2.1. DI
- 2.1.1. DI 개요
- 2.1.2. ApplicationContext와 빈 정의
- 2.1.3. 빈 설정
- 2.1.4. 의존성 주입
- 2.1.5. 오토와이어링
- 2.1.6. 컴포넌트 스캔
- 2.1.7. 빈 스코프
- 2.1.8. 빈의 생명 주기
- 2.1.9. 빈 설정 분할
- 2.1.10. 프로파일별 설정 구성
- 2.1.11. JSR 330
2.2. AOP
- 2.2.1. AOP의 개요
- 2.2.2. 스프링 AOP
- 2.2.3. 자바 기반 설정 방식에서의 어드바이스 정의
- 2.2.4. XML 기반 설정 방식에서의 어드바이스 정의
- 2.2.5. 포인트컷 표현식
- 2.2.6. 스프링 프로젝트에서 활용되는 AOP 기능
2.3. 데이터 바인딩과 형 변환
- 2.3.1. String 값에 대한 데이터 바인딩
- 2.3.2. 스프링의 형 변환
- 2.3.3. PropertyEditor 활용
- 2.3.4. ConversionService 활용
- 2.3.5. 포매팅용 애너테이션 활용
- 2.3.6. 형 변환 방식의 커스터마이징
- 2.3.7. 필드 포매팅 방식 커스터마이즈
2.4. 프로퍼티 관리
- 2.4.1. 빈 정의 시 프로퍼티 활용
- 2.4.2. 빈 구현 과정에서 프로퍼티 활용
2.5. 스프링 표현 언어
- 2.5.1. SpEL 설정
- 2.5.2. SpEL API 개요
- 2.5.3. 빈 정의 시 SpEL 활용
- 2.5.4. SpEL에서 쓸 수 있는 표현식 유형
2.6. 리소스 추상화
- 2.6.1. Resource 인터페이스와 구현 클래스
- 2.6.2. ResourceLoader 인터페이스
- 2.6.3. Resource 인터페이스를 활용한 리소스 접근
- 2.6.4. XML 파일에서 리소스 지정
2.7. 메시지 관리
- 2.7.1. MessageSource 인터페이스와 구현 클래스
- 2.7.2. MessageSource 사용
- 2.7.3. 프로퍼티 파일을 UTF-8로 인코딩
- 2.7.4. 다국어 지원하기

03장: 데이터 접근(JDBC, Tx)
3.1. 스프링 프레임워크와 데이터 소스
- 3.1.1. 데이터 소스 개요
- 3.1.2. 데이터 소스 설정
3.2. 스프링 JDBC
- 3.2.1. 스프링 JDBC 개요
- 3.2.2. JdbcTemplate 클래스를 활용한 CRUD
- 3.2.3. SQL 질의 결과를 POJO로 변환
- 3.2.4. 데이터 일괄 처리
3.3. 트랜잭션 관리
- 3.3.1. 트랜잭션 관리자
- 3.3.2. 선언적 트랜잭션
- 3.3.3. 명시적 트랜잭션
- 3.3.4. 트랜잭션 격리 수준과 전파 방식
3.4. 데이터 접근 시의 예외 처리
- 3.4.1. 스프링 프레임워크에서 제공하는 데이터 접근 관련 예외
- 3.4.2. 데이터 접근 관련 예외 처리
- 3.4.3. 데이터 접근 관련 예외의 변환 규칙 커스터마이징

04장: 스프링 MVC 기초
4.1. 스프링 MVC
- 4.1.1. 웹 애플리케이션 개발의 특징
- 4.1.2. MVC 프레임워크로서의 특징
4.2. 첫 번째 스프링 MVC 애플리케이션
- 4.2.1. 프로젝트 생성
- 4.2.2. 스프링 MVC 적용
- 4.2.3. 최상위 페이지의 표시 처리 구현
- 4.2.4. 입력 화면의 표시 처리 구현
- 4.2.5. 입력값 전송과 결괏값 출력 구현
- 4.2.6. 입력값 검사 구현
- 4.2.7. XML 파일을 이용한 빈 정의
4.3. 스프링 MVC 아키텍처
- 4.3.1. 프레임워크 아키텍처
- 4.3.2. 프런트 컨트롤러 아키텍처
- 4.3.3. DI 컨테이너와의 연계

05장: 웹 애플리케이션 개발
5.1. 웹 애플리케이션의 종류
- 5.1.1. 화면으로 응답하는 웹 애플리케이션
- 5.1.2. 데이터만을 응답하는 웹 애플리케이션
5.2. 애플리케이션 설정
- 5.2.1. 서블릿 컨테이너 설정
- 5.2.2. 애플리케이션 컨텍스트 설정
- 5.2.3. 프런트 컨트롤러 설정
5.3. @Controller 구현
- 5.3.1. 컨트롤러에서 구현하는 처리 내용
- 5.3.2. 컨트롤러 클래스 작성
- 5.3.3. 핸들러 메서드 작성
- 5.3.4. 핸들러 메서드의 매개변수
- 5.3.5. 핸들러 메서드의 반환값
- 5.3.6. 뷰 컨트롤러 이용
5.4. 요청 매핑
- 5.4.1. 요청 경로 사용
- 5.4.2. 경로 패턴 사용
- 5.4.3. HTTP 메서드 사용
- 5.4.4. 요청 파라미터 사용
- 5.4.5. 요청 헤더 사용
- 5.4.6. Content-Type 헤더 사용
- 5.4.7. Accept 헤더 사용
5.5. 요청 데이터 취득
- 5.5.1. 경로 변수 값 취득(@PathVariable)
- 5.5.2. 요청 파라미터 값 취득(@RequestParam)
- 5.5.3. @RequestParam, @RequestHeader, @CookieValue 속성값
- 5.5.4. 컴파일 옵션과 주의할 점
- 5.5.5. 이용 가능한 타입
- 5.5.6. 바인딩 처리 커스터마이징(WebDataBinder)
- 5.5.7. 애너테이션을 사용한 포맷 지정
5.6. 폼 클래스 구현
- 5.6.1. 폼 객체의 스코프
- 5.6.2. 폼 클래스 작성
- 5.6.3. HTML 포맷과 바인딩
- 5.6.4. 간단한 타입과의 바인딩
- 5.6.5. 간단한 타입의 컬렉션과의 바인딩
- 5.6.6. 중첩된 자바빈즈와의 바인딩
- 5.6.7. 자바빈즈의 컬렉션과의 바인딩
- 5.6.7. 프로퍼티 값의 설정 해제
5.7. 입력값 검사
- 5.7.1. 입력값 검사 기능의 활성화
- 5.7.2. 입력값 검사 결과의 판정
- 5.7.3. 미입력 처리
- 5.7.4. 입력값 검사 규칙 지정
- 5.7.5. 중첩된 자바빈즈의 입력값 검사
- 5.7.6. 입력값 검사 규칙 추가
- 5.7.7. 입력값 검사 규칙을 교체하는 방법
- 5.7.8. 오류 정보 표시
- 5.7.9. 오류 메시지의 재정의
- 5.7.10. Bean Validation 커스터마이징
- 5.7.11. Spring Validator 이용
5.8. 화면 이동
- 5.8.1. 이동 대상을 지정하는 방법
- 5.8.2. 요청 경로로 리다이렉트
- 5.8.3. 요청 경로로 포워드
- 5.8.4. 뷰와의 데이터 연계
- 5.8.5. 리다이렉트 대상과의 데이터 연계
5.9. 뷰 선택
- 5.9.1. 템플릿 기반 뷰
- 5.9.2. InternalResourceViewResolver의 빈 정의
5.10. JSP 구현
- 5.10.1. 지시자
- 5.10.2. 스크립트릿
- 5.10.3. 커스텀 태그 라이브러리
- 5.10.4. 태그 파일
- 5.10.5. EL
- 5.10.6. EL 함수
- 5.10.7. JSP 공통 설정
- 5.10.8. JSTL
5.11. 스프링 HTML 폼 전용 태그 라이브러리의 활용
- 5.11.1. 태그 라이브러리의 설정
- 5.11.2. 폼 출력
- 5.11.3. 폼 항목의 공통적인 속성
- 5.11.4. 텍스트 필드 출력
- 5.11.5. 패스워드 필드 출력
- 5.11.6. 텍스트 영역 출력
- 5.11.7. 여러 개의 체크박스 출력
- 5.11.8. 체크박스 출력
- 5.11.9. 여러 개의 라디오 버튼 출력
- 5.11.10. 라디오 버튼 출력
- 5.11.11. 셀렉트 박스 출력
- 5.11.12. 숨겨진 필드 출력
- 5.11.13. 라벨 출력
- 5.11.14. 버튼 출력
- 5.11.15. 입력값 검사 오류 출력
5.12. 스프링 범용 태그 라이브러리의 활용
- 5.12.1. 태그 라이브러리의 설정
- 5.12.2. 로캘별 메시지의 출력
- 5.12.3. 테마별 메시지의 출력
- 5.12.4. 입력값 검사 오류의 판단
- 5.12.5. 바인딩 정보(BindStatus)의 취득
- 5.12.6. BindStatus과 연계한 문자열 변환
- 5.12.7. URL 생성
- 5.12.8. 이스케이프 여부의 기본값 덮어쓰기
- 5.12.9. 출력값 이스케이프
- 5.12.10. SpEL 실행 결과의 취득
- 5.12.11. 요청 매핑 정보와 연계한 URL 생성
5.13. 예외 처리
- 5.13.1. 예외의 종류
- 5.13.2. 예외의 발생 장소와 그에 따른 처리 방법
- 5.13.3. 서블릿 컨테이너의 오류 페이지 기능 활용
- 5.13.4. 스프링 MVC의 예외 핸들러 활용
- 5.13.5. @ExceptionHandler 메서드 활용
- 5.13.6. @ResponseStatus를 지정한 예외 클래스의 활용

06장: RESTful 웹 서비스 개발
6.1. REST API 아키텍처
- 6.1.1. Resource Oriented Architecture(ROA)
- 6.1.2. 프레임워크의 아키

▣ 01장: 스프링 프레임워크
1.1. 스프링 프레임워크 개요
1.2. 스프링 프레임워크의 역사
1.3. 스프링 관련 프로젝트에 관해
___1.3.1. 스프링 MVC
___1.3.2. 스프링 시큐리티
___1.3.3. 스프링 데이터
___1.3.4. 스프링 배치
___1.3.5. 스프링 인티그레이션
___1.3.6. 스프링 클라우드
___1.3.7. 스프링 툴 스위트
___1.3.8. 스프링 IO 플랫폼
___1.3.9. 스프링 부트
1.4. Java EE와의 관계

▣ 02장: 스프링 코어(DI, AOP)
2.1. DI
___2.1.1. DI 개요
___2.1.2. ApplicationContext와 빈 정의
___2.1.3. 빈 설정
___2.1.4. 의존성 주입
___2.1.5. 오토와이어링
___2.1.6. 컴포넌트 스캔
___2.1.7. 빈 스코프
___2.1.8. 빈의 생명 주기
___2.1.9. 빈 설정 분할
___2.1.10. 프로파일별 설정 구성
___2.1.11. JSR 330
2.2. AOP
___2.2.1. AOP의 개요
___2.2.2. 스프링 AOP
___2.2.3. 자바 기반 설정 방식에서의 어드바이스 정의
___2.2.4. XML 기반 설정 방식에서의 어드바이스 정의
___2.2.5. 포인트컷 표현식
___2.2.6. 스프링 프로젝트에서 활용되는 AOP 기능
2.3. 데이터 바인딩과 형 변환
___2.3.1. String 값에 대한 데이터 바인딩
___2.3.2. 스프링의 형 변환
___2.3.3. PropertyEditor 활용
___2.3.4. ConversionService 활용
___2.3.5. 포매팅용 애너테이션 활용
___2.3.6. 형 변환 방식의 커스터마이징
___2.3.7. 필드 포매팅 방식 커스터마이즈
2.4. 프로퍼티 관리
___2.4.1. 빈 정의 시 프로퍼티 활용
___2.4.2. 빈 구현 과정에서 프로퍼티 활용
2.5. 스프링 표현 언어
___2.5.1. SpEL 설정
___2.5.2. SpEL API 개요
___2.5.3. 빈 정의 시 SpEL 활용
___2.5.4. SpEL에서 쓸 수 있는 표현식 유형
2.6. 리소스 추상화
___2.6.1. Resource 인터페이스와 구현 클래스
___2.6.2. ResourceLoader 인터페이스
___2.6.3. Resource 인터페이스를 활용한 리소스 접근
___2.6.4. XML 파일에서 리소스 지정
2.7. 메시지 관리
___2.7.1. MessageSource 인터페이스와 구현 클래스
___2.7.2. MessageSource 사용
___2.7.3. 프로퍼티 파일을 UTF-8로 인코딩
___2.7.4. 다국어 지원하기

▣ 03장: 데이터 접근(JDBC, Tx)
3.1. 스프링 프레임워크와 데이터 소스
___3.1.1. 데이터 소스 개요
___3.1.2. 데이터 소스 설정
3.2. 스프링 JDBC
___3.2.1. 스프링 JDBC 개요
___3.2.2. JdbcTemplate 클래스를 활용한 CRUD
___3.2.3. SQL 질의 결과를 POJO로 변환
___3.2.4. 데이터 일괄 처리
3.3. 트랜잭션 관리
___3.3.1. 트랜잭션 관리자
___3.3.2. 선언적 트랜잭션
___3.3.3. 명시적 트랜잭션
___3.3.4. 트랜잭션 격리 수준과 전파 방식
3.4. 데이터 접근 시의 예외 처리
___3.4.1. 스프링 프레임워크에서 제공하는 데이터 접근 관련 예외
___3.4.2. 데이터 접근 관련 예외 처리
___3.4.3. 데이터 접근 관련 예외의 변환 규칙 커스터마이징

▣ 04장: 스프링 MVC 기초
4.1. 스프링 MVC
___4.1.1텍처
6.2. 애플리케이션 설정
- 6.2.1. 라이브러리 설정
- 6.2.2. 서블릿 컨테이너 설정
- 6.2.3. 프런트 컨트롤러 설정
6.3. @RestController 구현
- 6.3.1. 컨트롤러에서 구현할 처리의 전체 구조
- 6.3.2. 컨트롤러 클래스 작성
- 6.3.3. REST API(핸들러 메서드) 작성
- 6.3.4. CORS 지원
- 6.3.5. URI 조립
6.4. 리소스 클래스 구현
- 6.4.1. 리소스 클래스 작성
- 6.4.2. Jackson을 이용한 포맷 제어
6.5. 예외 처리
- 6.5.1. REST API 오류 응답
- 6.5.2. 스프링 MVC의 예외 핸들러 구현
- 6.5.3. 처리할 예외 클래스의 추가
- 6.5.4. 입력값 검사 예외의 처리
- 6.5.5. 서블릿 컨테이너에 전달된 오류의 응답
6.6. REST 클라이언트 구현
- 6.6.1. RestTemplate이란?
- 6.6.2. RestTemplate 설정
- 6.6.3. REST API 호출
- 6.6.4. 오류 응답 처리
- 6.6.5. 타임아웃 지정

07장: 스프링 MVC 응용
7.1. HTTP 세션 이용
- 7.1.1. 세션 속성(@SessionAttributes)
- 7.1.2. 세션 스코프 빈
7.2. 파일 업로드
- 7.2.1. 파일 업로드 구조
- 7.2.2. 파일 업로드 기능 설정
- 7.2.3. 업로드 데이터의 취득
7.3. 비동기 요청의 구현
- 7.3.1. 비동기 요청의 동작 방식
- 7.3.2. 비동기 기능을 활성화하기 위한 설정
- 7.3.3. 비동기 처리의 구현
- 7.3.4. 비동기 처리에서의 예외 처리
- 7.3.5. 비동기 실행에 대한 공통 처리 구현
7.4. 공통 처리의 구현
- 7.4.1. 서블릿 필터 이용
- 7.4.2. HandlerInterceptor 이용
- 7.4.3. @ControllerAdvice 이용
- 7.4.4. HandlerMethodArgumentResolver 이용
7.5. 정적 리소스
- 7.5.1. 기본 서블릿과 DispatcherServlet의 공존
- 7.5.2. 스프링 MVC 독자적인 정적 리소스의 취급 방법
7.6. 국제화
- 7.6.1. 로캘 결정
- 7.6.2. 로캘 활용
- 7.6.3. UI를 이용한 로캘 전환

08장: 스프링 테스트란?
8.1. 스프링 테스트란?
8.2. DI 컨테이너와 빈 테스트
- 8.2.1. 빈에 대한 단위 테스트
- 8.2.2. DI 컨테이너에서 관리되는 빈에 대한 통합 테스트
- 8.2.3. 스프링 TestContext 프레임워크
- 8.2.4. DI 컨테이너의 설정
- 8.2.5. DI 컨테이너의 라이프사이클 제어
- 8.2.6. 프로파일 지정
- 8.2.7. 테스트용 프로퍼티 값 지정
8.3. 데이터베이스 테스트
- 8.3.1. 테스트 데이터 소스 설정
- 8.3.2. 테스트 데이터 적재
- 8.3.3. 테스트 케이스를 위한 트랜잭션 제어
- 8.3.4. 데이터 검증
8.4. 스프링 MVC 테스트
- 8.4.1. MockMvc란?
- 8.4.2. MockMvc 설정
- 8.4.3. 테스트 실행
- 8.4.4. 요청 데이터 설정
- 8.4.5. 실행 결과의 검증
- 8.4.6. 실행 결과 출력

09장: 스프링 시큐리티
9.1. 스프링 시큐리티란?
- 9.1.1. 스프링 시큐리티의 특징
- 9.1.2. 기본적인 보안 기능
- 9.1.3. 강화된 보안 기능
9.2. 스프링 시큐리티의 설정
- 9.2.1. 라이브러리의 설정
- 9.2.2. 스프링 시큐리티의 빈 정의
- 9.2.3. 서블릿 필터 설정
9.3. 스프링 시큐리티의 아키텍처
- 9.3.1. 스프링 시큐리티의 모듈 구성
- 9.3.2. 프레임워크 아키텍처
9.4. 인증 처리
- 9.4.1. 인증 처리 메커니즘
- 9.4.2. 폼 인증
- 9.4.3. 인증이 성공했을 때의 응답
- 9.4.4. 인증이 실패했을 때의 응답
- 9.4.5. 데이터베이스 인증
- 9.4.6. 패스워드 해시화
- 9.4.7. 인증 이벤트 처리
- 9.4.8. 로그아웃
- 9.4.9. 로그아웃이 성공했을 때의 응답
- 9.4.10. 인증 정보에 대한 접근
- 9.4.11. 인증 처리와 스프링 MVC의 연계
- 9.4.12. 오류 메시지
9.5. 인가 처리
- 9.5.1. 인가 처리 구조
- 9.5.2. 접근 정책을 기술하는 방법
- 9.5.3. 웹 리소스에 대한 인가(자바 기반 설정 방식)
- 9.5.4. 웹 리소스에 대한 인가(XML 기반 설정 방식)
- 9.5.5. 메서드에 대한 인가

. 웹 애플리케이션 개발의 특징
___4.1.2. MVC 프레임워크로서의 특징
4.2. 첫 번째 스프링 MVC 애플리케이션
___4.2.1. 프로젝트 생성
___4.2.2. 스프링 MVC 적용
___4.2.3. 최상위 페이지의 표시 처리 구현
___4.2.4. 입력 화면의 표시 처리 구현
___4.2.5. 입력값 전송과 결괏값 출력 구현
___4.2.6. 입력값 검사 구현
___4.2.7. XML 파일을 이용한 빈 정의
4.3. 스프링 MVC 아키텍처
___4.3.1. 프레임워크 아키텍처
___4.3.2. 프런트 컨트롤러 아키텍처
___4.3.3. DI 컨테이너와의 연계

▣ 05장: 웹 애플리케이션 개발
5.1. 웹 애플리케이션의 종류
___5.1.1. 화면으로 응답하는 웹 애플리케이션
___5.1.2. 데이터만을 응답하는 웹 애플리케이션
5.2. 애플리케이션 설정
___5.2.1. 서블릿 컨테이너 설정
___5.2.2. 애플리케이션 컨텍스트 설정
___5.2.3. 프런트 컨트롤러 설정
5.3. @Controller 구현
___5.3.1. 컨트롤러에서 구현하는 처리 내용
___5.3.2. 컨트롤러 클래스 작성
___5.3.3. 핸들러 메서드 작성
___5.3.4. 핸들러 메서드의 매개변수
___5.3.5. 핸들러 메서드의 반환값
___5.3.6. 뷰 컨트롤러 이용
5.4. 요청 매핑
___5.4.1. 요청 경로 사용
___5.4.2. 경로 패턴 사용
___5.4.3. HTTP 메서드 사용
___5.4.4. 요청 파라미터 사용
___5.4.5. 요청 헤더 사용
___5.4.6. Content-Type 헤더 사용
___5.4.7. Accept 헤더 사용
5.5. 요청 데이터 취득
___5.5.1. 경로 변수 값 취득(@PathVariable)
___5.5.2. 요청 파라미터 값 취득(@RequestParam)
___5.5.3. @RequestParam, @RequestHeader, @CookieValue 속성값
___5.5.4. 컴파일 옵션과 주의할 점
___5.5.5. 이용 가능한 타입
___5.5.6. 바인딩 처리 커스터마이징(WebDataBinder)
___5.5.7. 애너테이션을 사용한 포맷 지정
5.6. 폼 클래스 구현
___5.6.1. 폼 객체의 스코프
___5.6.2. 폼 클래스 작성
___5.6.3. HTML 포맷과 바인딩
___5.6.4. 간단한 타입과의 바인딩
___5.6.5. 간단한 타입의 컬렉션과의 바인딩
___5.6.6. 중첩된 자바빈즈와의 바인딩
___5.6.7. 자바빈즈의 컬렉션과의 바인딩
___5.6.7. 프로퍼티 값의 설정 해제
5.7. 입력값 검사
___5.7.1. 입력값 검사 기능의 활성화
___5.7.2. 입력값 검사 결과의 판정
___5.7.3. 미입력 처리
___5.7.4. 입력값 검사 규칙 지정
___5.7.5. 중첩된 자바빈즈의 입력값 검사
___5.7.6. 입력값 검사 규칙 추가
___5.7.7. 입력값 검사 규칙을 교체하는 방법
___5.7.8. 오류 정보 표시
___5.7.9. 오류 메시지의 재정의
___5.7.10. Bean Validation 커스터마이징
___5.7.11. Spring Validator 이용
5.8. 화면 이동
___5.8.1. 이동 대상을 지정하는 방법
___5.8.2. 요청 경로로 리다이렉트
___5.8.3. 요청 경로로 포워드
___5.8.4. 뷰와의 데이터 연계
___5.8.5. 리다이렉트 대상과의 데이터 연계
5.9. 뷰 선택
___5.9.1. 템플릿 기반 뷰
___5.9.2. InternalResourceViewResolver의 빈 정의
5.10. JSP 구현
___5.10.1. - 9.5.6. JSP 화면 항목에 대한 인가
- 9.5.7. 인가 오류가 발생할 때의 응답
9.6. CSRF 방지
- 9.6.1. 스프링 시큐리티의 CSRF 대책
- 9.6.2. CSRF 방지 기능의 적용
- 9.6.3. 토큰 검사 오류가 발생할 때의 응답
- 9.6.4. CSRF 방지 기능과 스프링 MVC와의 연계
9.7. 세션 관리
- 9.7.1. 세션 관리 기능의 적용
- 9.7.2. URL 재작성의 억제 기능
- 9.7.3. 세션 고정 공격의 방지 기능
- 9.7.4. 다중 로그인 제어
- 9.7.5. 유효하지 않은 세션을 사용한 요청의 감지
9.8. 브라우저 보안 기능과의 연계
- 9.8.1. 보안 헤더 출력 기능의 적용
- 9.8.2. 기본적으로 지원하는 보안 헤더
- 9.8.3. 보안 헤더 선택
9.9. 스프링 시큐리티 테스트
- 9.9.1. 스프링 시큐리티 테스트 설정
- 9.9.2. 인증 처리의 테스트
- 9.9.3. 인가 처리의 테스트
- 9.9.4. CSRF 토큰 검사 대상에 대한 요청 테스트

10장: 스프링 데이터 JPA
10.1. JPA란?
- 10.1.1. ORM과 JPA의 개념
- 10.1.2. Entity
- 10.1.3. EntityManager
- 10.1.4. Entity 상태
- 10.1.5. 연관관계
- 10.1.6. JPQL(Java Persistence Query Language)
10.2. JPA를 이용한 데이터베이스 접근 기초
- 10.2.1. JPA에 의한 CRUD 작업
- 10.2.2. JPA의 JPQL을 활용한 데이터 접근
- 10.2.3. 배타 제어
10.3. 스프링 데이터 JPA
- 10.3.1. 스프링 데이터란?
- 10.3.2. 스프링 데이터 JPA란?
10.4 스프링 데이터 JPA 아키텍처
- 10.4.1. 내부 처리 흐름
- 10.4.2. JpaRepository
- 10.4.3. 예외 변환
10.5. 스프링 데이터 JPA 설정
- 10.5.1. 의존 라이브러리 정의
- 10.5.2. 데이터 소스 정의
- 10.5.3. EntityManagerFactory 정의
- 10.5.4. JpaTransactionManager 정의
- 10.5.5. 스프링 데이터 JPA 활성화
- 10.5.6. Open EntityManager in View 패턴 설정
10.6. Repository 생성과 활용
- 10.6.1. 스프링 데이터 JPA 표준의 CRUD 작업
- 10.6.2. JPQL을 활용한 데이터 접근
- 10.6.3. 배타 제어
- 10.6.4. 페이지 처리
- 10.6.5. Repository에 커스터마이징한 메서드 추가
- 10.6.6. 감사 정보의 부여

11장: 스프링 + 마이바티스
11.1. 마이바티스란?
- 11.1.1. 마이바티스와 스프링 연동
- 11.1.2. 마이바티스와 MyBatis-Spring의 주요 컴포넌트
- 11.1.3. MyBatis-Spring 예외 처리
11.2. 스프링 + 마이바티스 설정
- 11.2.1. 라이브러리 설정
- 11.2.2. 스프링과 마이바티스를 연계하기 위한 설정
- 11.2.3. 마이바티스 설정
11.3. 기본적인 CRUD 조작
- 11.3.1. Mapper 인터페이스 작성
- 11.3.2. 매핑 파일 작성
- 11.3.3. SQL에 값을 삽입하는 방법
- 11.3.4. 삽입값의 연계 방법
- 11.3.5. SELECT(Read) 조작 구현
- 11.3.6. INSERT(Create) 조작 구현
- 11.3.7. UPDATE 조작 구현
- 11.3.8. DELETE 조작 구현
- 11.3.9. Mapper 객체 활용
11.4. 마이바티스를 이용한 CRUD 조작
- 11.4.1. 매핑 파일로부터 동적 SQL 조립
- 11.4.2. SQL 빌더 클래스를 이용한 SQL 문 조립
- 11.4.3. 일대일과 일대다 매핑
- 11.4.4. RowBounds를 이용한 범위 검색
- 11.4.5. ResultHandler를 이용한 검색 결과 처리

12장: 스프링 + 타임리프
12.1. 타임리프란?
- 12.1.1. 타임리프 템블릿
- 12.1.2. 타임리프와 스프링 연계
12.2. 스프링 + 타임리프 설정
- 12.2.1. 라이브러리 설정
- 12.2.2. 스프링과 타임리프를 연계하기 위한 설정
12.3. 타임리프를 이용한 뷰 구현
- 12.3.1. 첫 번째 타임리프
- 12.3.2. 텍스트 입력
- 12.3.3. 표현식
- 12.3.4. th 속성에 의한 속성 값 설정
- 12.3.5. HTML 요소의 출력 제어
- 12.3.6. 인라인 표기법
- 12.3.7. 주석
- 12.3.8. 스프링과의 연계
- 12.3.9. 공통 템플릿 재사용
- 12.3.10. 스프링 시큐리티와의 연계
- 12.3.11. JS
지시자
___5.10.2. 스크립트릿
___5.10.3. 커스텀 태그 라이브러리
___5.10.4. 태그 파일
___5.10.5. EL
___5.10.6. EL 함수
___5.10.7. JSP 공통 설정
___5.10.8. JSTL
5.11. 스프링 HTML 폼 전용 태그 라이브러리의 활용
___5.11.1. 태그 라이브러리의 설정
___5.11.2. 폼 출력
___5.11.3. 폼 항목의 공통적인 속성
___5.11.4. 텍스트 필드 출력
___5.11.5. 패스워드 필드 출력
___5.11.6. 텍스트 영역 출력
___5.11.7. 여러 개의 체크박스 출력
___5.11.8. 체크박스 출력
___5.11.9. 여러 개의 라디오 버튼 출력
___5.11.10. 라디오 버튼 출력
___5.11.11. 셀렉트 박스 출력
___5.11.12. 숨겨진 필드 출력
___5.11.13. 라벨 출력
___5.11.14. 버튼 출력
___5.11.15. 입력값 검사 오류 출력
5.12. 스프링 범용 태그 라이브러리의 활용
___5.12.1. 태그 라이브러리의 설정
___5.12.2. 로캘별 메시지의 출력
___5.12.3. 테마별 메시지의 출력
___5.12.4. 입력값 검사 오류의 판단
___5.12.5. 바인딩 정보(BindStatus)의 취득
___5.12.6. BindStatus과 연계한 문자열 변환
___5.12.7. URL 생성
___5.12.8. 이스케이프 여부의 기본값 덮어쓰기
___5.12.9. 출력값 이스케이프
___5.12.10. SpEL 실행 결과의 취득
___5.12.11. 요청 매핑 정보와 연계한 URL 생성
5.13. 예외 처리
___5.13.1. 예외의 종류
___5.13.2. 예외의 발생 장소와 그에 따른 처리 방법
___5.13.3. 서블릿 컨테이너의 오류 페이지 기능 활용
___5.13.4. 스프링 MVC의 예외 핸들러 활용
___5.13.5. @ExceptionHandler 메서드 활용
___5.13.6. @ResponseStatus를 지정한 예외 클래스의 활용

▣ 06장: RESTful 웹 서비스 개발
6.1. REST API 아키텍처
___6.1.1. Resource Oriented Architecture(ROA)
___6.1.2. 프레임워크의 아키텍처
6.2. 애플리케이션 설정
___6.2.1. 라이브러리 설정
___6.2.2. 서블릿 컨테이너 설정
___6.2.3. 프런트 컨트롤러 설정
6.3. @RestController 구현
___6.3.1. 컨트롤러에서 구현할 처리의 전체 구조
___6.3.2. 컨트롤러 클래스 작성
___6.3.3. REST API(핸들러 메서드) 작성
___6.3.4. CORS 지원
___6.3.5. URI 조립
6.4. 리소스 클래스 구현
___6.4.1. 리소스 클래스 작성
___6.4.2. Jackson을 이용한 포맷 제어
6.5. 예외 처리
___6.5.1. REST API 오류 응답
___6.5.2. 스프링 MVC의 예외 핸들러 구현
___6.5.3. 처리할 예외 클래스의 추가
___6.5.4. 입력값 검사 예외의 처리
___6.5.5. 서블릿 컨테이너에 전달된 오류의 응답
6.6. REST 클라이언트 구현
___6.6.1. RestTemplate이란?
___6.6.2. RestTemplate 설정
___6.6.3. REST API 호출
___6.6.4. 오류 응답 처리
___6.6.5. 타임아웃 지정

▣ 07장: 스프링 MVC 응용
7.1. HTTP 세션 이용
___7.1.1. 세션 속성(@SessionAttributes)
___7.1.2. 세션 스코프 빈
7.2. 파일 업로드
___
7.2.1. 파일 업로드 구조
___7.2.2. 파일 업로드 기능 설정
___7.2.3. 업로드 데이터의 취득
7.3. 비동기 요청의 구현
___7.3.1. 비동기 요청의 동작 방식
___7.3.2. 비동기 기능을 활성화하기 위한 설정
___7.3.3. 비동기 처리의 구현
___7.3.4. 비동기 처리에서의 예외 처리
___7.3.5. 비동기 실행에 대한 공통 처리 구현
7.4. 공통 처리의 구현
___7.4.1. 서블릿 필터 이용
___7.4.2. HandlerInterceptor 이용
___7.4.3. @ControllerAdvice 이용
___7.4.4. HandlerMethodArgumentResolver 이용
7.5. 정적 리소스
___7.5.1. 기본 서블릿과 DispatcherServlet의 공존
___7.5.2. 스프링 MVC 독자적인 정적 리소스의 취급 방법
7.6. 국제화
___7.6.1. 로캘 결정
___7.6.2. 로캘 활용
___7.6.3. UI를 이용한 로캘 전환

▣ 08장: 스프링 테스트란?
8.1. 스프링 테스트란?
8.2. DI 컨테이너와 빈 테스트
___8.2.1. 빈에 대한 단위 테스트
___8.2.2. DI 컨테이너에서 관리되는 빈에 대한 통합 테스트
___8.2.3. 스프링 TestContext 프레임워크
___8.2.4. DI 컨테이너의 설정
___8.2.5. DI 컨테이너의 라이프사이클 제어
___8.2.6. 프로파일 지정
___8.2.7. 테스트용 프로퍼티 값 지정
8.3. 데이터베이스 테스트
___8.3.1. 테스트 데이터 소스 설정
___8.3.2. 테스트 데이터 적재
___8.3.3. 테스트 케이스를 위한 트랜잭션 제어
___8.3.4. 데이터 검증
8.4. 스프링 MVC 테스트
___8.4.1. MockMvc란?
___8.4.2. MockMvc 설정
___8.4.3. 테스트 실행
___8.4.4. 요청 데이터 설정
___8.4.5. 실행 결과의 검증
___8.4.6. 실행 결과 출력

▣ 09장: 스프링 시큐리티
9.1. 스프링 시큐리티란?
___9.1.1. 스프링 시큐리티의 특징
___9.1.2. 기본적인 보안 기능
___9.1.3. 강화된 보안 기능
9.2. 스프링 시큐리티의 설정
___9.2.1. 라이브러리의 설정
___9.2.2. 스프링 시큐리티의 빈 정의
___9.2.3. 서블릿 필터 설정
9.3. 스프링 시큐리티의 아키텍처
___9.3.1. 스프링 시큐리티의 모듈 구성
___9.3.2. 프레임워크 아키텍처
9.4. 인증 처리
___9.4.1. 인증 처리 메커니즘
___9.4.2. 폼 인증
___9.4.3. 인증이 성공했을 때의 응답
___9.4.4. 인증이 실패했을 때의 응답
___9.4.5. 데이터베이스 인증
___9.4.6. 패스워드 해시화
___9.4.7. 인증 이벤트 처리
___9.4.8. 로그아웃
___9.4.9. 로그아웃이 성공했을 때의 응답
___9.4.10. 인증 정보에 대한 접근
___9.4.11. 인증 처리와 스프링 MVC의 연계
___9.4.12. 오류 메시지
9.5. 인가 처리
___9.5.1. 인가 처리 구조
___9.5.2. 접근 정책을 기술하는 방법
___9.5.3. 웹 리소스에 대한 인가(자바 기반 설정 방식)
___9.5.4. 웹 리소스에 대한 인가(XML 기반 설정 방식)
___9.5.5. 메서드에 대한 인가
___9.5.6. JSP 화면 항목에 대한 인가
___9.5.7. 인가 오류가 발생할 때의 응답
9.6. CSRF 방지
___9.6.1. 스프링 시큐리티의 CSRF 대책
___9.6.2. CSRF 방지 기능의 적용
___9.6.3. 토큰 검사 오류가R 310: Date and Time API 이용

13장: 스프링 부트
13.1. 스프링 부트란?
- 13.1.1. 스프링 부트를 이용한 Hello World 애플리케이션 제작
- 13.1.2. AutoConfigure를 이용한 설정 자동화
- 13.1.3. Starter를 이용한 의존 라이브러리 관리
- 13.1.4. 실행 가능한 jar 만들기
13.2. 스프링 부트와 스프링 MVC
- 13.2.1. RESTful 웹 서비스 만들기
- 13.2.2. 화면 이동형 웹 애플리케이션 만들기
13.3. 스프링 부트와 데이터 접근
- 13.3.1. 스프링 JDBC
- 13.2.2. 스프링 데이터 JPA
- 13.3.3. 마이바티스
- 13.3.4. 커넥션 풀 라이브러리 변경
13.4. 스프링 부트와 스프링 시큐리티
- 13.4.1. 기본 인증
- 13.4.2. 인증, 인가 커스터마이징
13.5. 스프링 부트로 프로퍼티의 타입 안정성 확보
- 13.5.1. @ConfigurationProperties를 이용한 프로퍼티 설정
- 13.5.2. Bean Validation을 이용한 프로퍼티 값 검증
- 13.5.3. IDE에서의 프로퍼티 지원 기능
13.6. 스프링 부트 액추에이터를 이용한 운영 기능 강화
- 13.6.1. HTTP 엔드포인트 추가
- 13.6.2. 헬스 체크
- 13.6.3. 메트릭
- 13.6.4. 보안 기능 활성화

14장: 실습
14.1. 애플리케이션의 개요
- 14.1.1. ER 다이어그램
- 14.1.2. 회의실 목록 표시 기능의 화면 사양
- 14.1.3. 예약 기능의 화면 사양
- 14.1.4. 로그인 기능의 화면 사양
14.2. 애플리케이션 개발
- 14.2.1. 프로젝트의 기본 골격 구성
- 14.2.2. 프로젝트 소스의 패키지 구조 구성
- 14.2.3. PostgreSQL 설정
- 14.2.4. 프로퍼티 파일 설정
- 14.2.5. 라이브러리 추가
- 14.2.6. JPA 엔터티 생성
- 14.2.7. 회의실 목록 표시 기능 구현
- 14.2.8. 회의실 예약 기능 구현
- 14.2.9. 로그인 기능 구현
- 14.2.10. 실행 가능한 JAR 생성
14.3. 마무리

15장: 스프링 배치
15.1. 스프링 배치란?
- 15.1.1. 배치 처리란?
- 15.1.2. 배치 처리가 충족시켜야 할 요건
- 15.1.3. 스프링 배치란?
- 15.1.4. 스프링 배치의 기본 구조
15.2. 간단한 배치 애플리케이션 개발
- 15.2.1. 작성할 배치 애플리케이션의 요구사항
- 15.2.2. 설계
- 15.2.3. pom.xml 설정
- 15.2.4. 잡 구현
- 15.2.5. truncateStep 구현
- 15.2.6. importFileStep 구현
- 15.2.7. 테스트
- 15.2.8. 배치 실행(정상 종료)
- 15.2.9. 배치 실행(비정상 종료)
15.3. 스프링 배치의 아키텍처
- 15.3.1. 구성 요소
- 15.3.2. 잡 기동
- 15.3.3. 비즈니스 로직 정의
- 15.3.4. 트랜잭션 관리
- 15.3.5. 배치 처리 결과 출력
- 15.3.6. 여러 개의 스텝에서 흐름 제어하기
- 15.3.7. 병렬 처리

A장: 부록
A.1 로컬 개발 환경을 위한 프로젝트 구성
- A.1.1. IDE 설치 및 설정
- A.1.2. 프로젝트 생성
- A.1.3. 애플리케이션의 동작 확인
발생할 때의 응답
___9.6.4. CSRF 방지 기능과 스프링 MVC와의 연계
9.7. 세션 관리
___9.7.1. 세션 관리 기능의 적용
___9.7.2. URL 재작성의 억제 기능
___9.7.3. 세션 고정 공격의 방지 기능
___9.7.4. 다중 로그인 제어
___9.7.5. 유효하지 않은 세션을 사용한 요청의 감지
9.8. 브라우저 보안 기능과의 연계
___9.8.1. 보안 헤더 출력 기능의 적용
___9.8.2. 기본적으로 지원하는 보안 헤더
___9.8.3. 보안 헤더 선택
9.9. 스프링 시큐리티 테스트
___9.9.1. 스프링 시큐리티 테스트 설정
___9.9.2. 인증 처리의 테스트
___9.9.3. 인가 처리의 테스트
___9.9.4. CSRF 토큰 검사 대상에 대한 요청 테스트

▣ 10장: 스프링 데이터 JPA
10.1. JPA란?
___10.1.1. ORM과 JPA의 개념
___10.1.2. Entity
___10.1.3. EntityManager
___10.1.4. Entity 상태
___10.1.5. 연관관계
___10.1.6. JPQL(Java Persistence Query Language)
10.2. JPA를 이용한 데이터베이스 접근 기초
___10.2.1. JPA에 의한 CRUD 작업
___10.2.2. JPA의 JPQL을 활용한 데이터 접근
___10.2.3. 배타 제어
10.3. 스프링 데이터 JPA
___10.3.1. 스프링 데이터란?
___10.3.2. 스프링 데이터 JPA란?
10.4 스프링 데이터 JPA 아키텍처
___10.4.1. 내부 처리 흐름
___10.4.2. JpaRepository
___10.4.3. 예외 변환
10.5. 스프링 데이터 JPA 설정
___10.5.1. 의존 라이브러리 정의
___10.5.2. 데이터 소스 정의
___10.5.3. EntityManagerFactory 정의
___10.5.4. JpaTransactionManager 정의
___10.5.5. 스프링 데이터 JPA 활성화
___10.5.6. Open EntityManager in View 패턴 설정
10.6. Repository 생성과 활용
___10.6.1. 스프링 데이터 JPA 표준의 CRUD 작업
___10.6.2. JPQL을 활용한 데이터 접근
___10.6.3. 배타 제어
___10.6.4. 페이지 처리
___10.6.5. Repository에 커스터마이징한 메서드 추가
___10.6.6. 감사 정보의 부여

▣ 11장: 스프링 + 마이바티스
11.1. 마이바티스란?
___11.1.1. 마이바티스와 스프링 연동
___11.1.2. 마이바티스와 MyBatis-Spring의 주요 컴포넌트
___11.1.3. MyBatis-Spring 예외 처리
11.2. 스프링 + 마이바티스 설정
___11.2.1. 라이브러리 설정
___11.2.2. 스프링과 마이바티스를 연계하기 위한 설정
___11.2.3. 마이바티스 설정
11.3. 기본적인 CRUD 조작
___11.3.1. Mapper 인터페이스 작성
___11.3.2. 매핑 파일 작성
___11.3.3. SQL에 값을 삽입하는 방법
___11.3.4. 삽입값의 연계 방법
___11.3.5. SELECT(Read) 조작 구현
___11.3.6. INSERT(Create) 조작 구현
___11.3.7. UPDATE 조작 구현
___11.3.8. DELETE 조작 구현
___11.3.9. Mapper 객체 활용
11.4. 마이바티스를 이용한 CRUD 조작
___11.4.1. 매핑 파일로부터 동적 SQL 조립
___11.4.2. SQL 빌더 클래스를 이용한 SQL 문 조립
___11.4.3. 일
대일과 일대다 매핑
___11.4.4. RowBounds를 이용한 범위 검색
___11.4.5. ResultHandler를 이용한 검색 결과 처리

▣ 12장: 스프링 + 타임리프
12.1. 타임리프란?
___12.1.1. 타임리프 템블릿
___12.1.2. 타임리프와 스프링 연계
12.2. 스프링 + 타임리프 설정
___12.2.1. 라이브러리 설정
___12.2.2. 스프링과 타임리프를 연계하기 위한 설정
12.3. 타임리프를 이용한 뷰 구현
___12.3.1. 첫 번째 타임리프
___12.3.2. 텍스트 입력
___12.3.3. 표현식
___12.3.4. th 속성에 의한 속성 값 설정
___12.3.5. HTML 요소의 출력 제어
___12.3.6. 인라인 표기법
___12.3.7. 주석
___12.3.8. 스프링과의 연계
___12.3.9. 공통 템플릿 재사용
___12.3.10. 스프링 시큐리티와의 연계
___12.3.11. JSR 310: Date and Time API 이용

▣ 13장: 스프링 부트
13.1. 스프링 부트란?
___13.1.1. 스프링 부트를 이용한 Hello World 애플리케이션 제작
___13.1.2. AutoConfigure를 이용한 설정 자동화
___13.1.3. Starter를 이용한 의존 라이브러리 관리
___13.1.4. 실행 가능한 jar 만들기
13.2. 스프링 부트와 스프링 MVC
___13.2.1. RESTful 웹 서비스 만들기
___13.2.2. 화면 이동형 웹 애플리케이션 만들기
13.3. 스프링 부트와 데이터 접근
___13.3.1. 스프링 JDBC
___13.2.2. 스프링 데이터 JPA
___13.3.3. 마이바티스
___13.3.4. 커넥션 풀 라이브러리 변경
13.4. 스프링 부트와 스프링 시큐리티
___13.4.1. 기본 인증
___13.4.2. 인증, 인가 커스터마이징
13.5. 스프링 부트로 프로퍼티의 타입 안정성 확보
___13.5.1. @ConfigurationProperties를 이용한 프로퍼티 설정
___13.5.2. Bean Validation을 이용한 프로퍼티 값 검증
___13.5.3. IDE에서의 프로퍼티 지원 기능
13.6. 스프링 부트 액추에이터를 이용한 운영 기능 강화
___13.6.1. HTTP 엔드포인트 추가
___13.6.2. 헬스 체크
___13.6.3. 메트릭
___13.6.4. 보안 기능 활성화

▣ 14장: 실습
14.1. 애플리케이션의 개요
___14.1.1. ER 다이어그램
___14.1.2. 회의실 목록 표시 기능의 화면 사양
___14.1.3. 예약 기능의 화면 사양
___14.1.4. 로그인 기능의 화면 사양
14.2. 애플리케이션 개발
___14.2.1. 프로젝트의 기본 골격 구성
___14.2.2. 프로젝트 소스의 패키지 구조 구성
___14.2.3. PostgreSQL 설정
___14.2.4. 프로퍼티 파일 설정
___14.2.5. 라이브러리 추가
___14.2.6. JPA 엔터티 생성
___14.2.7. 회의실 목록 표시 기능 구현
___14.2.8. 회의실 예약 기능 구현
___14.2.9. 로그인 기능 구현
___14.2.10. 실행 가능한 JAR 생성
14.3. 마무리

▣ 15장: 스프링 배치
15.1. 스프링 배치란?
___15.1.1. 배치 처리란?
___15.1.2. 배치 처리가 충족시켜야 할 요건
___15.1.3. 스프링 배치란?
___15.1.4. 스프링 배치의 기본 구조
15.2. 간단한 배치 애플리케이션 개발
___15.2.1. 작성할 배치 애플리케이션의 요구사항
___15.2.2. 설계
___15.2.3. pom.
xml 설정
___15.2.4. 잡 구현
___15.2.5. truncateStep 구현
___15.2.6. importFileStep 구현
___15.2.7. 테스트
___15.2.8. 배치 실행(정상 종료)
___15.2.9. 배치 실행(비정상 종료)
15.3. 스프링 배치의 아키텍처
___15.3.1. 구성 요소
___15.3.2. 잡 기동
___15.3.3. 비즈니스 로직 정의
___15.3.4. 트랜잭션 관리
___15.3.5. 배치 처리 결과 출력
___15.3.6. 여러 개의 스텝에서 흐름 제어하기
___15.3.7. 병렬 처리

▣ A장: 부록
A.1 로컬 개발 환경을 위한 프로젝트 구성
___A.1.1. IDE 설치 및 설정
___A.1.2. 프로젝트 생성
___A.1.3. 애플리케이션의 동작 확인

저자소개

생년월일 1975

저자 신상재는 일본 기술서 번역가이자 ‘번역하는 개발자’ 유튜버다. 삼성SDS에서 소프트웨어 아키텍트로 활동하다가 애자일 코어 팀 ACT에 합류하였다. 기술보다는 사람이라는 깨달음을 얻은 후부터는 최신 기술을 익히기보다는 사람의 마음을 읽고, 견고한 시스템을 구축하는 것보다는 유연한 팀을 빌딩하고, 서비스에 가치를 부여하기보다는 사람에게 동기를 부여하는 것에 더 많은 관심이 생겼다. 주요 번역서로는 『비즈니스 프레임워크 도감』(로드북, 2020), 『인공지능을 위한 수학』(프리렉, 2018), 『스프링 철저 입문』(위키북스, 2018), 『1억배 빠른 양자 컴퓨터가

펼쳐보기

전공도서/대학교재 분야에서 많은 회원이 구매한 책

    리뷰

    0.0 (총 0건)

    구매 후 리뷰 작성 시, 북피니언 지수 최대 600점

    리뷰쓰기

    기대평

    작성시 유의사항

    평점
    0/200자
    등록하기

    기대평

    10.0

    판매자정보

    • 인터파크도서에 등록된 오픈마켓 상품은 그 내용과 책임이 모두 판매자에게 있으며, 인터파크도서는 해당 상품과 내용에 대해 책임지지 않습니다.

    판매자

    (주)교보문고

    상호

    (주)교보문고

    사업자 종류

    법인사업자

    사업자번호

    102-81-11670

    연락처

    1544-1900

    이메일

    callcenter@kyobobook.co.kr

    통신판매 신고 번호

    01-0653

    영업소재지

    서울특별시 종로구 종로 1(종로1가,교보빌딩)

    교환/환불

    반품/교환 방법

    ‘마이페이지 > 취소/반품/교환/환불’ 에서 신청 또는 1:1 문의 게시판 및 고객센터(1577-2555)에서 신청 가능

    반품/교환가능 기간

    변심 반품의 경우 출고완료 후 6일(영업일 기준) 이내까지만 가능
    단, 상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내

    반품/교환 비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
    상품이나 서비스 자체의 하자로 인한 교환/반품은 반송료 판매자 부담

    반품/교환 불가 사유

    ·소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)

    ·소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등

    ·복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집

    ·시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우

    ·전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

    상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있음

    소비자 피해보상
    환불지연에 따른 배상

    ·상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨

    ·대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

    배송안내

    • 교보문고 상품은 택배로 배송되며, 출고완료 1~2일내 상품을 받아 보실 수 있습니다.

    • 출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 상품을 기준으로 배송됩니다.

    • 군부대, 교도소 등 특정기관은 우체국 택배만 배송가능합니다.

    • 배송비는 업체 배송비 정책에 따릅니다.

    • - 도서 구매 시, 1만 원 이상 무료, 1만원 미만 2천 원 - 상품별 배송비가 있는 경우, 상품별 배송비 정책 적용