장바구니 담기 close

장바구니에 상품을 담았습니다.

스프링 애플리케이션 개발

스프링 애플리케이션 개발 예제로 배우는 스프링 4

  • 라비 칸트 소니
  • |
  • 에이콘출판
  • |
  • 2016-08-17 출간
  • |
  • 552페이지
  • |
  • 186 X 232 X 43 mm /1026g
  • |
  • ISBN 9788960778894
★★★★★ 평점(10/10) | 리뷰(1)
판매가

35,000원

즉시할인가

31,500

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

수량
+ -
총주문금액
31,500

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평

★ 이 책에서 다루는 내용 ★

■ 스프링 프레임워크 아키텍처와 스프링 애플리케이션 개발 환경의 구성요소 설정
■ 스프링 컨테이너 설정 및 XML과 애노테이션을 이용한 스프링 빈 관리
■ 애스펙트와 어드바이스, 포인트컷, 인트로덕션을 비롯한 스프링 AOP의 개념
■ 스프링 프레임워크와 하이버네이트를 이용한 JDBC와 ORM 지원
■ 스프링 웹 컨트롤러와 폼 태그 라이브러리를 이용한 효율적인 스프링 MVC 애플리케이션 개발
■ 스프링 시큐리티를 이용해 불법적인 침입자로부터 애플리케이션을 보호하는 방법
■ 스프링 메일 애플리케이션 프로그래밍 인터페이스를 바탕으로 한 이메일 송수신

★ 이 책의 대상 독자 ★

이 책은 스프링 프레임워크를 배우고자 하는 사람들을 대상으로 하며, 자바 프로그래밍과 웹 애플리케이션에 대한 사전지식이 필요하다. 개발자든, 아키텍트든, 관리자든 팀에서의 역할에 상관없이, 이 책은 적용 가능한 스프링 기술을 학습할 수 있도록 가장 효과적이고 적절한 방법을 제공할 것이다. XML에 익숙하면 좋겠지만 XML 초보자도 큰 어려움 없이 이 책의 내용을 이해할 수 있다. 또한 엔터프라이즈 개발 지식이 있으면 좋겠지만 필수는 아니다. 이 책은 코어 층, 데이터 접근 계층, 웹 계층에 기반한다. 개발 예제 코드를 통해 단계적으로 접근해 초보자도 쉽게 애플리케이션 개발을 이해할 수 있다.

★ 이 책의 구성 ★

1장, ‘스프링 프레임워크 소개’에서는 스프링 프레임워크 구조에 대한 이해와 스프링 애플리케이션 개발 환경의 주요 컴포넌트 설정을 살펴본다. 이 책의 나머지 부분에 대한 로드맵 역할을 한다.
2장, ‘제어역전’에서는 스프링 컨테이너 구성과 XML을 통한 스프링 빈 관리에 대해 알아본다. 제어역전(IoC, Inversion of Control)과 의존성 주입(DI, Dependency Injection)의 개념을 살펴본다.
3장, ‘스프링에서의 DAO와 JDBC’에서는 DAO 디자인 패턴과 스프링을 이용해 데이터에 대한 접근 권한을 부여한다. 스프링 프레임워크에 JDBC 지원과 ORM 지원을 구현한다. 스프링이 데이터 자원을 관리하는 방법과 애플리케이션에서 사용 가능한 데이터 자원은 무엇인지 살펴본다.
4장, ‘스프링과 하이버네이트 연동’에서는 스프링에서 폭넓게 지원되는 ORM 라이브러리 중 하나인 하이버네이트(Hibernate)를 살펴본다. 매핑 설정과 영속 클래스의 매핑을 살펴보고 스프링 애플리케이션에서 어떻게 하이버네이트가 작동하도록 구성하는지 알아본다.
5장, ‘스프링 웹 MVC 프레임워크’에서는 스프링 웹 컨트롤러와 스프링 폼 태그 라이브러리를 활용해 스프링 MVC 애플리케이션을 생성한다. 스프링 MVC를 소개하고 스프링 MVC가 제공하는 강력한 기능을 통해 어떻게 고성능 웹 애플리케이션을 개발하는지 설명한다.
6장, ‘스프링 시큐리티를 이용한 보안’에서는 스프링 시큐리티를 통해 애플리케이션을 악의적인 침입자로부터 보호할 수 있다. Acegi Security System을 소개하고 서블릿 필터를 통한 웹 애플리케이션 보안을 살펴본다.
7장, ‘스프링을 이용한 테스트’에서는 Junit과 TestNG를 사용해 실제 테스트 전략을 구현한다. Junit 프레임워크에 집중해 단위 테스트 실행 방법을 설명한다.
8장, ‘JavaMail과 JMS의 스프링 연동’에서는 이메일 송수신을 위한 스프링 메일 애플리케이션 프로그래밍 인터페이스를 구현한다. 비동기 처리를 위한 JMS(Java Messaging Service)를 소개한다.
9장, ‘애노테이션을 이용한 스프링 제어역전’에서는 애노테이션을 통해 스프링 빈과 의존성 주입을 구성한다. 애노테이션 기반의 의존성 주입과 애노테이션 생명주기를 살펴본다. SpEL(Spring Expression Language)을 이용한 빈 참조와 메소드 호출, SpEL의 연산자를 살펴본다. 또한 스프링이 제공하는 텍스트 메시지와 국제화를 살펴보고, 애플리케이션 구현을 통해 학습한다.
10장, ‘스프링의 관점지향 프로그래밍’에서는 관점지향 프로그래밍(AOP)을 소개한다. 스프링의 강력한 포인트컷 메커니즘을 이용해 애플리케이션에 애스펙트(aspect)를 어디에 어떻게 적용하는지 살펴보고 스프링 AOP의 프록시를 살펴본다.
부록 A, ‘연습문제 해답’에서는 이 책의 모든 연습문제 해답을 제공한다.
부록 B, ‘아파치 더비를 이용한 애플리케이션 데이터베이스 구성’에서는 아파치 더비(Derby) 애플리케이션 데이터베이스 설정 방법을 알려준다.
부록 C, ‘스프링 폼 태그 라이브러리’에서는 스프링 웹 MVC 프레임워크가 제공하는 스프링 폼 태그 라이브러리를 살펴본다. 스프링 폼 태그 라이브러리는 폼 태그 라이브러리 내부의 태그 집합으로, 뷰(웹 페이지)를 구축하는 데 사용된다.

목차

1장. 스프링 프레임워크 소개
__스프링 소개
____스프링의 주요 특징
____스프링의 그 밖의 특징
__스프링 프레임워크의 발전
__스프링 프레임워크 구조
____스프링 코어 컨테이너
____AOP 모듈
____데이터 접근/통합
____웹 모듈
____테스트 모듈
__스프링 프레임워크 사용의 장점
__스프링에서 애플리케이션 생성
____스프링 JAR 파일 획득
____스프링 패키지의 이해
____STS
____스프링 애플리케이션
________스프링 프로젝트 생성
________라이브러리 추가
________소스 파일 생성
________스프링 빈 설정 파일 생성
________프로그램 실행
__연습문제
__요약

2장. 제어역전
__제어역전의 이해
____컨테이너의 의미
____스프링 컨테이너
________빈
________BeanFactory
________ApplicationContext
__의존성 주입
____스프링에서의 의존성 주입
________Has-A 관계
________생성자 기반의 의존성 주입
________세터 기반 의존성 주입
____내부 빈 주입
____스프링에서의 널과 빈 문자열 값 주입
________사례 1 - 빈 문자열 주입
________사례 2 - 널 값 주입
__빈 정의 상속
____추상화 상속
__스프링의 오토와이어링
____오토와이어링 모드
________옵션 없는 오토와이어링 사용
________byName 옵션을 사용하는 오토와이어링
________byType 옵션을 사용하는 오토와이어링
________생성자를 사용하는 오토와이어링
__빈의 스코프
____싱글톤
____프로토타입
____리퀘스트
____세션
____글로벌 세션
__스프링 빈의 생명주기
____초기화
____활성화
____제거
____초기화 콜백
________org.springframework.beans.factory.InitializingBean 인터페이스 구현
________XML 설정에서의 init-method 사용
____제거 콜백
________org.springframework.beans.factory.DisposableBean 인터페이스 구현
________XML 설정에서의 destroy-method 사용
__연습문제
__요약

3장. 스프링에서의 DAO와 JDBC
__데이터베이스 개요
__DAO 디자인 패턴
____DAO 계층
__스프링을 사용하지 않는 JDBC
____샘플 코드
________프로젝트에 특정 데이터베이스 드라이버 추가
________애플리케이션의 디렉토리 구조
__스프링 JDBC 패키지
__스프링에서의 JDBC
____DataSource
____DAO 클래스의 DataSource
________애플리케이션의 디렉토리 구조
__JdbcTemplate의 의미
____스프링 빈과 같은 JdbcTemplate 객체 구성
________Spring.xml 파일
____JdbcTemplate 클래스가 제공하는 기능
________조회
________수정
________그 밖의 JdbcTemplate 연산자
____애플리케이션의 디렉토리 구조
________Employee.java 파일
________EmployeeDao.java 파일
________EmployeeDaoImpl.java 파일
__스프링 JDBC 일괄작업 작업
____애플리케이션의 디렉토리 구조
________EmployeeDaoImpl.java 파일
________HrPayrollBatchUpdate.java 파일
__저장 프로시저 호출
____SimpleJdbcCall 클래스의 사용
________저장 프로시저 호출
__연습문제
__요약

4장. 스프링과 하이버네이트 연동
__객체/관계 매핑을 사용하는 이유
__ORM과 O/RM, O/R 매핑 소개
__하이버네이트 소개
____하이버네이트 아키텍처
________설정
________세션 팩토리
________________세션
________트랜잭션
________질의
________기준
________영속성 객체
__하이버네이트와 스프링 프레임워크 통합
____예제 코드에서 사용할 샘플 데이터
____하이버네이트 통합
____스프링-하이버네이트 프로젝트에 필요한 JAR
____스프링에서 하이버네이트 SessionFactory 설정
________하이버네이트용 XML 스프링 설정
____애노테이션이 추가된 도메인 모델 클래스
____하이버네이트 세션
________Session 인터페이스 메소드
____영속성 계층 - DAO 구현
________EmployeeDao 인터페이스
________EmployeeDaoImpl 클래스
____서비스 계층 - 서비스 구현
________EmployeeService 인터페이스
________EmployeeServiceImpl 클래스
____애플리케이션의 디렉토리 구조
____애플리케이션 실행
________DBUtils 클래스
________SpringHibernateMain 클래스
________콘솔 출력
________직원 정보 테이블에 삽입된 데이터
__하이버네이트 질의 언어
____질의 인터페이스
____HQL을 이용한 데이터베이스 연산
________FROM 절
________AS 절
________SELECT 절
________WHERE 절
________ORDER BY 절
________GROUP BY 절
________명명된 매개변수 사용
________UPDATE 절
________DELETE 절
________질의를 이용한 페이지화
__하이버네이트 기준 질의 언어
____기준 인터페이스
________기준을 이용한 제약
__연습문제
__요약

5장. 스프링 웹 MVC 프레임워크
__MVC 아키텍처와 관심사의 분리
__프론트 컨트롤러 디자인 패턴
__스프링 MVC에 대한 이해
____스프링 MVC 프레임워크의 특징
____스프링 MVC의 요청 처리 흐름
__간단한 스프링 MVC 애플리케이션 개발
____새로운 메이븐 프로젝트 생성
____pom.xml에 스프링 MVC 의존관계 추가
____애플리케이션 설정
________/WEB-INF/web.xml 파일
________/WEB-INF/SpringDispatcher-servlet.xml 파일
____컨트롤러 생성 - EmployeeController
____뷰 생성 - hello.jsp
____애플리케이션 실행
__스프링 MVC의 DispatcherServlet
____배포 서술자 web.xml에서의 DispatcherServlet
____스프링 MVC 설정 파일 위치 등록
__스프링 설정 - SpringDispatcher-servlet.xml
__스프링 MVC 컨트롤러
____컨트롤러 정의를 위한 @Controller
____요청 매핑을 위한 @RequestMapping 애노테이션
________클래스 레벨의 매핑 요청
________메소드 레벨의 매핑 요청
________@RequestMapping의 속성 정보
________@RequestMapping의 메소드 매개변수
________@RequestMapping 애노테이션 메소드의 값 반환
__스프링 MVC의 ViewResolver
____뷰 기술 JSP를 위한 ViewResolver 구성
__스프링 MVC의 모델
__스프링 MVC와 하이버네이트 통합
____애플리케이션 구조
____샘플 코드와 샘플 데이터 모델
____프로젝트 구조
____pom.xml 파일
________hibernate.properties 파일
____SpringDispatcher-servlet.xml 파일
____하이버네이트 모델 클래스 - 엔티티 클래스
____DAO 계층
________EmployeeDao 인터페이스
________EmployeeDao 구현
____서비스 계층
________EmployeeService 인터페이스
________EmployeeService 구현
____스프링 MVC 컨트롤러 클래스
____뷰 페이지
________hello.jsp 페이지
________employee.jsp 페이지
________index.jsp 페이지
____애플리케이션 실행
__@ControllerAdvice 예외 처리
____GenericException 클래스
____SpringException 클래스
____EmployeeController 클래스
____hello.jsp 페이지
____exception.jsp 페이지
____애플리케이션 실행
__Spring MVC 국제화(i18n)
____프로퍼티 파일
____Spring 설정
________ReloadableResourceBundleMessageSource
________LocaleChangeInterceptor
________SessionLocaleResolver
____hello.jsp 페이지
____애플리케이션 실행
__컨트롤러를 통한 폼 핸들링
____스프링 MVC의 ModelAndView
____스프링 MVC 컨트롤러 클래스
________컨트롤러 클래스의 @ModelAttribute
________컨트롤러 클래스의 ModelMap
____뷰 페이지
____스프링 MVC 폼
____애플리케이션 실행
__연습문제
__요약

6장. 스프링 시큐리티를 이용한 보안
__스프링 시큐리티의 의미
____주요 연산
__서블릿 필터 다시보기
__보안 유스케이스
__스프링 시큐리티 설정
____스프링 시큐리티 구성
________클래스패스에 JAR 추가
________스프링 시큐리티 의존성 - pom.xml
____네임스페이스 설정
__웹 애플리케이션의 URL 접근 보호
____첫 번째 단계 - web.xml
____보안 설정 분리
__웹 애플리케이션에 로그인
____HTTP 기본 인증
____폼 기반 로그인 서비스
____로그아웃 서비스
____익명 로그인
____로그인 정보 기억
__사용자 인증
____메모리상의 정의를 이용한 사용자 인증
____데이터베이스를 이용한 사용자 인증
____패스워드 암호화
__메소드 레벨 보안
__본격적인 작업 시작
____프로젝트 구조
____web.xml에 필터 추가
____뷰 결정
____맞춤형 로그인 추가
____로그인 요청 매핑
____직원 목록 조회
____계정정보 입력
____로그아웃
____애플리케이션 실행
__연습문제
__요약

7장. 스프링을 이용한 테스트
__JUnit 4를 이용한 테스트
____JUnit 4 애노테이션
____어서트 메소드
____JUnit 4 예제
__TestNG를 이용한 테스트
____TestNG 애노테이션
____TestNG 예제
__애자일 소프트웨어 테스트
____단위 테스트
________고립 클래스의 단위 테스트
________모의 객체를 이용한 의존 클래스의 단위 테스트
________Mockito 프레임워크
____통합 테스트
__스프링 MVC 컨트롤러의 단위 테스트 생성
__스프링 MVC 테스트 프레임워크
____필요한 의존성
____스프링 테스트의 애노테이션
________@ContextConfiguration 애노테이션
________@WebAppConfiguration 애노테이션
____MockMvc
________어서션
____@RunWith(SpringJUnit4ClassRunner.class)
__연습문제
__요약

8장. JavaMail과 JMS의 스프링 연동
__스프링의 이메일 지원
____JavaMail API 소개
____JavaMail API 사용
____JavaMail을 위한 스프링 API
____스프링 메일 애플리케이션 개발
________설정 파일 - Spring.xml
________스프링의 이메일 발신 클래스
________MailerTest 클래스
__스프링 자바 메시징 서비스
____메시지와 메시징의 의미
____JMS의 의미
____JMS 애플리케이션
________JMS 구성요소
____MOM 서비스 제공자
________ActiveMQ 설정 - 메시지 큐
____스프링 빈 설정(Spring.xml)
____MessageSender.java - 스프링 JMS 템플릿
____App.java
____ActiveMQ 시작
____출력
____중계자 모니터링
____App.java 실행 시 예외
__연습문제
__요약

9장. 애노테이션을 이용한 스프링 제어역전
__애노테이션을 이용한 컨테이너 설정
____XML 대 애노테이션
____빈 관리
________스테레오 타입 애노테이션
________@Component
________@Repository
________@Service
________@Controller
________감지된 구성요소의 명명 규칙
________구성요소 이름 직접 지정
________클래스 자동 감지와 빈 정의 등록
________필터를 이용한 검색 방식 조정
________스코프 정의 - @Scope
____@Required 애노테이션을 이용한 의존관계 검사
____애노테이션 기반 의존관계 주입
____@Autowired
________프로퍼티에 @Autowired 적용
________@Qualifier
________@Resource
____생명 주기 애노테이션
__스프링의 자바 기반 설정
____@Configuration 애노테이션
____@Bean 애노테이션
________빈 선언
________빈 이름 지정
________의존관계 주입
____@Import 애노테이션
________생명주기 콜백
____@Scope 애노테이션
__스프링의 이벤트 처리
____스프링의 표준 이벤트
____스프링의 표준 이벤트 리스닝
________리스너 생성
____스프링의 이벤트 발생
________사용자정의 이벤트 생성
________이벤트 발생
________사용자정의 이벤트 처리
____스프링 이벤트의 이점
__스프링 표현 언어
____SpEL을 이용한 빈 참조
________XML 기반 설정
________애노테이션 기반 설정
____SpEL을 이용한 메소드 호출
________XML 기반 설정
________애노테이션 기반 설정
____SpEL의 연산자
________XML 기반 설정
________애노테이션 기반 설정
____SpEL의 컬렉션
________XML 기반 설정
________애노테이션 기반 설정
____SpEL의 정규표현식
________XML 기반 설정
________애노테이션 기반 설정
__텍스트 메시지와 국제화
____스프링에서의 국제화(i18n)
__연습문제
__요약

10장. 스프링의 관점지향 프로그래밍
__애플리케이션 개발에서 OOP의 문제점
__AOP 소개
__AOP 용어
____조인포인트
____어드바이스
____포인트컷
____애스펙트
____소개
____타깃
____프록시
____위빙
____위버
__AOP 구현
__스프링의 AOP 지원
__AspectJ 애노테이션 스타일
____스프링에서의 AspectJ 애노테이션 설정
____애스펙트 선언 - @AspectJ
____포인트컷 선언
____어드바이스 선언
________어드바이스 이전
________어드바이스 이후
________어드바이스 반환 후
________어드바이스 던진 후
________어드바이스 주변
____프록시
__@AspectJ 애노테이션을 사용해 스프링 애플리케이션 개발
____애플리케이션의 디렉토리 구조
____자바 파일 생성
________Employee.java
________EmployeeService.java
________LoggingAspect.java
________PayrollsSystem.java
____스프링 설정 파일 생성
____애플리케이션 실행
__XML 스키마 기반 설정
____애스펙트 선언
____포인트컷 선언
____어드바이스 선언
________어드바이스 이전
________어드바이스 이후
________어드바이스 반환 후
________어드바이스 던진 후
________어드바이스 주변
__XML 스키마 기반 설정을 이용한 스프링 애플리케이션 개발
____자바 파일 생성
________Employee.java
________EmployeeService.java
________LoggingAspect.java
________PayrollsSystem.java
____스프링 설정 파일 생성
____애플리케이션 실행
__연습문제
__요약

부록 A. 연습문제 해답

부록 B. 아파치 더비를 이용한 애플리케이션 데이터베이스 구성

부록 C. 스프링 폼 태그 라이브러리

저자소개

저자 라비 칸트 소니(Ravi Kant Soni)는 자바 엔터프라이즈와 스프링 프레임워크 전문가며, 뱅갈로에 위치한 레바 기술원(Reva Institute of Technology)에서 정보 과학/공학 학사 학위를 받았다. 다년간 소프트웨어 개발에 참여했으며, 소프트웨어 개발부터 멀티테넌트(multitenant) 애플리케이션 설계, 기존 시스템으로의 새로운 기술 통합, 최근에는 스프링 프레임워크 관련 서적 저술까지 다양한 경험을 했다.
현재는 HCL 테크놀로지스(HCL Technologies)에서 엔지니어로 일하고 있다. 애플리케이션 설계와 구현 업무를 주로 맡았으며, 스프링 프레임워크를 이용해 은행과 인사/급여, 전자상거래 시스템의 핵심 애플리케이션을 개발했다.
소프트웨어 설계와 시스템 아키텍처, 애플리케이션 프로그래밍, 테스트 자동화를 비롯한 소프트웨어 공학의 모든 측면에 걸쳐 심도 있는 경험을 했다. 자바와 스프링, 하이버네이트(Hibernate), PostgreSQL 등을 포함한 엔터프라이즈 기술을 섭렵했으며, 부트스트랩(Bootstrap)과 제이쿼리(jQuery), 프리마커(FreeMarker), 메이븐(Maven), CAS(SSO) 보안, 깃(Git), 셀레늄 웹드라이버(Selenium WebDriver), 애자일(Agile) 방법론 등의 기술에도 능통하다.
브레인스토밍을 바탕으로 문제에 대한 독창적인 해법을 찾는 일을 즐긴다. 이메일(springframeworkbyravi@gmail.com)과 링크드인(in.linkedin.com/in/november03ravikantsoni)을 통해 그와 연락할 수 있다.

도서소개

『스프링 애플리케이션 개발』은 스프링 입문서로, 스프링의 핵심 개념이라고 할 수 있는 제어역전(IoC)과 관점지향 프로그래밍(AOP), MVC 모델은 물론이고 ORM 기반의 데이터베이스 연동, 테스트, 메일 서버 연동 등 애플리케이션 개발에 필수적인 내용을 담고 있다. 특히 스프링 4.x의 새로운 기능을 소개해 스프링에 이미 익숙한 개발자에게도 유용한 정보를 제공한다.

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.