본문 바로가기

추천 검색어

실시간 인기 검색어

자바 ORM 표준 JPA 프로그래밍

에이콘 오픈 소스 프로그래밍 시리즈
김영한 저자(글)
에이콘출판 · 2015년 07월 28일
9.5 (42개의 리뷰)
도움돼요 (34%의 구매자)
  • 자바 ORM 표준 JPA 프로그래밍 대표 이미지
    자바 ORM 표준 JPA 프로그래밍 대표 이미지
  • A4
    사이즈 비교
    210x297
    자바 ORM 표준 JPA 프로그래밍 사이즈 비교 188x250
    단위 : mm
MD의 선택 무료배송 이벤트 소득공제
10% 38,700 43,000
적립/혜택
2,150P

기본적립

5% 적립 2,150P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 2,150P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서만 15,000원 이상 구매 시 무료배송
도서+교보Only(교보배송)을 함께 15,000원 이상 구매 시 무료배송

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

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

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

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

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

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

1Box 기준 : 도서 10권

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

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

패키지

북카드

키워드 Pick

키워드 Pick 안내

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

수상내역/미디어추천

자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. 또한, 스프링 프레임워크와 JPA를 함께 사용하는 방법을 설명하고, 스프링 데이터 JPA, QueryDSL 같은 혁신적인 오픈 소스를 활용해서 자바 웹 애플리케이션을 효과적으로 개발하는 방법을 다룬다.

다음 링크에서 온라인 강의를 수강할 수 있다.

■ 강의 링크: https://www.inflearn.com/roadmaps/149
■ 온라인 강의 목록
-자바 ORM 표준 JPA 프로그래밍 - 기본편: https://www.inflearn.com/course/ORM-JPA-Basic
-실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발: https://www.inflearn.com/course/스프링부트-JPA-활용-1
-실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화: https://www.inflearn.com/course/스프링부트-JPA-API개발-성능최적화#
-실전! 스프링 데이터 JPA: https://www.inflearn.com/course/스프링-데이터-JPA-실전
-실전! Querydsl: https://www.inflearn.com/course/Querydsl-실전

작가정보

저자(글) 김영한

SI에서 다양한 프로젝트를 수행하고, J2EE 강사와 다음 커뮤니케이션, SK 플래닛을 거쳐 현재 우아한형제들에서 개발 팀장으로 근무하고 있다. 도메인 주도 설계에 관심이 많으며, 끊임없이 공부하고 더 나은 코드를 작성하는 개발자가 되려고 노력 중이다.

작가의 말

JPA를 처음 접했을 때의 놀라움은 아직도 잊혀지지 않는다. 지금까지 관계형 데이터베이스에서 객체를 관리하려고 작성했던 무수한 CRUD 코드와 SQL들이 머릿속을 스쳐 지나갔다. 마치 시골에서 직접 모내기를 하다가 최신 트랙터를 만난 기분이었다.

객체를 관계형 데이터베이스에 저장하려면 많은 시간과 코드를 소비해야 한다. 예를 들어 객체를 SQL로 변환하는 단순한 일부터, 객체의 상속 구조를 테이블에 저장하는 복잡한 일까지, 개발자는 객체와 데이터베이스 사이에서 무수한 매핑 코드와 SQL을 작성해야 한다. 자바 진영에서는 이런 문제를 해결하기 위해 JPA라는 표준 기술을 제공한다. 자바 ORM 표준 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결해준다.

그간 실무에 JPA를 도입하면서 처음에는 좌충우돌하기도 했지만, 개발 생산성과 유지보수가 확연히 좋아졌고, 남은 시간에 코드 품질과 테스트에 더 많은 시간을 쏟을 수 있었다. 그리고 JPA를 사용해본 동료들은 전으로 돌아가고 싶어하지 않았다. 하지만 JPA에 대한 국내 자료가 부족했고, 대부분이 원서여서 어려운 점이 많았다. 그래서 때가 되면 JPA에 대한 책을 쓰고 싶다고 어렴풋하게 생각했는데, 마침 『토비의 스프링 3』과 『토비의 스프링 3.1』을 저술하신 이일민 님께서 JPA에 관한 책 쓰기를 권유하셨다. 6개월 정도면 충분하겠지 생각하고 책을 쓰기로 했는데, 어느덧 시간이 화살처럼 빠르게 지나 2년이 지나버렸다.

이 책에서는 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다루는 데 주력했다. 또한, 스프링 프레임워크와 JPA를 함께 사용하는 방법을 설명하고, 스프링 데이터 JPA, QueryDSL 같은 혁신적인 오픈 소스를 활용해서 자바 웹 애플리케이션을 효과적으로 개발하는 방법을 설명했다.

돌이켜보니 보잘것없는 사람의 책을 기다리고 응원해주신 분들 덕분에 여기까지 온 것 같다. 진심으로 정말 큰 힘이 되었기에, 그 모든 분께 감사를 전한다. 이 책이 JPA를 시작하는 분들께 조금이나마 도움이 되길 바란다.

목차

  • 1장. JPA 소개
    1.1 SQL과 문제점
    1.1.1 반복, 반복 그리고 반복
    1.1.2 SQL에 의존적인 개발
    1.1.3 JPA와 문제 해결
    1.2 패러다임의 불일치
    1.2.1 상속
    1.2.2 연관관계
    1.2.3 객체 그래프 탐색
    1.2.4 비교
    1.2.5 정리
    1.3 JPA란 무엇일까?
    1.3.1 JPA 소개
    1.3.2 왜 JPA를 사용해야 하는가?
    1.4 정리

    2장. JPA 시작
    2.1 이클립스 설치와 프로젝트 불러오기
    2.2 H2 데이터베이스 설치
    2.3 라이브러리와 프로젝트 구조
    2.3.1 메이븐과 사용 라이브러리 관리
    2.4 객체 매핑 시작
    2.5 persistence.xml 설정
    2.5.1 데이터베이스 방언
    2.6 애플리케이션 개발
    2.6.1 엔티티 매니저 설정
    2.6.2 트랜잭션 관리
    2.6.3 비즈니스 로직
    2.6.4 JPQL
    2.7 정리

    3장. 영속성 관리
    3.1 엔티티 매니저 팩토리와 엔티티 매니저
    3.2 영속성 컨텍스트란?
    3.3 엔티티의 생명주기
    3.4 영속성 컨텍스트의 특징
    3.4.1 엔티티 조회
    3.4.2 엔티티 등록
    3.4.3 엔티티 수정
    3.4.4 엔티티 삭제
    3.5 플러시
    3.5.1 플러시 모드 옵션
    3.6 준영속
    3.6.1 엔티티를 준영속 상태로 전환: detach( )
    3.6.2 영속성 컨텍스트 초기화: clear( )
    3.6.3 영속성 컨텍스트 종료: close( )
    3.6.4 준영속 상태의 특징
    3.6.5 병합: merge( )
    3.7 정리

    4장. 엔티티 매핑
    4.1 @Entity
    4.2 @Table
    4.3 다양한 매핑 사용
    4.4 데이터베이스 스키마 자동 생성
    4.5 DDL 생성 기능
    4.6 기본 키 매핑
    4.6.1 기본 키 직접 할당 전략
    4.6.2 IDENTITY 전략
    4.6.3 SEQUENCE 전략
    4.6.4 TABLE 전략
    4.6.5 AUTO 전략
    4.6.6 기본 키 매핑 정리
    4.7 필드와 컬럼 매핑: 레퍼런스
    4.7.1 @Column
    4.7.2 @Enumerated
    4.7.3 @Temporal
    4.7.4 @Lob
    4.7.5 @Transient
    4.7.6 @Access
    4.8 정리

    실전 예제 1. 요구사항 분석과 기본 매핑
    __요구사항 분석
    __도메인 모델 분석
    __테이블 설계
    __엔티티 설계와 매핑
    __데이터 중심 설계의 문제점

    5장. 연관관계 매핑 기초
    5.1 단방향 연관관계
    5.1.1 순수한 객체 연관관계
    5.1.2 테이블 연관관계
    5.1.3 객체 관계 매핑
    5.1.4 @JoinColumn
    5.1.5 @ManyToOne
    5.2 연관관계 사용
    5.2.1 저장
    5.2.2 조회
    5.2.3 수정
    5.2.4 연관관계 제거
    5.2.5 연관된 엔티티 삭제
    5.3 양방향 연관관계
    5.3.1 양방향 연관관계 매핑
    5.3.2 일대다 컬렉션 조회
    5.4 연관관계의 주인
    5.4.1 양방향 매핑의 규칙: 연관관계의 주인
    5.4.2 연관관계의 주인은 외래 키가 있는 곳
    5.5 양방향 연관관계 저장
    5.6 양방향 연관관계의 주의점
    5.6.1 순수한 객체까지 고려한 양방향 연관관계
    5.6.2 연관관계 편의 메소드
    5.6.3 연관관계 편의 메소드 작성 시 주의사항
    5.7 정리

    실전 예제 2. 연관관계 매핑 시작
    __일대다, 다대일 연관관계 매핑
    __객체 그래프 탐색

    6장. 다양한 연관관계 매핑
    6.1 다대일
    6.1.1 다대일 단방향 [N:1]
    6.1.2 다대일 양방향 [N:1, 1:N]
    6.2 일대다
    6.2.1 일대다 단방향 [1:N]
    6.2.2 일대다 양방향 [1:N, N:1]
    6.3 일대일 [1:1]
    6.3.1 주 테이블에 외래 키
    6.3.2 대상 테이블에 외래 키
    6.4 다대다 [N:N]
    6.4.1 다대다: 단방향
    6.4.2 다대다: 양방향
    6.4.3 다대다: 매핑의 한계와 극복, 연결 엔티티 사용
    6.4.4 다대다: 새로운 기본 키 사용
    6.4.5 다대다 연관관계 정리
    6.5 정리

    실전 예제 3. 다양한 연관관계 매핑
    __일대일 매핑
    __다대다 매핑

    7장. 고급 매핑
    7.1 상속 관계 매핑
    7.1.1 조인 전략
    7.1.2 단일 테이블 전략
    7.1.3 구현 클래스마다 테이블 전략
    7.2 @MappedSuperclass
    7.3 복합 키와 식별 관계 매핑
    7.3.1 식별 관계 vs 비식별 관계
    7.3.2 복합 키: 비식별 관계 매핑
    7.3.3 복합 키: 식별 관계 매핑
    7.3.4 비식별 관계로 구현
    7.3.5 일대일 식별 관계
    7.3.6 식별, 비식별 관계의 장단점
    7.4 조인테이블
    7.4.1 일대일 조인테이블
    7.4.2 일대다 조인테이블
    7.4.3 다대일 조인테이블
    7.4.4 다대다 조인테이블
    7.5 엔티티 하나에 여러 테이블 매핑
    7.6 정리

    실전 예제 4. 상속 관계 매핑
    __상속 관계 매핑
    __@MappedSuperclass 매핑

    8장. 프록시와 연관관계 관리
    8.1 프록시
    8.1.1 프록시 기초
    8.1.2 프록시와 식별자
    8.1.3 프록시 확인
    8.2 즉시 로딩과 지연 로딩
    8.2.1 즉시 로딩
    8.2.2 지연 로딩
    8.2.3 즉시 로딩, 지연 로딩 정리
    8.3 지연 로딩 활용
    8.3.1 프록시와 컬렉션 래퍼
    8.3.2 JPA 기본 페치 전략
    8.3.3 컬렉션에 FetchType.EAGER 사용 시 주의점
    8.4 영속성 전이 - CASCADE
    8.4.1 영속성 전이: 저장
    8.4.2 영속성 전이: 삭제
    8.4.3 CASCADE의 종류
    8.5 고아 객체
    8.6 영속성 전이 + 고아 객체, 생명주기
    8.7 정리

    실전 예제 5. 연관관계 관리
    __글로벌 페치 전략 설정
    __영속성 전이 설정

    9장. 값 타입
    9.1 기본값 타입
    9.2 임베디드 타입(복합 값 타입)
    9.2.1 임베디드 타입과 테이블 매핑
    9.2.2 임베디드 타입과 연관관계
    9.2.3 @AttributeOverride: 속성 재정의
    9.2.4 임베디드 타입과 null
    9.3. 값 타입과 불변 객체
    9.3.1 값 타입 공유 참조
    9.3.2 값 타입 복사
    9.3.3 불변 객체
    9.4. 값 타입의 비교
    9.5. 값 타입 컬렉션
    9.5.1 값 타입 컬렉션 사용
    9.5.2 값 타입 컬렉션의 제약사항
    9.6 정리

    실전 예제 6. 값 타입 매핑
    __실전 예제 정리

    10장. 객체지향 쿼리 언어
    10.1 객체지향 쿼리 소개
    10.1.1 JPQL 소개
    10.1.2 Criteria 쿼리 소개
    10.1.3 QueryDSL 소개
    10.1.4 네이티브 SQL 소개
    10.1.5 JDBC 직접 사용, 마이바티스 같은 SQL 매퍼 프레임워크 사용
    10.2 JPQL
    10.2.1 기본 문법과 쿼리 API
    10.2.2 파라미터 바인딩
    10.2.3 프로젝션
    10.2.4 페이징 API
    10.2.5 집합과 정렬
    10.2.6 JPQL 조인
    10.2.7 페치 조인
    10.2.8 경로 표현식
    10.2.9 서브 쿼리
    10.2.10 조건식
    10.2.11 다형성 쿼리
    10.2.12 사용자 정의 함수 호출(JPA 2.1)
    10.2.13 기타 정리
    10.2.14 엔티티 직접 사용
    10.2.15 Named 쿼리: 정적 쿼리
    10.3 Criteria
    10.3.1 Criteria 기초
    10.3.2 Criteria 쿼리 생성
    10.3.3 조회
    10.3.4 집합
    10.3.5 정렬
    10.3.6 조인
    10.3.7 서브 쿼리
    10.3.8 IN 식
    10.3.9 CASE 식
    10.3.10 파라미터 정의
    10.3.11 네이티브 함수 호출
    10.3.12 동적 쿼리
    10.3.13 함수 정리
    10.3.14 Criteria 메타 모델 API
    10.4 QueryDSL
    10.4.1 QueryDSL 설정
    10.4.2 시작
    10.4.3 검색 조건 쿼리
    10.4.4 결과 조회
    10.4.5 페이징과 정렬
    10.4.6 그룹
    10.4.7 조인
    10.4.8 서브 쿼리
    10.4.9 프로젝션과 결과 반환
    10.4.10 수정, 삭제 배치 쿼리
    10.4.11 동적 쿼리
    10.4.12 메소드 위임
    10.4.13 QueryDSL 정리
    10.5 네이티브 SQL
    10.5.1 네이티브 SQL 사용
    10.5.2 Named 네이티브 SQL
    10.5.3 네이티브 SQL XML 에 정의
    10.5.4 네이티브 SQL 정리
    10.5.5 스토어드 프로시저(JPA 2.1)
    10.6 객체지향 쿼리 심화
    10.6.1 벌크 연산
    10.6.2 영속성 컨텍스트와 JPQL
    10.6.3 JPQL과 플러시 모드
    10.7 정리

    11장. 웹 애플리케이션 제작
    11.1 프로젝트 환경설정
    11.1.1 프로젝트 구조
    11.1.2 메이븐과 사용 라이브러리 관리
    11.1.3 스프링 프레임워크 설정
    11.2 도메인 모델과 테이블 설계
    11.2.1 요구사항 분석
    11.2.2 도메인 모델 설계
    11.2.3 테이블 설계
    11.2.4 연관관계 정리
    11.2.5 엔티티 클래스
    11.3 애플리케이션 구현
    11.3.1 개발 방법
    11.3.2 회원 기능
    11.3.3 상품 기능
    11.3.4 주문 기능
    11.3.5 웹 계층 구현
    11.4 정리

    12장. 스프링 데이터 JPA
    12.1 스프링 데이터 JPA 소개
    12.1.1 스프링 데이터 프로젝트
    12.2 스프링 데이터 JPA 설정
    12.3 공통 인터페이스 기능
    12.4 쿼리 메소드 기능
    12.4.1 메소드 이름으로 쿼리 생성
    12.4.2 JPA NamedQuery
    12.4.3 @Query, 리파지토리 메소드에 쿼리 정의
    12.4.4 파라미터 바인딩
    12.4.5 벌크성 수정 쿼리
    12.4.6 반환 타입
    12.4.7 페이징과 정렬
    12.4.8 힌트
    12.4.9 Lock
    12.5 Specifications(명세)
    12.6 사용자 정의 리파지토리 구현
    12.7 Web 확장
    12.7.1 설정
    12.7.2 도메인 클래스 컨버터 기능
    12.7.3 페이징과 정렬 기능
    12.8 스프링 데이터 JPA가 사용하는 구현체
    12.9 JPA 샵에 적용
    12.9.1 환경 설정
    12.9.2 리파지토리 리팩토링
    12.9.3 명세 적용
    12.10 스프링 데이터 JPA와 QueryDSL 통합
    12.10.1 QueryDslPredicateExecutor 사용
    12.10.3 QueryDslRepositorySupport 사용
    12.11 정리

    13장. 웹 애플리케이션과 영속성 관리
    13.1 트랜잭션 범위의 영속성 컨텍스트
    13.1.1 스프링 컨테이너의 기본 전략
    13.2 준영속 상태와 지연 로딩
    13.2.1 글로벌 페치 전략 수정
    13.2.2 JPQL 페치 조인
    13.2.3 강제로 초기화
    13.2.4 FACADE 계층 추가
    13.2.5 준영속 상태와 지연 로딩의 문제점
    13.3 OSIV
    13.3.1 과거 OSIV: 요청 당 트랜잭션
    13.3.2 스프링 OSIV: 비즈니스 계층 트랜잭션
    13.3.3 OSIV 정리
    13.4 너무 엄격한 계층
    13.5 정리

    14장. 컬렉션과 부가 기능
    14.1 컬렉션
    14.1.1 JPA와 컬렉션
    14.1.2 Collection, List
    14.1.3 Set
    14.1.4 List + @OrderColumn
    14.1.5 @OrderBy
    14.2 @Converter
    14.2.1 글로벌 설정
    14.3 리스너
    14.3.1 이벤트 종류
    14.3.2 이벤트 적용 위치
    14.4 엔티티 그래프
    14.4.1 Named 엔티티 그래프
    14.4.2 em.find( )에서 엔티티 그래프 사용
    14.4.3 subgraph
    14.4.4 JPQL에서 엔티티 그래프 사용
    14.4.5 동적 엔티티 그래프
    14.4.6 엔티티 그래프 정리
    14.5 정리

    15장. 고급 주제와 성능 최적화
    15.1 예외 처리
    15.1.1 JPA 표준 예외 정리
    15.1.2 스프링 프레임워크의 JPA 예외 변환
    15.1.3 스프링 프레임워크에 JPA 예외 변환기 적용
    15.1.4 트랜잭션 롤백 시 주의사항
    15.2 엔티티 비교
    15.2.1 영속성 컨텍스트가 같을 때 엔티티 비교
    15.2.2 영속성 컨텍스트가 다를 때 엔티티 비교
    15.3 프록시 심화 주제
    15.3.1 영속성 컨텍스트와 프록시
    15.3.2 프록시 타입 비교
    15.3.3 프록시 동등성 비교
    15.3.4 상속관계와 프록시
    15.4 성능 최적화
    15.4.1 N+1 문제
    15.4.2 읽기 전용 쿼리의 성능 최적화
    15.4.3 배치 처리
    15.4.4 SQL 쿼리 힌트 사용
    15.4.5 트랜잭션을 지원하는 쓰기 지연과 성능 최적화
    15.5 정리

    16장. 트랜잭션과 락, 2차 캐시
    16.1 트랜잭션과 락
    16.1.1 트랜잭션과 격리 수준
    16.1.2 낙관적 락과 비관적 락 기초
    16.1.3 @Version
    16.1.4 JPA 락 사용
    16.1.5 JPA 낙관적 락
    16.1.6 JPA 비관적 락
    16.1.7 비관적 락과 타임아웃
    16.2 2차 캐시
    16.2.1 1차 캐시와 2차 캐시
    16.2.2 JPA 2차 캐시 기능
    16.2.3 하이버네이트와 EHCACHE 적용
    16.3 정리

추천사

  • JPA는 데이터베이스 기술이라기보다 애플리케이션의 데이터를 객체지향 관점으로 바라보고 다룰 수 있게 해주는 객체지향 기술입니다. 객체지향의 근본 원리를 충실히 따르면 생산성과 품질, 유지보수성 모두를 만족시킬 수 있는 효과적인 개발이 가능하다는 것은 이미 스프링 프레임워크가 잘 보여주었습니다. JPA는 전 세계 스프링 개발자들이 가장 많이 사용하는 데이터 처리 기술이기도 합니다. 그런데 JPA를 이용해 객체 관점에서 복잡한 문제를 다루는 데만 집중하다 보면 자칫 이면에서 일어나는 데이터베이스 작업의 최적화를 놓칠 수도 있습니다. 데이터베이스는 기업의 가장 중요한 IT 자산이고, 확장에 비용이 많이 드는 리소스이기 때문에 항상 최적화를 염두에 둬야 합니다. 이 때문에 전통적인 데이터베이스 기술에서 JPA로 전환하기가 두려운 분들도 계신 듯합니다. 그래서 JPA를 실무에 적용하려면 데이터를 객체지향적으로 다루는 방법과 함께 데이터베이스 성능을 고려한 설정 및 개발 방법을 반드시 함께 익혀야 합니다. 이 책은 JPA를 이용한 객체지향 개발과 데이터베이스 최적화 전략, 두 가지를 충실하게 그리고 균형 있게 다루는 책입니다. JPA 도입을 아직 고민하고 계시거나 JPA를 이용해 개발하고 있지만 최선의 개발 방법이 궁금하신 분이라면 꼭 읽어보시기를 추천해드립니다.

  • 현재 제가 일하는 쿠팡은 우리나라의 대표적인 전자상거래 업체로서, 연간 거래액이 수조 원에 달하며, 한국은 물론 미국, 중국 등지에 분포한 수백 명이 넘는 프로그래머들이 함께 개발 업무를 진행하고 있습니다. 쿠팡을 지탱하는 전자상거래 시스템의 핵심 중추는 자바와 스프링 프레임워크, JPA/하이버네이트로 이루어져 있습니다.
    그간, JPA로 개발해본 적이 없는 많은 개발자들이 회사에 처음 입사해 여러 어려운 상황에 놓이는 모습을 지켜봐야 하는 안타까운 상황도 적지 않았던 데다가, 마땅한 국내 참고 자료도 없어서 매우 고심하던 차에 이렇게 좋은 책이 출간되어 매우 기쁩니다. 우선, 출간에 앞서서 책을 먼저 읽어볼 수 있는 소중한 기회를 가지게 된 것에 감사드립니다.
    이 책에서는 JPA에 관한 내용을 정말 쉽게 설명하면서도 중요한 핵심 사항들을 모두 잘 전달하고 있어 JPA를 처음 접하는 사람들에게도 JPA에 대한 이해와 코드 품질 향상에 큰 도움이 되리라는 점에서, 읽는 내내 반가운 마음을 금치 못했습니다. JPA/하이버네이트는 이미 우리나라를 제외한 다른 국가에서는 보편적으로 사용되는 기술로서, SQL 쿼리를 직접 작성할 때보다 월등한 개발 속도와 유지보수성을 누릴 수 있습니다. 해외뿐만 아니라 국내에서도 이미 성공적으로 실무에서 사용 중인 회사가 있다는 사실을 아신다면, 그동안 JPA 사용을 망설인 분들이더라도 이 책을 읽고 차근차근 실습해본 후에 충분히 자신감을 가지고 문제없이 도입하실 수 있으리라 믿습니다.

  • 다양한 오픈소스 소프트웨어를 기반으로 표준화된 아키텍처를 제공하는 전자정부 표준프레임워크에는 몇 가지 데이터 액세스 기술을 제공합니다. 공공정보화 분야에서 가장 일반적으로 사용되는 아이바티스(또는 마이바티스)뿐만 아니라 ORM의 기능을 제공하는 하이버네이트, ORM에 대한 표준을 제시하는 JPA, 다양한 스토리지(storage) 기술로의 확장을 제시하는 스프링 데이터 JPA 및 스프링 데이터 몽고DB까지 다양한 기술이 제공되고 있습니다. 그러나 전자정부 표준프레임워크 활용에 있어서, 유독 아이바티스/마이바티스에 대한 도입률이 JPA에 비해 굉장히 높은 편입니다. 평소 JPA의 편리성이나 효율성 때문에 다양한 프로젝트에 JPA를 적극 활용하고 있는 제 개인적인 입장에서는 아쉬움이 다소 많았습니다. 국내의 경우는 정보공학방법론의 영향을 받은 개발방법론에 의해 데이터베이스 모델링이 중요시되고, 이로 인하여 모델링과 개발과의 불일치가 발생하는 등의 문제로 인하는 것으로 보입니다. 저자가 이야기하는 ‘패러다임의 불일치’도 이와 일맥상통합니다. 그런 의미에서 이 책은 JPA에 대한 기초 및 여러 분야에 대한 깊이 있는 내용뿐만 아니라 도메인 모델 설계 등의 실전 예제들을 통해 실질적인 JPA 적용의 가이드를 제시합니다. 아울러 리포지토리 인터페이스 모델 기반의 스프링 데이터 JPA, 타입안정성을 보장을 위한 QueryDSL 등의 최신 기술과 캐시 및 성능 최적화 등의 다양한 주제를 다룸으로써 엔터프라이즈 레벨의 응용프로그램 개발에 실질적인 도움이 될 것으로 기대합니다.

  • JPA를 좋아하는 이유는 개발 시간 때문입니다. JPA를 조금만 학습해도 많은 단순 작업을 줄여 개발 시간을 단축할 수 있습니다. 게다가 JPA를 설계에 녹여 넣으면 복잡한 쿼리 대신 객체지향적으로 잘 설계된 도메인 코드를 얻을 수도 있습니다. JPA를 도입해서 이런 효과를 얻고 싶은 분이라면 이 책으로 학습하기를 적극 추천합니다.
    JPA의 기초 설정부터 성능 최적화에 이르기까지 책에 녹아 있는 저자의 풍부한 경험을 자신의 것으로 만들 수 있을 것입니다.

  • 대략 2005년 정도였던 것으로 기억합니다. 회사에서 동료들과 저녁 회식을 하고는 이런저런 이야기를 나누다가 화제가 ORM으로 향했습니다. "왜 ORM은 이렇게 보급이 더딜까?" 객체 모델링이 널리 보급되지 않았고, 사람들은 SQL에 지나치게 의존적이고, 형식적으로는 다단계 아키텍처를 사용하지만 사실은 여전히 클라이언트-서버 방식으로 개발하고, ORM이 성능 조직에서 모난 돌 취급 받기를 싫어한다는 등의 의견이 나왔지만, 모든 것을 떠나서 적절한 교재가 없다는 사실이 가장 큰 걸림돌이라는 결론이었습니다. 당시 3.0 버전이 출시된 하이버네이트는 기술도 충분히 성숙했고 문서도 충실했으며 출간된 책도 다양했지만 우선은 한글이 아닐 뿐 아니라 사람들의 눈높이에 맞지 않았습니다. 교재의 수는 적지 않았지만 적절한 교재가 없었던 것이지요. 그로부터 10여 년이 흘러, 어느덧 2015년입니다. 그 사이 새로운 언어와 플랫폼이 뜨고 졌으며, NoSQL과 클라우드의 광풍도 불었고, 스마트폰을 통해 N스크린의 시대가 열렸습니다. 하지만 우리가 애플리케이션을 개발하는 방식은 여전히 그대로입니다. 아직도 개발자 커뮤니티에는 “ORM을 쓰는 곳이 있나요?”라는 질문이 올라옵니다. 개발 현장마다 생산성과 소프트웨어 품질을 향상시켜야 한다는 목소리는 높지만 이러한 문제들을 대폭 개선시킬 수 있는 ORM에 대해서는 의심만 쌓여 갑니다. 네모 바퀴 수레를 미느라 힘들어하면서도 둥근 바퀴를 쓰라고 주면 정작 바퀴를 갈 시간이 없다고 거부하는 형국입니다. ORM은 난해한 기술도 복잡한 기술도 아닙니다. 도입하기엔 미성숙한 최신 기술은 더더욱 아닙니다. ORM이 어려워 보이는 것은 그저 낯설기 때문일 뿐입니다.

    저자 김영한 님은 JPA 전문가로서 저희 팀을 비롯한 여러 곳에서 JPA를 도입하는 데 도움을 주었고 기회가 있을 때마다 강의를 통해 JPA를 소개하고 자신의 깊은 지식과 경험을 공유했습니다. 김영한 님의 강의를 들어 본 사람이라면 단순히 JPA 문서 몇 번 읽은 후 얄팍한 지식을 설파하는 얼치기 전문가가 결코 아니라는 사실을 모두 잘 아실 겁니다.
    이제 ‘적절한’ JPA 책이 우리 앞에 놓였습니다. 우리가 네모난 바퀴를 버리고 둥근 바퀴로 갈아 낄지 말지 결정해야 할 차례입니다. 약간의 용기만으로 충분합니다.

  • 객체지향 패러다임의 핵심은 시스템을 구성하는 객체들에게 적절한 책임을 할당하는 것입니다. 여기에서 객체의 책임이란 객체가 외부에 제공하는 ‘행동’과 밀접한 관련이 있습니다. 따라서 객체지향의 세계는 ‘행동’이 주가 되는 세계입니다. 객체의 행동 저편에는 ‘데이터’가 중심이 되는 관계형 데이터베이스라는 또 다른 세계가 존재합니다. 최근 몇 년 동안 NoSQL이 세간의 주목을 끌었지만 여전히 데이터베이스 세계의 헤게모니를 쥐고 있는 것은 관계형 데이터베이스입니다. 문제는 행동을 중심에 놓는 객체지향과 데이터를 중심에 놓는 관계형 데이터베이스 사이에는 좁히기 어려운 거리가 있다는 점입니다. 사실 유연하고 확장 가능한 객체지향 설계를 향해 나아갈수록 객체 구조와 데이터 모델 사이의 거리는 점점 더 멀어지게 됩니다. 결국 객체와 데이터 사이의 복잡한 매핑에 지친 대부분의 개발자들은 객체지향 설계의 길을 포기한 채 데이터 종속적인 애플리케이션이라는 불행한 결말에 이르고 맙니다. JPA는 이와 같은 불행한 사태를 막고 객체 관계 임피던스 불일치 문제를 해결하기 위해 자바 진영에서 발표한 ORM 표준입니다. JPA와 관련된 나쁜 소식과 좋은 소식이 하나씩 있습니다. 나쁜 소식은 JPA가 가진 강력함을 충분히 누리기 위해서는 객체지향과 데이터베이스 양쪽 모두를 잘 이해하고 서로 간의 장단점을 정확하게 파악하고 있어야 한다는 것입니다. 따라서 JPA를 학습하고 이해하기 위해 필요한 사전 지식을 익히는 과정이 여러분에게 꽤나 부담스럽게 느껴질 수도 있습니다. 좋은 소식은 지금 이 책이 JPA를 배우고 익히는 데 수반되는 어려움을 많은 부분 해결해줄 것이라는 점입니다. 이 책의 가장 큰 장점은 단순히 JPA의 API를 나열하는 데 그치지 않고 JPA의 기반을 이루는 다양한 객체지향 이론과 관계형 데이터베이스의 개념을 폭넓게 설명한다는 사실입니다. 따라서 이 책을 읽고 나면 JPA뿐만 아니라 객체지향과 관계형 데이터베이스에 관해서도 좀 더 깊게 이해할 수 있게 될 것입니다. 이 책의 또 다른 미덕은 과한 욕심을 버리고 핵심에 집중했다는 것입니다. 저자는 실무에서 거의 사용되지 않는 부분은 과감하게 생략하고 애플리케이션을 개발하는 데 자주 사용되는 핵심적인 부분을 다루는 데 집중하고 있습니다. 또한 책의 후반부에서는 JPA와 스프링 프레임워크를 함께 조합해서 웹 애플리케이션을 개발하는 방법까지 다룹니다. 이 내용을 읽고 나면 여러분 자신만의 웹 애플리케이션을 구현하기 위해 JPA를 사용하는 데 큰 어려움이 없을 것입니다. 처음 JPA를 학습하게 되면 반드시 넘어야 하는 몇 번의 고비가 존재합니다. 그리고 많은 분들이 이 고비를 넘기지 못하고 JPA 기술을 포기하는 것을 자주 보아왔습니다. 그러나 이제는 그런 걱정을 할 필요가 없을 것 같습니다. 이 책이 아주 쉽고 편안하게 고비를 넘길 수 있도록 도와줄 것이기 때문입니다.
    관계형 데이터베이스라는 벽에 막혀 객체지향 패러다임의 장점을 포기해야 했던 수많은 개발자들에게, 그리고 JPA는 어렵다는 막연한 두려움을 가지고 계신 모든 분들께 이 책을 권합니다. 이 책을 읽는 여러분 모두 객체지향 설계와 데이터 모델링에 대한 더 넓은 식견을 갖추게 될 것이라고 확신합니다.

출판사 서평

★ 이 책에서 다루는 내용 ★

■ JPA 기초 이론과 핵심 원리
■ JPA로 도메인 모델을 설계하는 과정을 예제 중심으로 설명
■ 다양한 객체 지향 쿼리 언어 설명
■ JPA와 스프링 프레임워크를 함께 사용해서 웹 애플리케이션을 개발하는 방법
■ 스프링 데이터 JPA, QueryDSL 소개 및 활용
■ 실무에서 JPA를 사용할 때 성능을 최적화하는 다양한 방법

★ 이 책의 대상 독자 ★

이 책은 JPA를 사용해서 엔터프라이즈 애플리케이션을 개발하려는 모든 자바 개발자를 대상으로 한다. 이 책의 내용을 이해하려면 자바 언어와 JDBC를 사용한 데이터베이스 프로그래밍, 그리고 객체지향 프로그래밍과 관계형 데이터베이스에 대해 어느 정도 알고 있어야 한다. 추가로 3부는 웹 개발과 스프링 프레임워크에 대한 기초 지식이 필요하며 JUnit을 다룰 수 있어야 한다. 그리고 예제 코드를 실행하려면 메이븐에 대해서도 약간의 지식이 필요하다.

★ 이 책의 구성 ★

JPA는 크게 객체와 테이블을 어떻게 매핑해야 하는지에 관한 설계 부분과 설계한 모델을 실제 사용하는 부분으로 나눌 수 있다. 책의 앞부분에서는 기초 이론과 설계 방법을 학습하고 뒷부분에서는 학습한 이론을 바탕으로 JPA를 활용해서 실제 웹 애플리케이션을 개발한다.

이 책은 크게 네 부분으로 나뉘어 있다.

1장에서 9장은 이론 편이다. 객체와 테이블을 매핑하는 방법과 JPA의 핵심 기능들을 알아본다. 4장부터 9장까지는 각 장의 마지막에 점진적으로 도메인 모델을 설계해 나가는 실전 예제가 있어서 학습한 내용을 실제로 적용해볼 수 있게 했다.
10장은 객체지향 쿼리 언어에 대한 내용이다. JPA가 제공하는 객체지향 쿼리 언어인 JPQL(Java Persistence Query Language)부터 직접 SQL을 작성하는 네이티브 SQL까지 알아본다.
11장과 12장은 실무에서 JPA를 사용하기 위한 활용편이다. 스프링 프레임워크와 JPA를 사용해서 어떻게 웹 애플리케이션을 개발하는지 학습하고 스프링 데이터 JPA와 QueryDSL이라는 혁신적인 오픈소스도 사용해본다.
13장에서 16장은 트랜잭션과 락, 캐시, 성능 최적화 등 JPA의 다양한 고급 주제들을 다룬다.

★ 온라인 강의 ★

지금까지 다양한 실무 프로젝트에 JPA를 도입했다. 작게는 단순한 웹 서비스부터 크게는 조 단위의 거래 금액을 처리하는 주문, 결제, 정산 시스템까지 JPA로 직접 설계하고 개발했다. JPA를 처음 실무에 도입할 때는 좌충우돌 했지만, 개발 생산성과 유지보수가 확연히 좋아졌고 코드 품질과 테스트에 더 많은 시간을 할애할 수 있었다. 무엇보다 JPA를 사용해본 동료들은 이전으로 돌아가고 싶어하지 않아 했다. 하지만 JPA에 관한 국내 자료가 부족해 어려움이 많았다. 그래서 2015년 직접 이 책을 썼다.
책과 함께 볼 수 있는 유료 온라인 강의를 제공한다. 책을 출간한 뒤 네이버, 카카오와 같은 인터넷 비즈니스 회사부터 우아한형제들, 11번가 등 e커머스 회사까지 JPA를 사용 중이거나 도입하려는 많은 회사에서 강연했다. 책에서 이해하기 어렵던 부분을 강의를 통해 쉽게 이해했다는 개발자들의 이야기를 듣고 온라인 강의를 개설했다. 참고로 강의는 최신 버전의 스프링 부트와 JPA를 사용하고, 코드로 쉽게 따라할 수 있다. 그리고 실무 노하우를 전달하는 데 더 많은 초점을 맞췄다.
여러분도 실무에서 JPA를 자신 있게 활용할 수 있기를 바란다.

기본정보

상품정보
ISBN 9788960777330
발행(출시)일자 2015년 07월 28일
쪽수 734쪽
크기
188 * 250 * 35 mm / 1261 g
총권수 1권
시리즈명
에이콘 오픈 소스 프로그래밍 시리즈

Klover

Klover 리뷰 안내
교보를 애용해 주시는 고객님들이 남겨주신 평점과 감상을 바탕으로, 다양한 정보를 전달하는 교보문고의 리뷰 서비스입니다.
1.리워드 안내
구매 후 90일 이내에 평점과 10자 이상의 리뷰 작성 시 e교환권 200원을 적립해 드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다.
리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 리뷰 종류별로 구매한 아이디당 한 상품에 최초 1회 작성 건들에 대해서만 제공됩니다.
판매가 1,000원 미만 도서의 경우 리워드 지급 대상에서 제외됩니다.
한달 후 리뷰
구매 후 30일~ 120일 이내에 작성된 두 번째 구매리뷰에 대해 한 달 후 리뷰로 인지하고 e교환권 100원을 추가 제공합니다.

* 강연, 공연, 여행, 동영상, 사은품, 기프트카드 상품은 지급 제외
2.운영 원칙 안내
Klover 리뷰를 통한 리뷰를 작성해 주셔서 감사합니다. 자유로운 의사 표현의 공간인 만큼 타인에 대한 배려를 부탁합니다.
일부 타인의 권리를 침해하거나 불편을 끼치는 것을 방지하기 위해 아래에 해당하는 Klover 리뷰는 별도의 통보 없이 삭제될 수 있습니다.
  • 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
  • 도서와 무관한 내용의 리뷰
  • 인신공격이나 욕설, 비속어, 혐오발언이 개재된 리뷰
  • 의성어나 의태어 등 내용의 의미가 없는 리뷰

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

구매 후 리뷰 작성 시, 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만 원 사용
더보기

구매방법 별 배송안내

지역별 도착 예정일

수도권 지역

배송 일정 안내 테이블로 결제 완료 시간, 도착예정일 결제 완료 시간 컬럼의 하위로 평일 0시 ~ 12시 토요일 0시 ~ 11시 평일 12시 ~ 22시 평일 12시 ~ 24시 토요일 11시 ~ 21시 을(를) 나타낸 표입니다.
결제 완료 시간 도착예정일
평일 0시 ~ 12시

토요일 0시 ~ 11시
당일배송 오늘

당일배송 오늘
평일 12시 ~ 22시

평일 12시 ~ 24시

토요일 11시 ~ 21시
새벽배송 내일 07시 이전

내일

일요배송 일요일

수도권 외 (천안, 대전, 울산, 부산, 대구, 창원)

배송 일정 안내 테이블로 결제 완료 시간, 도착예정일 결제 완료 시간 컬럼의 하위로 월~토 0시 ~ 11시 30분 을(를) 나타낸 표입니다.
결제 완료 시간 도착예정일
월~토 0시 ~ 11시 30분
당일배송 오늘

배송 유의사항

  • 새벽배송과 일요배송은 수도권 일부 지역을 대상으로 합니다. 상품 상세페이지에서 도착 예정일을 확인해 주세요.
  • 수도권 외 지역에서 선물포장하기 또는 사은품을 포함하여 주문할 경우 당일배송 불가합니다.
  • 무통장입금 주문 후 당일 배송 가능 시간 이후 입금된 경우 당일 배송 불가합니다.
  • 새벽배송의 경우 공동 현관 출입 번호가 누락 되었거나 틀릴 경우 요청하신 방법으로 출입이 어려워, 부득이하게 공동 현관 또는 경비실 앞에 배송 될 수 있습니다.
  • 학교, 관공서, 회사 등 출입 제한 시간이 있는 곳은 당일배송, 새벽배송, 일요배송이 제공되지 않을 수 있습니다.
  • 공휴일과 겹친 토요일, 일요일은 일요일 배송에서 제외됩니다. 일요배송은 한정 수량에 한해 제공됩니다. 수량 초과 시 일반배송으로 발송되니 주문 시 도착 예정일을 확인해 주세요.
  • 주문 후 배송지 변경 시 변경된 배송지에 따라 익일 배송될 수 있습니다.
  • 수도권 외 지역의 경우 효율적인 배송을 위해 각 지역 매장에서 택배를 발송하므로, 주문 시의 부록과 상이할 수 있습니다.
  • 각 지역 매장에서 재고 부족 시 재고 확보를 위해 당일 배송이 불가할 수 있습니다.
  • 기상악화로 인한 도로 사정으로 일부 지역의 배송 지연이 발생될 수 있습니다.
  • 출고 예정일이 5일 이상인 상품의 경우(결제일로부터 7일 동안 미입고), 출판사 / 유통사 사정으로 품/절판 되어 구입이 어려울 수 있습니다. 이 경우 SMS, 메일로 알려드립니다.
  • 분철상품 주문 시 분철 작업으로 인해 기존 도착 예정일에 2일 정도 추가되며, 당일 배송, 해외 배송이 불가합니다.
  • 해외주문도서는 해외 거래처 사정에 의해 품절/지연될 수 있습니다.
  • 스페셜오더 도서나 일서 해외 주문 도서와 함께 주문 시 배송일이 이에 맞추어 지연되오니, 이점 유의해 주시기 바랍니다.

바로드림존에서 받기

  1. 1
    주문하기
    매장 선택 후 바로드림으로 주문해주세요.
  2. 2
    매장 방문하기
    도서가 준비되면 휴대폰으로 알림을 보내드려요.
    매장에 방문해주세요.
  3. 3
    상품 받기
    바로드림존에서 바코드를 제시하고 상품을 받아보세요.

이용 안내

  • 바로드림은 전국 교보문고 매장 및 교내서점에서 이용 가능합니다.
  • 잡지 및 일부 도서는 바로드림 이용이 불가합니다.
  • 각 매장 운영시간에 따라 바로드림 이용 시간이 달라질 수 있습니다.
  • '픽업박스에서 찾기' 주문 시 도서 5권 이하의 경우에만 주문 가능합니다.

수령 안내

  • 안내되는 재고수량은 서비스 운영 목적에 따라 상이할 수 있으므로 해당 매장에 문의해주시기 바랍니다.
  • 바로드림 주문 후 재고가 실시간 변동되어, 수령 예상 시간에 수령이 어려울 수 있습니다.
  • 픽업박스 보관함 부족 또는 픽업박스에 보관이 불가한 사이즈일 경우 바로드림존에 보관합니다.

취소/교환/반품 안내

  • 주문 후 7일간 찾아가지 않으시면, 자동으로 결제가 취소됩니다.
  • '픽업박스에서 찾기' 주문의 경우 보관완료 알림 이후 3일이 경과 되면 자동으로 주문이 취소 됩니다.
  • 취소된 금액은 결제수단의 승인취소 및 예치금으로 전환됩니다.
  • 교환/반품은 수령하신 매장에서만 가능합니다.

사은품 관련 안내

  • 바로드림 서비스는 일부 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회 결제하기"를 선택 한 경우, 부분취소/반품 시 예치금으로 환원됩니다.

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

  • 도서 소득공제 불가 안내

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

알림 신청

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

자바 ORM 표준 JPA 프로그래밍
스프링 데이터 예제 프로젝트로 배우는 전자정부 표준 데이터베이스 프레임워크
신고

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

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

판형알림

  • 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원 열공 혜택!
자세히 보기

해외주문양서 배송지연 안내

현재 미국 현지 눈폭풍으로 인해
해외 거래처 출고가 지연되고 있습니다.

해외주문양서 주문 시
예상 출고일보다 배송기간이 더 소요될 수 있으니
고객님의 너그러운 양해 부탁드립니다.

감사합니다.