책 소개
[스프링3 입문]이 스프링4 버전으로 돌아왔습니다. [스프링3 입문]의 친절한 설명을 그대로 따르되 스프링4에 맞춰 내용을 더하고 다듬었습니다. 각 장의 주요 내용을 살펴보면 다음과 같습니다.
1장. 기초 지식 쌓기
스프링과 웹 애플리케이션에 대한 기초 지식을 알아봅니다. 스프링에 대한 자세한 설명보다는 스프링 및 웹 애플리케이션 개발에 중요한 애플리케이션 아키텍처를 살펴봅니다. 초심자에게는 필수입니다.
2~3장. 스프링 코어 살펴보기
2장에서는 스프링 코어의 하나인 DI를 살펴봅니다. DI의 개요를 설명하고 스프링에서 DI를 어떻게 이용하는지, 그 특징과 사용법을 이해할 수 있습니다. 3장에서는 스프링 코어의 또 다른 부분인 AOP를 알아봅니다. 2장과 3장을 끝까지 읽으면 DI와 AOP를 사용해서 어떻게 웹 애플리케이션을 만들어가는지 그 골격을 이해할 수 있습니다.
4~6장. 데이터 액세스 층, 비즈니스 로직 층, 프레젠테이션 층 이해하기
4~6장에 걸쳐 데이터 액세스 층, 비즈니스 로직 층, 프레젠테이션 층을 살펴봅니다.
먼저 4장에서 데이터 액세스 층의 설계상 문제점과 해결책을 알아본 다음, 스프링 JDBC와 스프링 Data JPA를 살펴봅니다. 스프링 JDBC와 스프링 Data JPA의 이점 및 사용법을 이해할 수 있을 것입니다.
5장에서는 트랜잭션이란 무엇인지를 살펴본 다음, 스프링의 트랜잭션 기능을 알아봅니다. 선언적 트랜잭션과 명시적 트랜잭션을 이해하는 것이 목표입니다.
6장에서는 스프링의 MVC 프레임워크를 샘플 애플리케이션을 통해 설명합니다. 주류로 자리매김한 REST 통신 등도 해보면서 MVC 프레임워크를 구성하는 기본적인 클래스의 이용 방법을 알아봅니다. 어떤 의미에서는 웹 애플리케이션의 핵심이라고 말할 수도 있는 프레젠테이션 층의 기술을 충분히 이해할 수 있을 것입니다.
7장. 스프링 시큐리티를 사용해 인증·인가 기능 구현하기
웹 애플리케이션에는 반드시 필요한 동시에, 그 중요성에 비해서는 이해하고 있는 사람이 적다고 생각되는 인증·인가 기능을 설명합니다. 기본적인 개념부터 시작해서 웹 애플리케이션에 스프링 시큐리티를 도입해서 인증·인가 기능을 구현하는 방법까지 알아봅니다.
8장. 하이버네이트, JPA, MyBatis와 연계하는 방법 알아보기
대표적인 ORM 데이터 액세스 기술인 하이버네이트, JPA, MyBatis와 연계하는 방법을 알아봅니다. 이 장을 마치면 ORM 단독으로 사용하는 것보다는 스프링과 연계하는 편이 좋다는 점을 알수 있으며, 각각의 ORM에 대한 특징을 이해해서 실제 현장에서 무엇이 최적인가를 판단할 수 있을 것입니다.
9~10장. 스프링 캐시와 스프링 배치 알아보기
캐시는 웹 애플리케이션을 만들 때에 의외로 많이 사용되는 기술입니다. 9장에서는 스프링 캐시를 이해하기 위해 샘플을 준비해서 간략하게 설명합니다. 웹 애플리케이션에서 캐시를 어떻게 사용하면 좋은지 이해할 수 있습니다.
배치를 사용하지 않는 프로젝트는 없을 것입니다. 10장에서는 배치 처리의 기초를 설명하고, 스프링 배치에 대해 간단한 예부터 난이도가 높은 샘플까지 순서대로 알아봅니다. 배치는 무엇인지, 배치는 어떻게 만들어야 하는지를 알 수 있습니다.
11장. 스프링 부트로 클라우드 네이티브 맛보기
이 장의 내용을 이해한다면 최신 경향의 개발을 경험해봤다고 할 수 있습니다. 이 장에서는 클라우드 네이티브 입문으로서 스프링 부트에 대해 설명합니다. 최근 각광받는 마이크로서비스와 클라우드 네이티브란 어떤 것인지 체험할 수 있습니다.
_대상 독자
● 이제 막 실무에 뛰어든 웹 애플리케이션 초급자
● 다른 프레임워크 개발 경험은 있지만 스프링은 사용해본 적 없는 분
● 개발에 스프링을 사용한 적은 있지만 스프링이 무엇인지 잘 모르겠다는 분
작가 소개
저 : 하세가와 유이치
Yuichi Hasegawa,はせがわ ゆういち,長谷川 裕一
1964년 도쿄 출신. ‘우리다운 일을 해 보자’라는 목표로 2007년 10월에 독립하여 Starlight & Storm LLC(http://www.starlight-storm.com/)를 설립했습니다. 세상에는 불합리한 것도 많지만, 엔지니어의 신념에 따라 불합리한 일은 거부하고 있으며, 앞으로도 신념을 지켜나갈 생각입니다. 그런데 업무도 물론 중요하지만 이제부터는 아내 님을 잘 모셔서 언제까지나 행복하게 살고 싶습니다.
저 : 오오노 와타루
Wataru Ohno,おおの わたる,大野 涉
1976년 도야마현 다카오카시 출신. Starlight & Storm의 멤버로서 주로 기업 연수 및 기술 지원을 담당합니다. 객체 지향 설계 및 자바 오픈소스 프레임워크를 기본으로 한 애플리케이션 아키텍처 구축에 강점이 있습니다. 2008년에 결혼해 올해 드디어 염원하던 ‘우리집’을 손에 넣었습니다. 요즘은 미래에 대해 이것저것 생각하고는 합니다.
저 : 토키 코헤이
Kouhei Toki,とき こうへい,土岐 孝平
1976년 미야자키 출신. 대학에서 정보 공학을 전공했지만, 졸업 후에는 어느 캐주얼 숍의 판매원이 됐습니다. 다음 해에 상경하여 IT 세계에 합류했습니다. 비효율적인 개발 현장을 다수 겪으며, 교육과 컨설팅의 중요성을 통감하여 현재는 자바 관련 교육 및 컨설팅에 종사하고 있습니다. 집에서 작업하는 일이 많고, 텔레비전 같은 유혹은 이겨낼 수 있게 됐지만 충동적으로 골프 연습장에 가기도 합니다.
역 : 권은철
2002년 일본으로 건너가 개발자를 거쳐 아키텍트로 활동했고, 2007년 라쿠텐에 입사하여 현재까지 근무하고 있습니다. 초창기에는 서비스를 담당하며 WebLogic과 Coherence를 전문으로 하는 미들웨어 엔지니어이자 아키텍트로 활동했습니다. 이때 쌓은 시스템 경험을 바탕으로 사내 클라우드 플랫폼 및 무정지 오퍼레이션을 설계했습니다. 이 시스템은 Mastering DevOps with Oracle에 Best Practice로 소개돼 있으며, 오라클 이노베이션 어워드를 2회 수상했습니다. 현재는 엔지니어이자 E-Commerce 코어 플랫폼 그룹의 매니저로, 여러 개발 프로젝트를 리드하면서 외부 발표도 하는 등 매우 바쁜 나날을 보내고 있습니다.
역 : 전민수
2006년에 라쿠텐에 입사해서 현재 프린시플 아키텍트로 근무하고 있습니다. 라쿠텐 트라벨에서 새로운 시스템의 검증이나 튜닝을 주업무로 하며, 웹 검색 전문 그룹의 매니저도 겸하고 있습니다. 2016년 팟캐스트 ‘나는 프로그래머다’의 나프콘과 Tech Planet 2016에서 프로세스와 검색 시스템을 주제로 발표했습니다.
목 차
1.1 스프링의 최신 정보
1.2 스프링과 웹 애플리케이션
1.3 애플리케이션 아키텍처
1.4 프레젠테이션 층의 역할
1.5 비즈니스 로직 층의 역할
1.6 데이터 액세스 층의 역할
1.7 웹 애플리케이션이 안고 있는 문제
1.8 스프링 개요
CHAPTER 02 스프링 DI
2.1 DI란?
2.2 DI를 사용할 곳
2.3 어노테이션을 이용한 DI
2.4 Bean 정의 파일을 이용한 DI
2.5 JavaConfig를 이용한 DI
2.6 ApplicationContext
2.7 스프링 로깅
2.8 스프링의 유닛 테스트
2.9 Bean 정의 파일의 프로파일 기능
2.10 생명 주기
CHAPTER 03 스프링 AOP
3.1 AOP란?
3.2 어노테이션을 이용한 AOP
3.3 JavaConfig를 이용한 AOP
3.4 Bean 정의 파일을 이용한 AOP
CHAPTER 04 데이터 액세스 층의 설계와 구현
4.1 데이터 액세스 층과 스프링
4.2 스프링 JDBC
4.3 Spring Data JPA
4.4 정리
CHAPTER 05 비즈니스 로직 층의 설계와 구현
5.1 트랜잭션이란?
5.2 트랜잭션 매니저
5.3 트랜잭션 기능의 사용법
5.4 정리
CHAPTER 06 프레젠테이션 층의 설계와 구현
6.1 스프링 MVC의 개요
6.2 환경 만들기와 동작 확인
6.3 예제 애플리케이션 개요
6.4 화면을 표시하는 컨트롤러
6.5 입력값을 받는 컨트롤러
6.6 그 밖의 기능
6.7 정리
CHAPTER 07 인증·인가
7.1 인증·인가와 프레임워크
7.2 인증·인가의 기본
7.3 스프링 시큐리티
7.4 스프링 시큐리티의 기본 구조
7.5 웹 애플리케이션과 인증
7.6 웹 애플리케이션과 인가(액세스 제어)
7.7 스프링 시큐리티의 연계 기능
7.8 시큐리티 공격 대책
7.9 정리
CHAPTER 08 ORM 연계 - 하이버네이트, JPA, MyBatis
8.1 하이버네이트와의 연계
8.2 JPA와의 연계
8.3 MyBatis와의 연계
8.4 정리
CHAPTER 09 캐시 추상 기능 - Spring Cache
9.1 ProductDaoImpl과 ProductServiceImpl, ProductSampleRun의 수정과 동작 확인
9.2 응용 편
CHAPTER 10 배치의 설계와 구현
10.1 배치
10.2 스프링 배치
10.3 예제로 알아보기
CHAPTER 11 클라우드 네이티브 입문
11.1 스프링 부트
11.2 PWS를 이용한 "Hello World!"
11.3 PWS에 로그인하기
11.4 PWS에 디플로이하고 실행해보기
11.5 정리
책을 마치며
- 단순 변심인 경우 : 상품 수령 후 7일 이내 신청
- 상품 불량/오배송인 경우 : 상품 수령 후 3개월 이내, 혹은 그 사실을 알게 된 이후 30일 이내 반품 신청 가능
반품사유 | 반품 배송비 부담자 |
---|---|
단순변심 | 고객 부담이며, 최초 배송비를 포함해 왕복 배송비가 발생합니다. 또한, 도서/산간지역이거나 설치 상품을 반품하는 경우에는 배송비가 추가될 수 있습니다. |
고객 부담이 아닙니다. |
진행 상태 | 결제완료 | 상품준비중 | 배송지시/배송중/배송완료 |
---|---|---|---|
어떤 상태 | 주문 내역 확인 전 | 상품 발송 준비 중 | 상품이 택배사로 이미 발송 됨 |
환불 | 즉시환불 | 구매취소 의사전달 → 발송중지 → 환불 | 반품회수 → 반품상품 확인 → 환불 |
- 결제완료 또는 배송상품은 1:1 문의에 취소신청해 주셔야 합니다.
- 특정 상품의 경우 취소 수수료가 부과될 수 있습니다.
결제수단 | 환불시점 | 환불방법 |
---|---|---|
신용카드 | 취소완료 후, 3~5일 내 카드사 승인취소(영업일 기준) | 신용카드 승인취소 |
계좌이체 |
실시간 계좌이체 또는 무통장입금 취소완료 후, 입력하신 환불계좌로 1~2일 내 환불금액 입금(영업일 기준) |
계좌입금 |
휴대폰 결제 |
당일 구매내역 취소시 취소 완료 후, 6시간 이내 승인취소 전월 구매내역 취소시 취소 완료 후, 1~2일 내 환불계좌로 입금(영업일 기준) |
당일취소 : 휴대폰 결제 승인취소 익월취소 : 계좌입금 |
포인트 | 취소 완료 후, 당일 포인트 적립 | 환불 포인트 적립 |
- 단순변심으로 인한 반품 시, 배송 완료 후 7일이 지나면 취소/반품 신청이 접수되지 않습니다.
- 주문/제작 상품의 경우, 상품의 제작이 이미 진행된 경우에는 취소가 불가합니다.
- 구성품을 분실하였거나 취급 부주의로 인한 파손/고장/오염된 경우에는 취소/반품이 제한됩니다.
- 제조사의 사정 (신모델 출시 등) 및 부품 가격변동 등에 의해 가격이 변동될 수 있으며, 이로 인한 반품 및 가격보상은 불가합니다.
- 뷰티 상품 이용 시 트러블(알러지, 붉은 반점, 가려움, 따가움)이 발생하는 경우 진료 확인서 및 소견서 등을 증빙하면 환불이 가능하지만 이 경우, 제반 비용은 고객님께서 부담하셔야 합니다.
- 각 상품별로 아래와 같은 사유로 취소/반품이 제한 될 수 있습니다.
상품군 | 취소/반품 불가사유 |
---|---|
의류/잡화/수입명품 | 상품의 택(TAG) 제거/라벨 및 상품 훼손으로 상품의 가치가 현저히 감소된 경우 |
계절상품/식품/화장품 | 고객님의 사용, 시간경과, 일부 소비에 의하여 상품의 가치가 현저히 감소한 경우 |
가전/설치상품 | 전자제품 특성 상, 정품 스티커가 제거되었거나 설치 또는 사용 이후에 단순변심인 경우, 액정화면이 부착된 상품의 전원을 켠 경우 (상품불량으로 인한 교환/반품은 AS센터의 불량 판정을 받아야 합니다.) |
자동차용품 | 상품을 개봉하여 장착한 이후 단순변심의 경우 |
CD/DVD/GAME/BOOK등 | 복제가 가능한 상품의 포장 등을 훼손한 경우 |
상품의 시리얼 넘버 유출로 내장된 소프트웨어의 가치가 감소한 경우 | |
노트북, 테스크탑 PC 등 | 홀로그램 등을 분리, 분실, 훼손하여 상품의 가치가 현저히 감소하여 재판매가 불가할 경우 |