본문 바로가기

추천 검색어

실시간 인기 검색어

토비의 스프링 3.1 Vol 1: 스프링의 이해와 원리

에이콘 오픈소스 프로그래밍 시리즈 18
이일민 저자(글)
에이콘출판 · 2012년 09월 21일
10.0 (7개의 리뷰)
집중돼요 (57%의 구매자)
  • 토비의 스프링 3.1 Vol 1: 스프링의 이해와 원리 대표 이미지
    토비의 스프링 3.1 Vol 1: 스프링의 이해와 원리 대표 이미지
  • A4
    사이즈 비교
    210x297
    188x255
    단위 : mm
무료배송 이벤트 소득공제
10% 36,000 40,000
적립/혜택
2,000P

기본적립

5% 적립 2,000P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 2,000P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서 / 외국도서
도서만 15,000원 이상 구매 시 무료배송
도서 + 잡지 / 만화 / :K컬렉션을 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

잡지 / 만화 / :K컬렉션 (교보배송)
각각 구매하거나 함께 2만 원 이상 구매 시 무료배송

2만원 미만 시 2,500원 배송비 부과

해외주문 서양도서 / 해외주문 일본도서 (교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품 (전집, GIFT, 음반 / DVD 등)
중고장터 상품
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
주문정보를 불러오는 중입니다.
서울시 종로구 종로 1

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

패키지

북카드

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

대한민국 전자정부 표준 프레임워크 스프링을 설명하는 No. 1 베스트셀러!

단순한 예제를 스프링 3.0과 스프링 3.1의 기술을 적용하며 발전시켜 나가는 과정을 통해 스프링의 핵심 프로그래밍 모델인 IoC/DI, PSA, AOP의 원리와 이에 적용된 다양한 디자인 패턴, 프로그래밍 기법을 이해할 수 있도록 도와준다. 이어지는 에서 상세히 소개하는 스프링 3.0과 스프링 3.1의 방대한 기술을 쉽게 이해하고 효과적으로 응용하는 데 필요한 기반 지식을 쌓도록 도와준다.

『토비의 스프링 3.1』은 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어렵게 느껴지는 개발자부터 스프링을 활용한 아키텍처를 설계하고 프레임워크를 개발하려고 하는 아키텍트에 이르기까지 모두 참고할 수 있는 스프링 완벽 바이블이다.

작가정보

저자(글) 이일민

저자 이일민은 호주의 IT 서비스 기업인 이프릴의 대표 컨설턴트다. 엔터프라이즈 오픈소스 커뮤니티인 오픈시드의 대표이며 한국스프링사용자모임(KSUG)의 공동설립자이기도 하다. 8비트 컴퓨터 시절 프로그래밍의 매력에 빠져 10여 년간 취미로 프로그래밍을 즐겨오다 전문 개발자의 길로 들어서서 19년째 소프트웨어 개발과 교육, 컨설팅 일을 해오고 있다. 2004년부터 스프링을 이용해서 기업과 학교, 인터넷 서비스 업체의 시스템을 개발해왔고 스프링을 기반으로 한 애플리케이션 프레임워크 제작 컨설팅과 스프링 개발자 교육을 해오고 있다. JCO 컨퍼런스에서 세 차례 스프링을 주제로 발표했고 기묘, 이프릴, KSUG 등을 통해 스프링 세미나를 진행하기도 했다. 스프링과 오픈소스 기술에 관련된 정보와 경험을 공유하는 블로그를 운영하고 있다.

목차

  • 1장 오브젝트와 의존관계
    1.1 초난감 DAO
    1.1.1 User
    1.1.2 UserDao
    1.1.3 main()을 이용한 DAO 테스트 코드
    1.2 DAO의 분리
    1.2.1 관심사의 분리
    1.2.2 커넥션 만들기의 추출
    UserDao의 관심사항
    중복 코드의 메소드 추출
    변경사항에 대한 검증: 리팩토링과 테스트
    1.2.3 DB 커넥션 만들기의 독립
    상속을 통한 확장
    1.3 DAO의 확장
    1.3.1 클래스의 분리
    1.3.2 인터페이스의 도입
    1.3.3 관계설정 책임의 분리
    1.3.4 원칙과 패턴
    개방 폐쇄 원칙
    높은 응집도와 낮은 결합도
    전략 패턴
    1.4 제어의 역전(IoC)
    1.4.1 오브젝트 팩토리
    팩토리
    설계도로서의 팩토리
    1.4.2 오브젝트 팩토리의 활용
    1.4.3 제어권의 이전을 통한 제어관계 역전
    1.5 스프링의 IoC
    1.5.1 오브젝트 팩토리를 이용한 스프링 IoC
    애플리케이션 컨텍스트와 설정정보
    DaoFactory를 사용하는 애플리케이션 컨텍스트
    1.5.2 애플리케이션 컨텍스트의 동작방식
    1.5.3 스프링 IoC의 용어 정리
    1.6 싱글톤 레지스트리와 오브젝트 스코프
    1.6.1 싱글톤 레지스트리로서의 애플리케이션 컨텍스트
    서버 애플리케이션과 싱글톤
    싱글톤 패턴의 한계
    싱글톤 레지스트리
    1.6.2 싱글톤과 오브젝트의 상태
    1.6.3 스프링 빈의 스코프
    1.7 의존관계 주입(DI)
    1.7.1 제어의 역전(IoC)과 의존관계 주입
    1.7.2 런타임 의존관계 설정
    의존관계
    UserDao의 의존관계
    UserDao의 의존관계 주입
    1.7.3 의존관계 검색과 주입
    1.7.4 의존관계 주입의 응용
    기능 구현의 교환
    부가기능 추가
    1.7.5 메소드를 이용한 의존관계 주입
    1.8 XML을 이용한 설정
    1.8.1 XML 설정
    connectionMaker() 전환
    userDao() 전환
    XML의 의존관계 주입 정보
    1.8.2 XML을 이용하는 애플리케이션 컨텍스트
    1.8.3 DataSource 인터페이스로 변환
    DataSource 인터페이스 적용
    자바 코드 설정 방식
    XML 설정 방식
    1.8.4 프로퍼티 값의 주입
    값 주입
    value 값의 자동 변환
    1.9 정리

    2장 테스트
    2.1 UserDaoTest 다시 보기
    2.1.1 테스트의 유용성
    2.1.2 UserDaoTest의 특징
    웹을 통한 DAO 테스트 방법의 문제점
    작은 단위의 테스트
    자동수행 테스트 코드
    지속적인 개선과 점진적인 개발을 위한 테스트
    2.1.3 UserDaoTest의 문제점
    2.2 UserDaoTest 개선
    2.2.1 테스트 검증의 자동화
    2.2.2 테스트의 효율적인 수행과 결과 관리
    JUnit 테스트로 전환
    테스트 메소드 전환
    검증 코드 전환
    JUnit 테스트 실행
    2.3 개발자를 위한 테스팅 프레임워크 JUnit
    2.3.1 JUnit 테스트 실행 방법
    IDE
    빌드 툴
    2.3.2 테스트 결과의 일관성
    deleteAll()의 getCount() 추가
    deleteAll()과 getCount()의 테스트
    동일한 결과를 보장하는 테스트
    2.3.3 포괄적인 테스트
    getCount() 테스트
    addAndGet() 테스트 보완
    get() 예외조건에 대한 테스트
    테스트를 성공시키기 위한 코드의 수정
    포괄적인 테스트
    2.3.4 테스트가 이끄는 개발
    기능설계를 위한 테스트
    테스트 주도 개발
    2.3.5 테스트 코드 개선
    @Before
    픽스처
    2.4 스프링 테스트 적용
    2.4.1 테스트를 위한 애플리케이션 컨텍스트 관리
    스프링 테스트 컨텍스트 프레임워크 적용
    테스트 메소드의 컨텍스트 공유
    테스트 클래스의 컨텍스트 공유
    @Autowired
    2.4.2 DI와 테스트
    테스트 코드에 의한 DI
    테스트를 위한 별도의 DI 설정
    컨테이너 없는 DI 테스트
    DI를 이용한 테스트 방법 선택
    2.5 학습 테스트로 배우는 스프링
    2.5.1 학습 테스트의 장점
    2.5.2 학습 테스트 예제
    JUnit 테스트 오브젝트 테스트
    스프링 테스트 컨텍스트 테스트
    2.5.3 버그 테스트
    2.6 정리

    3장 템플릿
    3.1 다시 보는 초난감 DAO
    3.1.1 예외처리 기능을 갖춘 DAO
    JDBC 수정 기능의 예외처리 코드
    JDBC 조회 기능의 예외처리
    3.2 변하는 것과 변하지 않는 것
    3.2.1 JDBC try/catch/finally 코드의 문제점
    3.2.2 분리와 재사용을 위한 디자인 패턴 적용
    메소드 추출
    템플릿 메소드 패턴의 적용
    전략 패턴의 적용
    DI 적용을 위한 클라이언트/컨텍스트 분리
    3.3 JDBC 전략 패턴의 최적화
    3.3.1 전략 클래스의 추가 정보
    3.3.2 전략과 클라이언트의 동거
    로컬 클래스
    익명 내부 클래스
    3.4 컨텍스트와 DI
    3.4.1 JdbcContext의 분리
    클래스 분리
    빈 의존관계 변경
    3.4.2 JdbcContext의 특별한 DI
    스프링 빈으로 DI
    코드를 이용하는 수동 DI
    3.5 템플릿과 콜백
    3.5.1 템플릿/콜백의 동작원리
    템플릿/콜백의 특징
    JdbcContext에 적용된 템플릿/콜백
    3.5.2 편리한 콜백의 재활용
    콜백의 분리와 재활용
    콜백과 템플릿의 결합
    3.5.3 템플릿/콜백의 응용
    테스트와 try/catch/finally
    중복의 제거와 템플릿/콜백 설계
    템플릿/콜백의 재설계
    제네릭스를 이용한 콜백 인터페이스
    3.6 스프링의 JdbcTemplate
    3.6.1 update()
    3.6.2 queryForInt()
    3.6.3 queryForObject()
    3.6.4 query()
    기능 정의와 테스트 작성
    query() 템플릿을 이용하는 getAll() 구현
    테스트 보완
    3.6.5 재사용 가능한 콜백의 분리
    DI를 위한 코드 정리
    중복 제거
    템플릿/콜백 패턴과 UserDao
    3.7 정리

    4장 예외
    4.1 사라진 SQLException
    4.1.1 초난감 예외처리
    예외 블랙홀
    무의미하고 무책임한 throws
    4.1.2 예외의 종류와 특징
    4.1.3 예외처리 방법
    예외 복구
    예외처리 회피
    예외 전환
    4.1.4 예외처리 전략
    런타임 예외의 보편화
    add() 메소드의 예외처리
    애플리케이션 예외
    4.1.5 SQLException은 어떻게 됐나?
    4.2 예외 전환
    4.2.1 JDBC의 한계
    비표준 SQL
    호환성 없는 SQLException의 DB 에러정보
    4.2.2 DB 에러 코드 매핑을 통한 전환
    4.2.3 DAO 인터페이스와 DataAccessException 계층구조
    DAO 인터페이스와 구현의 분리
    데이터 액세스 예외 추상화와 DataAccessException 계층구조
    4.2.4 기술에 독립적인 UserDao 만들기
    인터페이스 적용
    테스트 보완
    DataAccessException 활용 시 주의사항
    4.3 정리

    5장 서비스 추상화
    5.1 사용자 레벨 관리 기능 추가
    5.1.1 필드 추가
    Level 이늄
    User 필드 추가
    UserDaoTest 테스트 수정
    UserDaoJdbc 수정
    5.1.2 사용자 수정 기능 추가
    수정 기능 테스트 추가
    UserDao와 UserDaoJdbc 수정
    수정 테스트 보완
    5.1.3 UserService.upgradeLevels()
    UserService 클래스와 빈 등록
    UserServiceTest 테스트 클래스
    upgradeLevels() 메소드
    upgradeLevels() 테스트
    5.1.4 UserService.add()
    5.1.5 코드 개선
    upgradeLevels() 메소드 코드의 문제점
    upgradeLevels() 리팩토링
    User 테스트
    UserServiceTest 개선
    5.2 트랜잭션 서비스 추상화
    5.2.1 모 아니면 도
    테스트용 UserService 대역
    강제 예외 발생을 통한 테스트
    테스트 실패의 원인
    5.2.2 트랜잭션 경계설정
    JDBC 트랜잭션의 트랜잭션 경계설정
    UserService와 UserDao의 트랜잭션 문제
    비즈니스 로직 내의 트랜잭션 경계설정
    UserService 트랜잭션 경계설정의 문제점
    5.2.3 트랜잭션 동기화
    Connection 파라미터 제거
    트랜잭션 동기화 적용
    트랜잭션 테스트 보완
    JdbcTemplate과 트랜잭션 동기화
    5.2.4 트랜잭션 서비스 추상화
    기술과 환경에 종속되는 트랜잭션 경계설정 코드
    트랜잭션 API의 의존관계 문제와 해결책
    스프링의 트랜잭션 서비스 추상화
    트랜잭션 기술 설정의 분리
    수직, 수평 계층구조와 의존관계
    5.3 서비스 추상화와 단일 책임 원칙
    단일 책임 원칙
    단일 책임 원칙의 장점
    5.4 메일 서비스 추상화
    5.4.1 JavaMail을 이용한 메일 발송 기능
    JavaMail 메일 발송
    5.4.2 JavaMail이 포함된 코드의 테스트
    5.4.3 테스트를 위한 서비스 추상화
    JavaMail을 이용한 테스트의 문제점
    메일 발송 기능 추상화
    테스트용 메일 발송 오브젝트
    테스트와 서비스 추상화
    5.4.4 테스트 대역
    의존 오브젝트의 변경을 통한 테스트 방법
    테스트 대역의 종류와 특징
    목 오브젝트를 이용한 테스트
    5.5 정리

    6장 AOP
    6.1 트랜잭션 코드의 분리
    6.1.1 메소드 분리
    6.1.2 DI를 이용한 클래스의 분리
    DI 적용을 이용한 트랜잭션 분리
    UserService 인터페이스 도입
    분리된 트랜잭션 기능
    트랜잭션 적용을 위한 DI 설정
    트랜잭션 분리에 따른 테스트 수정
    트랜잭션 경계설정 코드 분리의 장점
    6.2 고립된 단위 테스트
    6.2.1 복잡한 의존관계 속의 테스트
    6.2.2 테스트 대상 오브젝트 고립시키기
    테스트를 위한 UserServiceImpl 고립
    고립된 단위 테스트 활용
    UserDao 목 오브젝트
    테스트 수행 성능의 향상
    6.2.3 단위 테스트와 통합 테스트
    6.2.4 목 프레임워크
    Mockito 프레임워크
    6.3 다이내믹 프록시와 팩토리 빈
    6.3.1 프록시와 프록시 패턴, 데코레이터 패턴
    데코레이터 패턴
    프록시 패턴
    6.3.2 다이내믹 프록시
    프록시의 구성과 프록시 작성의 문제점
    리플렉션
    프록시 클래스
    다이내믹 프록시 적용
    다이내믹 프록시의 확장
    6.3.3 다이내믹 프록시를 이용한 트랜잭션 부가기능
    트랜잭션 InvocationHandler
    TransactionHandler와 다이내믹 프록시를 이용하는 테스트
    6.3.4 다이내믹 프록시를 위한 팩토리 빈
    팩토리 빈
    팩토리 빈의 설정 방법
    다이내믹 프록시를 만들어주는 팩토리 빈
    트랜잭션 프록시 팩토리 빈
    트랜잭션 프록시 팩토리 빈 테스트
    6.3.5 프록시 팩토리 빈 방식의 장점과 한계
    프록시 팩토리 빈의 재사용
    프록시 팩토리 빈 방식의 장점
    프록시 팩토리 빈의 한계
    6.4 스프링의 프록시 팩토리 빈
    6.4.1 ProxyFactoryBean
    어드바이스: 타깃이 필요 없는 순수한 부가기능
    포인트컷: 부가기능 적용 대상 메소드 선정 방법
    6.4.2 ProxyFactoryBean 적용
    TransactionAdvice
    스프링 XML 설정파일
    테스트
    어드바이스와 포인트컷의 재사용
    6.5 스프링 AOP
    6.5.1 자동 프록시 생성
    중복 문제의 접근 방법
    빈 후처리기를 이용한 자동 프록시 생성기
    확장된 포인트컷
    포인트컷 테스트
    6.5.2 DefaultAdvisorAutoProxyCreator의 적용
    클래스 필터를 적용한 포인트컷 작성
    어드바이저를 이용하는 자동 프록시 생성기 등록
    포인트컷 등록
    어드바이스와 어드바이저
    ProxyFactoryBean 제거와 서비스 빈의 원상복구
    자동 프록시 생성기를 사용하는 테스트
    자동생성 프록시 확인
    6.5.3 포인트컷 표현식을 이용한 포인트컷
    포인트컷 표현식
    포인트컷 표현식 문법
    포인트컷 표현식 테스트
    포인트컷 표현식을 이용하는 포인트컷 적용
    타입 패턴과 클래스 이름 패턴
    6.5.4 AOP란 무엇인가?
    트랜잭션 서비스 추상화
    프록시와 데코레이터 패턴
    다이내믹 프록시와 프록시 팩토리 빈
    자동 프록시 생성 방법과 포인트컷
    부가기능의 모듈화
    AOP: 애스펙트 지향 프로그래밍
    6.5.5 AOP 적용기술
    프록시를 이용한 AOP
    바이트코드 생성과 조작을 통한 AOP
    6.5.6 AOP의 용어
    6.5.7 AOP 네임스페이스
    AOP 네임스페이스
    어드바이저 내장 포인트컷
    6.6 트랜잭션 속성
    6.6.1 트랜잭션 정의
    트랜잭션 전파
    격리수준
    제한시간
    읽기전용
    6.6.2 트랜잭션 인터셉터와 트랜잭션 속성
    TransactionInterceptor
    메소드 이름 패턴을 이용한 트랜잭션 속성 지정
    tx 네임스페이스를 이용한 설정 방법
    6.6.3 포인트컷과 트랜잭션 속성의 적용 전략
    트랜잭션 포인트컷 표현식은 타입 패턴이나 빈 이름을 이용한다
    공통된 메소드 이름 규칙을 통해 최소한의 트랜잭션 어드바이스와 속성을 정의한다
    프록시 방식 AOP는 같은 타깃 오브젝트 내의 메소드를 호출할 때는 적용되지 않는다
    6.6.4 트랜잭션 속성 적용
    트랜잭션 경계설정의 일원화
    서비스 빈에 적용되는 포인트컷 표현식 등록
    트랜잭션 속성을 가진 트랜잭션 어드바이스 등록
    트랜잭션 속성 테스트
    6.7 애노테이션 트랜잭션 속성과 포인트컷
    6.7.1 트랜잭션 애노테이션
    @Transactional
    트랜잭션 속성을 이용하는 포인트컷
    대체 정책
    트랜잭션 애노테이션 사용을 위한 설정
    6.7.2 트랜잭션 애노테이션 적용
    6.8 트랜잭션 지원 테스트
    6.8.1 선언적 트랜잭션과 트랜잭션 전파 속성
    6.8.2 트랜잭션 동기화와 테스트
    트랜잭션 매니저와 트랜잭션 동기화
    트랜잭션 매니저를 이용한 테스트용 트랜잭션 제어
    트랜잭션 동기화 검증
    롤백 테스트
    6.8.3 테스트를 위한 트랜잭션 애노테이션
    @Transactional
    @Rollback
    @TransactionConfiguration
    NotTransactional과 Propagation.NEVER
    효과적인 DB 테스트
    6.9 정리

    7장 스프링 핵심 기술의 응용
    7.1 SQL과 DAO의 분리
    7.1.1 XML 설정을 이용한 분리
    개별 SQL 프로퍼티 방식
    SQL 맵 프로퍼티 방식
    7.1.2 SQL 제공 서비스
    SQL 서비스 인터페이스
    스프링 설정을 사용하는 단순 SQL 서비스
    7.2 인터페이스의 분리와 자기 참조 빈
    7.2.1 XML 파일 매핑
    JAXB
    SQL 맵을 위한 스키마 작성과 컴파일
    언마샬링
    7.2.2 XML 파일을 이용하는 SQL 서비스
    SQL 맵 XML 파일
    XML SQL 서비스
    7.2.3 빈의 초기화 작업
    7.2.4 변화를 위한 준비: 인터페이스 분리
    책임에 따른 인터페이스 정의
    SqlRegistry 인터페이스
    SqlReader 인터페이스
    7.2.5 자기참조 빈으로 시작하기
    다중 인터페이스 구현과 간접 참조
    인터페이스를 이용한 분리
    자기참조 빈 설정
    7.2.6 디폴트 의존관계
    확장 가능한 기반 클래스
    디폴트 의존관계를 갖는 빈 만들기
    7.3 서비스 추상화 적용
    7.3.1 OXM 서비스 추상화
    OXM 서비스 인터페이스
    JAXB 구현 테스트
    Castor 구현 테스트
    7.3.2 OXM 서비스 추상화 적용
    멤버 클래스를 참조하는 통합 클래스
    위임을 이용한 BaseSqlService의 재사용
    7.3.3 리소스 추상화
    리소스
    리소스 로더
    Resource를 이용해 XML 파일 가져오기
    7.4 인터페이스 상속을 통한 안전한 기능확장
    7.4.1 DI와 기능의 확장
    DI를 의식하는 설계
    DI와 인터페이스 프로그래밍
    7.4.2 인터페이스 상속
    7.5 DI를 이용해 다양한 구현 방법 적용하기
    7.5.1 ConcurrentHashMap을 이용한 수정 가능 SQL 레지스트리
    수정 가능 SQL 레지스트리 테스트
    수정 가능 SQL 레지스트리 구현
    7.5.2 내장형 데이터베이스를 이용한 SQL 레지스트리 만들기
    스프링의 내장형 DB 지원 기능
    내장형 DB 빌더 학습 테스트
    내장형 DB를 이용한 SqlRegistry 만들기
    UpdatableSqlRegistry 테스트 코드의 재사용
    XML 설정을 통한 내장형 DB의 생성과 적용
    7.5.3 트랜잭션 적용
    다중 SQL 수정에 대한 트랜잭션 테스트
    코드를 이용한 트랜잭션 적용
    7.6 스프링 3.1의 DI
    자바 언어의 변화와 스프링
    7.6.1 자바 코드를 이용한 빈 설정
    테스트 컨텍스트의 변경
    〈context:annotation-config /〉 제거
    〈bean〉의 전환
    전용 태그 전환
    7.6.2 빈 스캐닝과 자동와이어링
    @Autowired를 이용한 자동와이어링
    @Component를 이용한 자동 빈 등록
    7.6.3 컨텍스트 분리와 @Import
    테스트용 컨텍스트 분리
    @Import
    7.6.4 프로파일
    @Profile과 @ActiveProfiles
    컨테이너의 빈 등록 정보 확인
    중첩 클래스를 이용한 프로파일 적용
    7.6.5 프로퍼티 소스
    @PropertySource
    PropertySourcesPlaceholderConfigurer
    7.6.6 빈 설정의 재사용과 @Enable*
    빈 설정자
    @Enable* 애노테이션
    7.7 정리

    8장 스프링이란 무엇인가?
    8.1 스프링의 정의
    8.2 스프링의 목적
    8.2.1 엔터프라이즈 개발의 복잡함
    복잡함의 근본적인 이유
    복잡함을 가중시키는 원인
    8.2.2 복잡함을 해결하려는 도전
    제거될 수 없는 근본적인 복잡함
    실패한 해결책: EJB
    비침투적인 방식을 통한 효과적인 해결책: 스프링
    8.2.3 복잡함을 상대하는 스프링의 전략
    기술적 복잡함을 상대하는 전략
    비즈니스와 애플리케이션 로직의 복잡함을 상대하는 전략
    핵심 도구: 객체지향과 DI
    8.3 POJO 프로그래밍
    8.3.1 스프링의 핵심: POJO
    8.3.2 POJO란 무엇인가?
    8.3.3 POJO의 조건
    8.3.4 POJO의 장점
    8.3.5 POJO 프레임워크
    8.4 스프링의 기술
    8.4.1 제어의 역전(IoC) / 의존관계 주입(DI)
    DI의 활용 방법
    8.4.2 애스펙트 지향 프로그래밍(AOP)
    AOP의 적용 기법
    AOP의 적용 단계
    8.4.3 포터블 서비스 추상화(PSA)
    8.5 정리

    9장 스프링 프로젝트 시작하기
    9.1 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션
    9.1.1 클라이언트와 백엔드 시스템
    9.1.2 애플리케이션 서버
    스프링소스 tcServer
    9.1.3 스프링 애플리케이션의 배포 단위
    9.2 개발도구와 환경
    9.2.1 JavaSE와 JavaEE
    JavaSE/JDK
    JavaEE/J2EE
    9.2.2 IDE
    9.2.3 SpringSoruce Tool Suite
    SpringIDE 플러그인
    STS 플러그인
    기타 플러그인
    9.2.4 라이브러리 관리와 빌드 툴
    라이브러리 관리의 어려움
    라이브러리 선정
    빌드 툴과 라이브러리 관리
    스프링 모듈의 두 가지 이름과 리포지토리
    9.3 애플리케이션 아키텍처
    9.3.1 계층형 아키텍처
    아키텍처와 SoC
    3계층 아키텍처와 수직 계층
    계층형 아키텍처 설계의 원칙
    9.3.2 애플리케이션 정보 아키텍처
    DB/SQL 중심의 로직 구현 방식
    거대한 서비스 계층 방식
    9.3.3 오브젝트 중심 아키텍처
    데이터와 오브젝트
    도메인 오브젝트를 사용하는 코드
    도메인 오브젝트 사용의 문제점
    빈약한 도메인 오브젝트 방식
    풍성한 도메인 오브젝트 방식
    도메인 계층 방식
    DTO와 리포트 쿼리
    9.3.4 스프링 애플리케이션을 위한 아키텍처 설계
    계층형 아키텍처
    정보 전송 아키텍처
    상태 관리와 빈 스코프
    서드파티 프레임워크, 라이브러리 적용
    9.4 정리

    부록 A 스프링 모듈
    A.1 스프링 모듈의 종류와 특징
    A.1.1 스프링 모듈 이름
    A.1.2 스프링 모듈 추가
    수동 추가
    Maven/Ivy 자동 추가
    A.1.3 스프링 모듈 목록
    A.2 스프링 모듈의 의존관계
    A.2.1 모듈별 의존관계
    ASM 모듈
    Core 모듈
    Beans 모듈
    AOP 모듈
    Expression 모듈
    Context 모듈
    Context.Support 모듈
    Transaction 모듈
    JDBC 모듈
    ORM 모듈
    Web 모듈
    Web.Servlet 모듈
    Web.Portlet 모듈
    Web.Struts 모듈
    JMS 모듈
    Aspects 모듈
    Instrument 모듈
    Instrument.Tomcat 모듈
    Test 모듈

    부록 B 스프링 의존 라이브러리
    B.1 의존 라이브러리의 종류와 특징
    B.1.1 의존 라이브러리 이름
    B.1.2 의존 라이브러리 추가
    수동 추가
    자동 추가
    B.2 모듈별 의존 라이브러리 의존관계
    B.2.1 필수 라이브러리
    B.2.2 모듈별 선택 라이브러리
    ASM 모듈
    Core 모듈
    Beans 모듈
    AOP 모듈
    Expression 모듈
    Context 모듈
    Context.Support 모듈
    Transaction 모듈
    JDBC 모듈
    ORM 모듈
    Web 모듈
    Web.Servlet 모듈
    Web.Portlet 모듈
    Web.Struts 모듈
    JMS 모듈
    Aspects 모듈
    Instrument 모듈
    Instrument.Tomcat 모듈
    Test 모듈

출판사 서평

★ 이 책에서 다루는 내용 ★

★ DIJ/JavaConfig, OXM, @MVC, SpEL, Task, REST 등의 스프링 3.0의 최신 기술 소개
Java EE 6의 JSR-303과 자바코드를 이용한 최첨단 DI기술, XML 매핑을 위한 OXM, 기존 MVC를 완벽하게 대체한 강력한 웹 프레임워크인 @MVC, 스프링 공식 EL인 SpEL, JSR-303(BeanValidation)과 새로운 컨버터와 포매터 활용방법, 각종 비동기 작업을 위한 Task 기능, REST 템플릿 사용법 등 스프링 3.0의 새로운 기능을 기존 스프링 기술과 함께 상세히 소개한다.

★ 런타임 추상화, 프로파일, 프로퍼티 소스, 캐시 추상화, 발전된 @MVC, 플래시 맵 등 스프링 3.1의 최신 기술 소개
프로파일을 이용한 다이내믹한 빈 설정 기술, 통합된 프로퍼티 소스, 더욱 강력해진 @MVC 핸들러 작성, 플래시 맵 활용 방법과 AOP를 이용한 캐시 추상화 등 스프링 3.1의 최신 기술과 달라진 점을 자세히 소개한다.

★ 스프링 기술 선택을 위한 상세한 기술 비교, 선택 기준 제시
같은 기술에도 수많은 옵션을 제공하는 스프링의 특성 때문에 기술 선택에 고민하는 개발자를 위해서 스프링이 제공하는 다양한 기술 옵션을 비교하고, 환경에 따른 적절한 선택을 위한 기준을 제공해준다.

★ @Enable 빈 설정 모듈화 기법 소개
스프링 3.1의 최신 자바코드 빈 설정 기법을 이용해서 재사용 가능한 빈 설정 모듈을 만드는 방법을 스프링 3.1에 적용된 실전 예를 기준으로 상세하게 설명한다.

★ 스프링 애플리케이션 아키텍처 설계와 스프링 기반 프레임워크 제작을 위한 완벽 가이드
스프링을 이용한 엔터프라이즈 애플리케이션 아키텍처 작성을 위한 다양한 아키텍처 소개와 전략 분석, 스프링을 기반으로 한 사내 프레임워크 제작에 꼭 필요한 스프링 확장 기법을 소개한다.

★ 이 책의 구성 ★

스프링이 공개된 지 이미 9년째이고 많은 개발자가 스프링을 사용해 애플리케이션을 개발해오고 있다. 그럼에도 적지 않은 수의 개발자들은 스프링의 핵심 가치와 혜택을 충분히 누리지 못하는 듯하다. 스프링의 가치를 제대로 누리며 사용하려면 스프링을 제대로 공부해야 한다. 스프링을 효과적으로 익히려면 다음의 세 가지 단계를 통해 스프링을 학습해야 한다.

▶ 스프링의 핵심 가치와 원리에 대한 이해
▶ 스프링의 기술에 대한 지식과 선택 기준 정립
▶ 스프링의 적용과 확장

이 책은 이 세 가지 단계를 따라서 스프링을 공부하려는 사람을 대상으로 쓰여진 책으로, Vol. 1에서는 첫 단계인 ‘핵심 가치와 원리에 대한 이해’를 중심으로 하고, Vol. 2에서는 두 번째 단계인 ‘스프링 기술에 대한 지식과 선택’을 집중해서 다룬다. 세 번째 단계인 확장에 대해서는 책의 여러 곳에서 다양한 전략과 예제, 힌트를 제공한다. 하지만 본격적으로 응용과 확장에 대한 지식을 쌓는 일은 독자들의 몫이다. 각자의 상황에 맞게 처음 두 단계에서 배운 지식을 응용해 스프링을 확장해보는 훈련을 해야 한다.

의 구성과 예제

Vol. 1에서는 간단한 예제를 만들어가는 과정을 통해 스프링의 기본 원리와 핵심 기술을 설명한다. 스프링은 개발자가 만드는 코드가 얹혀서 동작하는 프레임워크다. 프레임워크의 가장 중요한 목적은 개발자가 일정한 틀을 따라 효과적으로 애플리케이션을 개발하도록 돕는 것이다. 따라서 프레임워크를 잘 이해하려면 프레임워크를 사용했을 때 애플리케이션 코드가 어떻게 만들어지는지 자세히 살펴봐야 한다.

Vol. 1에서는 각 장마다 스프링 프레임워크를 사용하지 않고 개발한 단순한 코드를 먼저 작성해보고, 여러 단계를 거쳐 최종적으로 스프링 프레임워크를 활용한 코드로 발전시킨다. 프레임워크를 적용하지 않았을 때의 코드와 적용 후의 코드를 비교하면서 스프링 프레임워크를 사용하면 어떤 식으로 코드가 만들어져야 하는지를 설명한다.

Vol. 1에서 다루는 내용은 Vol. 2에서 본격적으로 소개할 스프링의 다양한 기술을 이해하는 데 중요한 기반이 된다. 스프링에 적용된 기본 패턴과 기반이 되는 원리를 Vol. 1에서 설명하는 순서에 따라 학습해두면 이후에 스프링의 개별 기술과 API를 익힐 때 많은 도움이 될 것이다.

1장부터 7장까지는 사용자 관리 기능을 구현하는 하나의 예제를 만드는 과정을 단계적으로 설명한다. 예제는 처음부터 끝까지 모두 연결된다. 코드를 지속적으로 개선하면서 발전시키기 때문에 코드가 계속 바뀌고 새로운 클래스가 추가되거나 사라지기도 한다. 에이콘출판사 홈페이지에서 내려 받을 수 있는 소스코드의 예제들은 각 장에서 코드가 바뀌는 주요 절별로 제공된다. 가능하면 Vol. 1의 예제는 책의 내용을 참고해서 직접 따라 해보기를 권장한다. 코드가 만들어지고 개선되고 발전하는 과정을 직접 체험하는 것이 Vol. 1의 내용을 이해하는 데 가장 좋은 방법이다.

스프링 3.1의 새로운 기술을 다루는 7.6절을 제외한 나머지 모든 예제는 스프링 3.0을 기준으로 사용할 라이브러리를 소개한다. 모든 내용은 스프링 3.1에서도 동일하게 적용되므로 스프링 3.1을 이용해 예제를 작성해도 무방하다. 소스코드 파일에는 스프링 3.0과 3.1 버전으로 각각 작성된 Vol. 1의 예제 프로젝트가 담겨 있다.

[별도 소스코드 제공]

- 이 책에 들어 있는 모든 예제의 소스코드
- 스프링 3.0과 스프링 3.1의 기술 활용법을 보여주는 학습 테스트 코드
- 스프링 @MVC를 이용한 웹 애플리케이션 프로젝트

★ 이 책의 대상 독자 ★

이 책은 스프링을 이용해서 엔터프라이즈 자바 애플리케이션을 개발하려는 모든 개발자를 대상으로 한다. 이 책을 공부하기 위해서는 자바 언어와 JDBC를 이용한 DB 프로그래밍, 그리고 기초적인 웹 개발 지식이 필요하다. Vol. 2에는 스프링 외의 서드파티 프레임워크나 JavaEE 표준 기술을 스프링에 통합해서 사용하는 내용이 일부 포함되어 있다. 이런 내용을 살펴볼 때는 관련 기술에 대한 지식이 추가로 필요할 수 있다.

★ 스프링 3.1의 새로운 기능 ★

스프링 3.1에 추가된 주요한 기능과 특징은 다음과 같다.

강화된 자바 코드를 이용한 빈 설정
스프링 3.1은 스프링 3.0부터 지원하기 시작한 자바 코드를 이용한 빈 설정 방식을 대폭 확장해서 스프링 빈 설정의 거의 모든 영역으로 확대했다. 기존에 XML로 작성했던 스프링 설정 정보를 3.1에서는 자바 코드로 대체할 수 있다. XML을 전혀 사용하지 않고 스프링 애플리케이션을 작성할 수도 있다. 자바 코드를 이용한 빈 설정을 위해 다양한 애노테이션이 추가됐다. XML의 전용 커스텀 태그를 대체할 수 있는, @Enable로 시작하는 전용 애노테이션도 제공된다.

런타임 환경 추상화
스프링 애플리케이션이 실행되는 런타임 환경 정보를 추상화한 환경 오브젝트가 컨테이너를 통해 제공된다. 실행환경에 따라 달라지는 빈 설정을 효과적으로 관리할 수 있는 프로파일과 각종 프로퍼티 정보를 컨테이너를 통해 일관된 방식으로 제공할 수 있게 해주는 프로퍼티 소스가 환경 오브젝트가 제공하는 주요 기능이다.

JPA 지원 확장과 하이버네이트 4 지원
하이버네이트 4 지원 기능이 새롭게 추가됐다. JPA를 이용할 때보다 편리하게 설정정보를 작성할 수 있는 편리한 기능도 추가됐다.

새로운 DispatcherServlet 전략과 플래시 맵
스프링 3.0에서 사용되던 DispatcherServlet 전략의 일부가 새롭게 설계된 전략으로 대체됐다. 이를 통해 MVC 기능을 확장하기가 편리해졌다. Post/Redirect/Get 패턴에 사용할 수 있는 플래시 맵 기능도 추가됐다.

캐시 추상화
AOP를 이용한 메소드 레벨의 캐시 추상화 기능이 추가됐다. 이를 이용해 캐시 구현 기술에 독립적인 방식으로 애플리케이션 빈에 캐시 기능을 적용할 수 있게 됐다. 맵을 이용한 간단한 캐시 구현부터 ehcache를 이용한 고급 캐시 기술까지 지원한다.

★ 『토비의 스프링 3.1』 추천의 글 ★

스프링의 아버지 로드 존슨은 '객체지향 설계는 특정 구현기술보다, 심지어 자바보다도 더 중요하다.'고 말했다. 『토비의 스프링 3』 책은 그 가치를 잘 담아냈다. 테스트하기 쉬운 코드, 구성요소의 역할과 책임을 섬세하게 나누는 설계 등 이 책에서 강조하는 기법은 프로그래밍을 하는 사람이면 누구나 새겨볼 만한 내용이다. 거기에 비해 어쩌면 최신 기술의 소개라는 측면은 부차적일지도 모른다. 그럼에도 최신 스프링 3.1에 맞춰 개정판이 나온다는 소식은 반갑기 그지 없다. 이제 이 책이 단순히 흘러가는 트렌드를 잡는 책이 아니라 『수학의 정석』처럼 꾸준히 개정되며 늘 우리에게 지식과 통찰을 주는 스테디셀러로 자리 잡기를 기원한다.
- 정상혁 / NHN Technology Service 신규서비스 개발팀 차장

스프링 활용법뿐 아니라 그 원리까지 쉽게 이해할 수 있도록 풀어서 설명하는 이 책은 대규모 프로젝트에서 정형화된 업무 로직의 반복된 구현에 지친 SI 개발자 분들에게 학습의 즐거움과 더 나은 코드를 만들어가는 과정에서 실력이 늘어가는 개발의 재미를 다시금 느끼게 해줄 것입니다. 최근 들어서는 3.0에서 3.1, 3.2로 발전해 나가는 스프링의 발전 방향을 눈여겨 보는 분들도 많을 것이다. 이처럼 매우 적절한 시기에 스프링 3.1을 다루는 개정판까지 나온다니, 클라우드, 빅데이터 등 점점 복잡해지는 IT 환경의 변화를 수용하기 위해 스프링이 어떻게 변해가는지도 이 책을 통해 엿볼 수 있을 것입니다.
- 김승권 / 금융분야 독립컨설턴트

★ 『토비의 스프링 3』 추천의 글 ★

저자인 이일민 씨를 아는 사람에게는 긴 설명이 필요 없겠지만, 잘 모르는 분을 위해 이 책의 고유한 가치를 몇 가지 떠올려봤다.
첫째, 뛰어난 강사이기도 한 저자의 효과적인 강의 스타일을 담아낸 책의 이야기 전개다. 저자는 대뜸 스프링이 가진 기술을 나열하기보단 친숙한 자바 코드(초난감 DAO)를 내밀었다. 책을 읽어가면 점차 독자는 흔히 쓰이던 코드의 문제점에 공감하고, 여러 가지 방식으로 개선해가는 여정을 함께한다. 책과 함께 고민한 독자라면 여정의 끝에서 스프링을 쓰는 이유와 어떤 게 올바른 사용법인지 배울 수 있다. 사실 이런 전개는 정말 뛰어난 외국 서적에서는 종종 볼 수 있는 방식이지만, 한글 기술서로 한정하면 가히 독보적이라 할 수 있다.
둘째, 사상과 활용법을 모두 담은 넓은 효용성이다. 시중에 두꺼운 기술서는 드물지 않지만, 이 책은 API 설명이나 화면 캡처로 지면을 할애하지 않았다. 책 전반부는 객체지향 프로그래밍 관점에서 어떤 코드가 좋은 코드인지를 다루면서 왜 스프링을 써야 하는지를 설명하고, 후반부는 스프링을 구성하는 요소 기술을 올바르게 사용하는 방법을 빠짐없이 설명하고 있음을 상기하면 책의 두께는 놀랍도록 얇다(?). 학습과제에만 초점을 맞출 수 있도록 구성한 장의 구성과 단계별 예제는 SoC(Separation of Concerns)를 통해 방대한 내용을 모두 담아내기 위해 저자가 각고해 노력한 결과물이다.
셋째, 책의 내용과 예제 코드의 정확함이다. 프로그래밍 서적으로 공부할 때 예제가 작동하지 않아 시간을 허비한 경험이 있는 개발자는 드물지 않다. 1부는 테스트 주도로 진행하고, 2부도 예제 전부가 테스트 코드 형태로 만들어져 결함을 막았다. 한편 개념 설명을 위해 다이어그램을 활용하고 코드에도 충분한 부연 설명을 붙인 결과, 섬세하고 정확한 내용이 만들어졌다.
변변한 책이 없던 시절 스프링을 이해하기 위해 어쩔 수 없이 스프링 소스코드를 봤다. 스프링 소스코드는 객체를 조직화하는 설계에 대한 모범답안과도 같았다. 하지만 방대한 코드만 보고 의도를 모두 익힐 수는 없었다. 그 후에 로드 존슨의 책을 반복해 읽으면서 스프링을 이해할수록 감탄하고 또 감탄했다. 다행스럽게도 지금 스프링을 공부하는 여러분에게는 더 나은 방법을 제시할 수 있다. 로드 존슨이 했던 이야기를 로드 존슨은 할 수 없는 우리말로 읽을 수 있다. 그리고 진정한 고수 개발자로 꾸준히 노력해온 이일민 씨의 노하우를 함께 배울 수 있다.
- 안영회(http://younghoe.info)
한국스프링사용자모임공동설립자, (주)아이티와이즈컨설팅 컨설턴트

이 책은 스프링의 핵심 가치를 전달하는 데 집중하고 있다. 로드 존슨이 쓴 『J2EE Development without EJB』 이후로 지금까지 출간된 스프링 서적 중에서 이 책만큼 스프링의 핵심 가치를 제대로 전달한 책은 보지 못했다. 이 책은 스프링을 사용하지 않더라도 자바를 기반으로 애플리케이션을 개발하는 모든 개발자가 읽어야 하는 책이다. 그만큼 자바가 추구하고자 하는 핵심 가치에 집중하고 있는 책이다. 특히 이 책의 모든 소스코드에는 테스트 코드가 함께 들어 있다. 이는 테스트하기 쉬운 코드를 만들도록 유도하는 스프링의 강점을 보여주면서 테스트의 중요성을 자연스럽게 이야기하려는 저자의 의도이리라.
자바 기반의 엔터프라이즈 개발은 지금까지 많은 우여곡절을 겪으면서 먼 길을 돌아왔다. 이 책으로 인해 자바가 추구하고자 했던 초심으로 돌아갈 수 있는 계기가 됐으면 하는 바람이다.
- 박재성 / XLGames 웹 서비스 개발자

지난 10회 한국 스프링 사용자 모임 세미나 도입부 때 개회사를 겸한 간단한 발표를 하면서 저는 두 가지를 말했습니다. 스프링이 단순한 프레임워크가 아닌 플랫폼으로 발전했다는 사실과, 그럼에도 초기 스프링의 철학은 여전히 유효하고 더욱 강조돼야 하며 스프링 자체보다 중요하다는 점입니다.
스프링 사이트의 스프링 소개(About Spring)에서 확인할 수 있는 이 철학을 지금까지 로드 존스의 책을 제외한 어떤 스프링 관련 책에서도 충분히 다루지 않았습니다. 그래서 많은 사람이 스프링이 주는 이점과 즐거움을 누리지 못하면서 스프링을 쓰고 있습니다. 고맙게도 이일민 씨는 스프링이 무엇인지 명시적으로 설명하기를 8장으로 미루고 그보다 먼저, 친절하고 쉽게 그리고 감동적으로 스프링의 배경(좋은 객체지향 기법과 우수 실천법)을 설명합니다.
이일민 씨는 뛰어난 개발자이고 완벽주의자인 동시에 타고난 이야기꾼입니다. 전 이 책을 눈으로 읽으면서도 어떻게 이렇게 다양하고 방대한 내용이 한 책으로 엮일 수 있는지 이해할 수가 없습니다. 스프링을 닮은 책입니다.
- 박성철 / 한국 스프링 사용자 모임 큰일꾼

스프링을 처음 본 게 2003년이었는데 그때만 해도 아무도 지금처럼 스프링이 전 세계 애플리케이션 개발 시장에서 가장 영향력 있는 프레임워크로 성장하리라고 예측하지는 못했던 것 같다. 스프링이 성공할 수 있었던 가장 큰 요인 중 하나는 객체지향 원칙을 충실히 지켜내면서도 더 나아가 개발자의 자율성과 창의성을 극대화할 수 있는 유연한 구조를 지니고 있기 때문이다. 이 책은 스프링이 추구했던 이러한 내면의 원칙을 현실과 잘 맞추어 풀어낸 한 편의 흥미진진한 소설과도 같다. 이 시대의 아키텍트나 개발자라면 반드시 한 번은 꼭 읽어봐야 할 책이다.
- 김창제 / 삼성 SDS 수석, Anyframe Java 기획?개발 총괄

스프링은 이제 자바 개발의 필수 프레임워크로 자리 잡았다. 스프링은 자바의 객체지향적 사고와 애자일한 가치를 구현한 프레임워크이지만, 대부분 개발자는 필요한 템플릿을 수정하기만 할 뿐 스프링 프레임워크가 지향하는 가치와 동작원리를 충분히 이해하지 못한 채로 사용하고 있다. 이 책은 스프링을 배우는 데 필요한 DAO, AOP 같은 중요 개념의 이해를 시작으로 실전 프로젝트에 적용하는 방법까지 체계적으로 다루고 있다. 그리고 스프링의 학습법까지 친절히 다루는 등 곳곳에 저자 이일민 씨의 숨은 노력과 배려가 깃든 책으로 자바 개발자라면 꼭 읽어보길 권한다.
- 옥상훈 / 제4대 한국자바개발자 협의회 회장, 현 한국SW아키텍트 연합 공동회장

먼저, 저는 스프링을 전혀 모릅니다. J2EE 1.4, JavaEE 5, 그리고 JavaEE 6까지, 기술 표준과 구현에 참여하고 관심을 둬왔던 저로서는, JavaEE(특히 EJB)의 안티테제로 시작한 스프링에 어느 정도 반감이 있었고, 그래서 의도적으로 알려 하기를 꺼렸습니다.
하지만 티맥스를 떠나 오픈마루에서 웹 서비스 개발을 하게 되자 스프링은 당면한 과제가 돼버렸습니다. 루비온레일스로 비켜가 보기도 했지만, 결국 자바 플랫폼으로 가게 됐습니다. 제가 아무리 JavaEE만으로 개발하자고 주장해도, 결국 스프링을 채택하기에 이르렀습니다.
토비님의 블로그 또한 자바와 비자바를 떠나 많은 개발자에게 감명을 줬습니다. 그리고 그 이면에 담긴 JavaEE의 한계와 문제점은 실은 저를 부끄럽게 만들기 충분했지요. 무엇보다도 그 깊이, 토비님이 보여주신 그 깊이가 저는 한없이 부러웠고 존경스러웠습니다. 저는 이 책의 1장을 읽었습니다. 이제서야 스프링이 뭔지를 겨우 알아가게 되다니, 마치 요새 “맥주 맛도 모르면서”의 광고 카피처럼 말입니다.
이 책이 독자에게 영감과 격려를 주리라 믿습니다.
- 이창신 / ias(iNDIE aPPLICATION sOFTWARE) 대표

먼저, 기다려온 스프링 3 서적의 출간을 축하합니다. 스프링 2.5 버전을 경험했던 사람으로 달라진 기능은 무엇인지, 하위 버전과의 호환성 보장을 위해 어떻게 확장되고 발전됐는지, 새로운 버전이 나올 때마다 갖게 되는 궁금증에 대해 명쾌한 해답을 얻을 수 있는 좋은 기회가 됐습니다. 또한 스프링의 각 개념이 예제 중심으로 잘 설명되어 있어 스프링을 처음 접하는 분들도 쉽게 다가갈 수 있으리라 생각되며, 이전 버전 경험자 분들에게는 스프링이 확장 포인트를 어떻게 응용하면서 업그레이드됐는지 배울 수 있는 좋은 기회가 되리라 생각합니다. 다시 한번 『토비의 스프링 3』 출간을 축하하며, 스프링을 도입하거나 스프링 3.0으로 버전 업그레이드를 고려하고 있는 많은 개발자의 고민을 조금이나마 덜어줄 수 있기를 기대합니다.
- 이봉옥 책임 / 전자정부 표준프레임워크 커미터 삼성SDS

이 책을 통해 개발자들은 리팩토링과 디자인 패턴, 객체지향 핵심 원칙도 자연스럽게 접하면서, 책에 담긴 내용을 자신의 것으로 받아들일 것이라고 생각한다. 원칙과 코드를 잘 어울리게 설명한 대목에서는 누구나 내공을 느끼게 할 만큼 쉽고 깊이 있게 풀어낸 책이기에, 초보 개발자는 물론 연차가 오래됐지만 기초가 부족하다고 느끼는 개발자에게 적극적으로 권해주고 싶다.
독자들이 이 책을 마칠 즈음엔 스프링을 배우러 왔다가 객체지향이라는 월척을 낚았다고 웃으며 책장을 덮게 될 것이라고 확신한다. 아울러 지금까지 써왔던 방식과 달리 스프링에서 주고자 했던 핵심 가치를 느끼며 코딩하고 있는 자신을 발견하리라고 조심스럽게 상상해본다.
- 양수열 / 인피언컨설팅 연구소장, JCO 3대회장?현 고문

저는 스프링은 잘 모르지만 토비 형님과 에이콘 출판사를 잘 알기에 이 책을 자신 있게 권해드릴 수 있습니다. 토비 형님은 어려운 내용을 쉽게 설명하는 마력을 가진 사람입니다. 사실 쉬운 내용도 어렵게 설명하는 분들이 워낙 많기에 그의 글이 더욱 빛납니다.
두 개의 부로 구성된 이 책의 1부는 그의 그런 장점을 잘 녹여내어 처음 시작하는 자바 개발자도 쉽게 내용을 이해할 수 있습니다. 2부는 실제 프로젝트에 적용하는 데 필요한 내용을 담고 있습니다. 또한 고심에 고심을 거듭하여 만든 예제들은 프로젝트를 진행하는 데 적잖은 도움을 드릴 것입니다.
이 책을 구입한 모든 분들이 한 단계 더 발전하는 좋은 계기가 되길 바라겠습니다.
대한민국 개발자 파이팅!
- 정희용 / 월간 마이크로소프트웨어 발행인

책을 펴기도 전에, 1400페이지가 넘는 이 책의 두께와 무게에 지레 겁을 먹은 독자분도 있을 것이다. 하지만 걱정하지 말자. 이 책이 이토록 두껍고 무거워진 건 모두 다 우리를 위한 배려 때문이고, 그 방대한 양만큼이나 매우 친절한 책이다. 스프링을 학습하는 데 있어 중요한 내용을 이렇게까지 차근차근 그리고 점진적으로 쉽게 설명해주는 책은 여태 없었다. 진작에 이런 책으로 스프링 공부를 시작했다면 내가 스프링에 쏟아온 학습 시간이 한층 줄어들었을 게 분명하다.
이 책의 가치는 여러 번 반복해 읽었을 때 더욱 빛을 발한다. 저자의 의도는 단순히 스프링을 설명하는 데 그치지 않는다. 이 책에서는 객체지향적인 코드, 프레임워크의 개념 정립, 테스트가 주는 장점 등을 고스란히 엿볼 수 있다. 물론 우리가 스프링만 가지고서는 아무것도 할 수 없다. 결국은 다른 코드와 버무려 맛있는 코드를 만들어야 한다. 이를 간파한 저자는 바로 그때 어떻게 하면 개발자들이 좀 더 가치 있고 유익한 코드를 작성할 수 있는지 이 책에서 잘 설명한다. 팁을 하나 더 드리자면, 별도로 제공되는 소스코드는 꼭 확인하기 바란다. 나중에 기회가 되면 봄싹 모임에서 스터디로 진행하고 싶을 정도로 멋지고 유용한 코드가 독자를 기다린다. 마치 잠자는 책 속의 코드처럼…
- 백기선 / 봄싹 커뮤니티(http://springsprout.org) 대표, 스프링프레임워크 강사

★ 『토비의 스프링 3.1』 출간에 부쳐 ★

『토비의 스프링 3』은 원래 3부로 기획했던 책이다. 핵심 기술의 이해, 기술의 선택, 프레임워크 확장이라는 세 단계를 통해 스프링을 설명하는 책을 쓰기 시작했다. 하지만 원래 간결하게 설명하는 능력이 부족한 탓인지, 친절하고 자세히 설명해야 한다는 강박관념 때문인지 2부까지만 쓰고 마무리했는데도 처음 생각했던 것보다 훨씬 많은 분량의 글이 나와 제법 묵직하고 두꺼운 책을 발간하게 되었다. 독자분들은 두꺼운 책이라 휴대하기 힘들어하시기는 했지만, 그래도 1부, 2부 두 단계로 스프링을 학습하도록 구성한 방식에 많은 분이 만족해주셨다.

개정판을 준비하면서 스프링 3.1의 새로운 기능을 소개하려고 내용을 추가하니 책 분량은 훨씬 더 늘어났고 더 이상은 한 권으로 책을 내는 것이 어려워졌다. 그래서 스프링의 원리와 이해를 다룬 1부의 내용을 중심으로 한 권을, 또 스프링의 기술과 활용 전략을 다룬 내용을 중심으로 해서 다른 한 권을 해서 두 권으로 분리하게 됐다. 지금까지 가장 많이 받은 독자 피드백이 휴대성이 좋도록 책을 분권해달라고 하는 것이었는데 그 요청을 들어드릴 수 있게도 되었다.

스프링 3.1이 나온 지도 제법 시간이 흐르긴 했지만 아직도 현장에서는 스프링 3.0을 이용하는 경우가 대부분이고, 이제야 스프링 2.5에서 3.0으로 이전하는 곳도 많다고 한다. 그래서 이 책에서는 전체 내용을 스프링 3.1을 기준으로 바꾸는 대신, 스프링 3.0과 스프링 3.1 내용을 함께 담으려고 했다. Vol. 1에서는 스프링 3.0을 기준으로 예제를 작성하는 기존 내용을 그대로 두고 후반부에 이 예제를 스프링 3.1의 새로운 기술을 적용해서 업그레이드 하는 방법을 설명한다. Vol. 2에서는 스프링 3.0과 스프링 3.1에 동일하게 적용되는 내용은 그대로 두고 각 장 마지막에 스프링 3.1의 새로운 기술이나 변경 사항을 집중적으로 다뤘다. 그래서 당장 스프링 3.0으로 프로젝트를 진행하면서 필요한 내용을 참조하시려는 분은 물론, 기존 프로젝트를 스프링 3.1로 업그레이드하거나 3.1로 새로운 프로젝트를 작성하실 분까지 모두 참고할 수 있게 만들었다.

스프링이 이제는 자바 개발자들의 필수 기술이 되었다는 이야기가 들린다. 스프링의 위상이 높아지고 가치가 인정받는 것 같아 기쁘다. 그저 스프링에 대한 지식을 많이 쌓은 스프링 전문가보다는 스프링의 도움으로 애플리케이션 개발을 잘 하는 개발자가 점점 더 많아지기를 기대한다.

- 브리즈번에서 토비 이일민

기본정보

상품정보
ISBN 9788960773417 ( 8960773417 )
발행(출시)일자 2012년 09월 21일
쪽수 880쪽
크기
188 * 255 * 40 mm / 1756 g
총권수 1권
시리즈명
에이콘 오픈소스 프로그래밍 시리즈

Klover

Klover 리뷰 안내
교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
리워드 안내
구매 후 90일 이내에 평점과 10자 이상의 리뷰 작성 시 e교환권 200원을 적립해 드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
한달 후 리뷰
구매 후 30일~ 120일 이내에 작성된 두 번째 구매리뷰에 대해 한 달 후 리뷰로 인지하고 e교환권 100원을 추가 제공합니다.
운영 원칙 안내
Klover 리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

리뷰는 1인이 중복으로 작성하실 수는 있지만, 평점계산은 가장 최근에 남긴 1건의 리뷰만 반영됩니다.
신고하기
다른 고객이 작성리뷰에 대해 불쾌함을 느끼는 경우 신고를 할 수 있으며, 신고 자가 일정수준 이상 누적되면 작성하신 리뷰가 노출되지 않을 수 있습니다.

구매 후 리뷰 작성 시, e교환권 200원 적립

문장수집

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.

구매 후 리뷰 작성 시, e교환권 100원 적립

이 책의 첫 기록을 남겨주세요

교환/반품/품절 안내

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

이벤트
TOP

저자 모두보기

저자(글)

매장별 재고 및 위치

할인쿠폰 다운로드

  • 쿠폰은 주문결제화면에서 사용 가능합니다.
  • 다운로드한 쿠폰은 마이 > 혜택/포인트 에서 확인 가능합니다.
  • 도서정가제 적용 대상 상품에 대해서는 정가의 10%까지 쿠폰 할인이 가능합니다.
  • 도서정가제 적용 대상 상품에 10% 할인이 되었다면, 해당 상품에는 사용하실 수
    없습니다.

적립예정포인트 안내

  • 통합포인트 안내

    • 통합포인트는 교보문고(인터넷, 매장), 핫트랙스(인터넷, 매장), 모바일 교보문고 등 다양한 곳에서 사용하실 수 있습니다.
    • 상품 주문 시, 해당 상품의 적립률에 따라 적립 예정 포인트가 자동 합산되고 주문하신 상품이 발송완료 된 후에 자동으로 적립됩니다.
    • 단, 쿠폰 및 마일리지, 통합포인트, e교환권 사용 시 적립 예정 통합포인트가 변동될 수 있으며 주문취소나 반품시에는 적립된 통합포인트가 다시 차감됩니다.
  • 통합포인트 적립 안내

    • 통합포인트는 도서정가제 범위 내에서 적용됩니다.
    • 추가적립 및 회원 혜택은 도서정가제 대상상품(국내도서, eBook등)으로만 주문시는 해당되지 않습니다.
  • 기본적립) 상품별 적립금액

    • 온라인교보문고에서 상품 구매시 상품의 적립률에 따라 적립됩니다.
    • 단 도서정가제 적용 대상인 국내도서,eBook은 15%내에서 할인율을 제외한 금액내로 적립됩니다.
  • 추가적립) 5만원 이상 구매시 통합포인트 2천원 추가적립

    • 5만원 이상 구매시 통합포인트 2천원 적립됩니다.
    • 도서정가제 예외상품(외서,음반,DVD,잡지(일부),기프트) 2천원 이상 포함시 적립 가능합니다.
    • 주문하신 상품이 전체 품절인 경우 적립되지 않습니다.
  • 회원혜택) 3만원이상 구매시 회원등급별 2~4% 추가적립

    • 회원등급이 플래티넘, 골드, 실버 등급의 경우 추가적립 됩니다.
    • 추가적립은 실결제액 기준(쿠폰 및 마일리지, 통합포인트, e교환권 사용액 제외) 3만원 이상일 경우 적립됩니다.
    • 주문 후 취소,반품분의 통합포인트는 단품별로 회수되며, 반품으로 인해 결제잔액이 3만원 미만으로 변경될 경우 추가 통합포인트는 전액 회수될 수 있습니다.

제휴 포인트 안내

제휴 포인트 사용

  • OK CASHBAG 10원 단위사용 (사용금액 제한없음)
  • GS&POINT 최대 10만 원 사용
더보기

구매방법 별 배송안내

배송 일정 안내

  • 출고 예정일은 주문상품의 결제(입금)가 확인되는 날 기준으로 상품을 준비하여 상품 포장 후 교보문고 물류센터에서 택배사로 전달하게 되는 예상 일자입니다.
  • 도착 예정일은 출고 예정일에서 택배사의 배송일 (약1~2일)이 더해진 날이며 연휴 및 토, 일, 공휴일을 제외한 근무일 기준입니다.
배송 일정 안내
출고예정일 도착예정일
1일이내 상품주문 후 2~3일 이내
2일이내 상품주문 후 3~4일 이내
3일이내 상품주문 후 4~5일 이내
4일이내 상품주문 후 5~6일 이내

연휴 및 토, 일, 공휴일은 제외됩니다.

당일배송 유의사항

  • 수도권 외 지역에서 선물포장하기 또는 사은품을 포함하여 주문할 경우 당일배송 불가
  • 회사에서 수령할 경우 당일배송 불가 (퇴근시간 이후 도착 또는 익일 배송 될 수 있음)
  • 무통장입금 주문 후 당일 배송 가능 시간 이후 입금된 경우 당일 배송 불가
  • 주문 후 배송지 변경 시 변경된 배송지에 따라 익일 배송될 수 있습니다.
  • 수도권 외 지역의 경우 효율적인 배송을 위해 각 지역 매장에서 택배를 발송하므로, 주문 시의 부록과 상이할 수 있습니다.
  • 각 지역 매장에서 재고 부족 시 재고 확보를 위해 당일 배송이 불가할 수 있습니다.

일반배송 시 유의사항

  • 날씨나 택배사의 사정에 따라 배송이 지연될 수 있습니다.
  • 수도권 외 지역 바로배송 서비스의 경우 경품 수령 선택 여부에 따라 도착 예정일이 변경됩니다.
  • 출고 예정일이 5일 이상인 상품의 경우(결제일로부터 7일 동안 미입고), 출판사 / 유통사 사정으로 품/절판 되어 구입이 어려울 수 있습니다. 이 경우 SMS, 메일로 알려드립니다.
  • 선물포장 주문 시 합배송 처리되며, 일부상품 품절 시 도착 예정일이 늦어질 수 있습니다.
  • 분철상품 주문 시 분철 작업으로 인해 기존 도착 예정일에 2일 정도 추가되며, 당일 배송, 해외 배송이 불가합니다.

해외주문 시 유의사항

  • 해외주문도서는 해외 거래처 사정에 의해 품절/지연될 수 있습니다.

Special order 주문 시 유의사항

  • 스페셜오더 도서나 일서 해외 주문 도서와 함께 주문 시 배송일이 이에 맞추어 지연되오니, 이점 유의해 주시기 바랍니다.

바로드림존에서 받기

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상 시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함 되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해 주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반 코너에서 수령확인이 가능합니다
  • 선물 받는 분의 휴대폰번호만 입력하신 후 결제하시면 받는 분 휴대폰으로 선물번호가 전달됩니다.
  • 문자를 받은 분께서는 마이 > 주문관리 > 모바일 선물내역 화면에서 선물번호와 배송지 정보를 입력하시면 선물주문이 완료되어 상품준비 및 배송이 진행됩니다.
  • 선물하기 결제하신 후 14일까지 받는 분이 선물번호를 등록하지 않으실 경우 주문은 자동취소 됩니다.
  • 또한 배송 전 상품이 품절 / 절판 될 경우 주문은 자동취소 됩니다.

바로드림 서비스 안내

  1. STEP 01
    매장 선택 후 바로드림 주문
  2. STEP 02
    준비완료 알림 시 매장 방문하기
  3. STEP 03
    바로드림존에서 주문상품 받기
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.
  1. STEP 01
    픽업박스에서 찾기 주문
  2. STEP 02
    도서준비완료 후 휴대폰으로 인증번호 전송
  3. STEP 03
    매장 방문하여 픽업박스에서 인증번호 입력 후 도서 픽업
  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상시간에 수령이 어려울 수 있습니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 1+1 도서, 경품, 사은품 등이 포함되지 않습니다.

음반/DVD 바로드림시 유의사항

  • 음반/DVD 상품은 바로드림 주문 후 수령점 변경이 불가합니다. 주문 전 수령점을 꼭 확인해주세요.
  • 사은품(포스터,엽서 등)은 증정되지 않습니다.
  • 커버이미지 랜덤발매 음반은 버전 선택이 불가합니다.
  • 광화문점,강남점,대구점,영등포점,잠실점은 [직접 찾아 바로드림존 가기], [바로드림존에서 받기] 로 주문시 음반코너에서 수령확인이 가능합니다.

도서 소득공제 안내

  • 도서 소득공제란?

    • 2018년 7월 1일 부터 근로소득자가 신용카드 등으로 도서구입 및 공연을 관람하기 위해 사용한 금액이 추가 공제됩니다. (추가 공제한도 100만원까지 인정)
      • 총 급여 7,000만 원 이하 근로소득자 중 신용카드, 직불카드 등 사용액이 총급여의 25%가 넘는 사람에게 적용
      • 현재 ‘신용카드 등 사용금액’의 소득 공제한도는 300만 원이고 신용카드사용액의 공제율은 15%이지만, 도서·공연 사용분은 추가로 100만 원의 소득 공제한도가 인정되고 공제율은 30%로 적용
      • 시행시기 이후 도서·공연 사용액에 대해서는 “2018년 귀속 근로소득 연말 정산”시기(19.1.15~)에 국세청 홈택스 연말정산간소화 서비스 제공
  • 도서 소득공제 대상

    • 도서(내서,외서,해외주문도서), eBook(구매)
    • 도서 소득공제 대상 상품에 수반되는 국내 배송비 (해외 배송비 제외)
      • 제외상품 : 잡지 등 정기 간행물, 음반, DVD, 기프트, eBook(대여,학술논문), 사은품, 선물포장, 책 그리고 꽃
      • 상품정보의 “소득공제” 표기를 참고하시기 바랍니다.
  • 도서 소득공제 가능 결제수단

    • 카드결제 : 신용카드(개인카드에 한함)
    • 현금결제 : 예치금, 교보e캐시(충전에한함), 해피머니상품권, 컬쳐캐쉬, 기프트 카드, 실시간계좌이체, 온라인입금
    • 간편결제 : 교보페이, 네이버페이, 삼성페이, 카카오페이, PAYCO, 토스, CHAI
      • 현금결제는 현금영수증을 개인소득공제용으로 신청 시에만 도서 소득공제 됩니다.
      • 교보e캐시 도서 소득공제 금액은 교보eBook > e캐시 > 충전/사용내역에서 확인 가능합니다.
      • SKpay, 휴대폰 결제, 교보캐시는 도서 소득공제 불가
  • 부분 취소 안내

    • 대상상품+제외상품을 주문하여 신용카드 "2회 결제하기"를 선택 한 경우, 부분취소/반품 시 예치금으로 환원됩니다.

      신용카드 결제 후 예치금으로 환원 된 경우 승인취소 되지 않습니다.

  • 도서 소득공제 불가 안내

    • 법인카드로 결제 한 경우
    • 현금영수증을 사업자증빙용으로 신청 한 경우
    • 분철신청시 발생되는 분철비용

알림 신청

아래의 알림 신청 시 원하시는 소식을 받아 보실 수 있습니다.
알림신청 취소는 마이룸 > 알림신청내역에서 가능합니다.

토비의 스프링 3.1 Vol 1: 스프링의 이해와 원리
한달 후 리뷰
/ 좋았어요
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 올해 주식 투자를 시작했다. 아무것도 모르고 초심자의 행운으로 분유값 정도를 벌고 나니, 조금 더 공부해보고 싶어져서 『초격차 투자법』을 구매했다.
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
기대가됩니다~
기대가됩니다~
기대가됩니다~
이 구매자의 첫 리뷰 보기
/ 좋았어요
하루밤 사이 책한권을 읽은게 처음이듯 하다. 저녁나절 책을 집어든게 잘못이다. 마치 게임에 빠진 아이처럼 잠을 잘수없게 만든다. 결말이 어쩌면 당연해보이는 듯 하여도 헤어나올수 없는 긴박함이 있다. 조만간 영화화되어지지 않을까 예견해 본다. 책한권으로 등의 근육들이 오그라진 느낌에 아직도 느껴진다. 하루밤 사이 책한권을 읽은게 처음이듯 하다. 저녁나절 책을 집어든게 잘못이다. 마치 게임에 빠진 아이 처럼 잠을 잘수없게 만든다. 결말이 어쩌면 당연해보이는 듯 하여도 헤어나올수 없는 긴박함이 있다. 조만간 영화화되어지지 않을까..
작년까지만 해도 주식은 커녕 재테크에 관해 아무것도 모르다가 구매했어요! 저도 공부하고 싶어서 구매했어요~ 다같이 완독 도전해봐요! :)
기대가됩니다~
신고

신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.

허위 신고일 경우, 신고자의 서비스 활동이 제한될 수 있으니 유의하시어
신중하게 신고해주세요.

판형알림

  • A3 [297×420mm]
  • A4 [210×297mm]
  • A5 [148×210mm]
  • A6 [105×148mm]
  • B4 [257×364mm]
  • B5 [182×257mm]
  • B6 [128×182mm]
  • 8C [8절]
  • 기타 [가로×세로]
EBS X 교보문고 고객님을 위한 5,000원 열공 혜택!
자세히 보기