스프링 데이터 JPA

JPA(Java Persistence API)를 보다 쉽게 사용할 수 있도록 여러 기능을 제공하는 스프링 데이터 JPA에 대해 학습합니다.
왜 JPA를 학습해야 하는가?
  • 도메인 주도 개발이 가능합니다.
  • 애플리케이션의 코드가 SQL 데이터베이스 관련 코드에 잠식 당하는 것을 방지하고 도메인 기반의 프로그래밍으로 비즈니스 로직을 구현하는데 집중할 수 있습니다.
  • 그리고 개발 생산성에 좋으며, 데이터베이스에 독립적인 프로그래밍이 가능하고, 타입 세이프한 쿼리 작성 그리고 Persistent Context가 제공하는 캐시 기능으로 성능 최적화까지 가능합니다.

이러한 여러 장점을 지닌 JPA의 한가지 단점. 높은 학습 비용. 이번 강좌가 그 학습 비용을 조금이라도 낮추는데 도움이 되길 바랍니다.

이번 강좌는 먼저 ORM(Object-Relational Mapping)이 해결하려는 문제 즉, 객체(Object)와 관계형(Relational) 데이터베이스의 개념적인 불일치에 대해 학습합니다.

다음으로 ORM의 구현체인 JPA와 하이버네이트의 중요한 특징을 학습합니다. 특히, Fetching 전략과 엔티티의 라이프사이클을 이해해야 성능을 고려하며 JPA 프로그래밍을 할 수 있습니다.

이어서, 스프링 데이터 JPA의 마술과도 같은 빈 생성 방법도 살펴봅니다. 핵심 개념 원리에 대한 학습을 마치고 본격적으로 스프링 데이터 JPA의 다양한 활용 방법을 살펴봅니다. 기본으로 제공하는 기능부터 살펴보고 다양한 커스터마아징 및 여러 기술 연동 방법을 학습합니다.

  학습 목표

ORM(Object-Relation Mapping)에 대해 이해합니다. JPA를 사용할 때 반드시 알아야 하는 특징을 이해합니다. 스프링 데이터 JPA의 구동 원리를 이해합니다. 스프링 데이터 JPA를 사용하여 다양한 방법으로 Repository를 구현할 수 있습니다. 스프링 데이터 JPA를 사용하여 다양한 방법으로 쿼리를 만들고 실행할 수 있습니다.

도움이 되는 분들

  • JPA 또는 하이버네이트 프로그래밍을 시작하는 학생 또는 개발자.
  • ORM과 JPA 그리고 스프링 데이터 JPA의 원리를 이해하고 싶은 학생 또는 개발자.
  • 스프링 데이터 JPA를 처음 사용하거나 혹은 더 잘 활용하고 싶은 학생 또는 개발자.

참고 사항

  • 자바 프로그래밍에 경험이 있다고 가정합니다.
  • JDK, 데이터베이스, IDE, 빌드툴 설치에 관한 내용을 다루지 않습니다.
  • 본 강좌는 메이븐, JDK 1.8, 도커, PostgreSQL, H2, 인텔리J, 스프링 부트를 사용합니다.

  지식공유자 소개

백기선
현재 마이크로소프트에서 개발자로 재직중입니다. 이전에 아마존과 네이버에서 일을 했었습니다. 스프링 프레임워크와 하이버네이트(JPA)를 사용해서 개발하는 것을 좋아하며 온라인에서 강좌를 만들거나 유투브에 코딩 관련 동영상을 올리며 학습하고 또 공유하고 있습니다.

지식공유자 소개

현재 미국 마이크로소프트에서 시니어 소프트웨어 엔지니어로 일하고 있습니다.

유튜브 '백기선' 채널에서 개발자 고민 상담 및 프로그래머에게 유용한 지식을 공유하고 있습니다.

자바, 스프링을 사용해서 개발하는 것을 좋아하지만 딱히 기술을 가리지는 않습니다.

교육과정

모두 펼치기 44 강의 8시간 53분
섹션 1. 핵심 개념 이해
12 강의 183 : 00
관계형 데이터베이스와 자바
20 : 00
ORM 개요
14 : 00
ORM 패러다임 불일치
16 : 00
JPA 프로그래밍 1. 프로젝트 세팅
21 : 00
JPA 프로그래밍 2. 엔티티 타입 맵핑
22 : 00
JPA 프로그래밍 3. Value 타입 맵핑
07 : 00
JPA 프로그래밍 4. 관계 맵핑
18 : 00
JPA 프로그래밍 5. 엔티티 상태와 Cascade
19 : 00
JPA 프로그래밍 6. Fetch
10 : 00
JPA 프로그래밍 7. 쿼리
12 : 00
스프링 데이터 JPA 원리
16 : 00
핵심 개념 마무리
08 : 00
섹션 2. 스프링 데이터 JPA 활용
29 강의 344 : 00
스프링 데이터 JPA 활용 파트 소개
03 : 00
스프링 데이터 Common 1. 리포지토리
23 : 00
스프링 데이터 Common 2. 인터페이스 정의하기
08 : 00
스프링 데이터 Common 3. Null 처리
13 : 00
스프링 데이터 Common 4. 쿼리 만들기
21 : 00
스프링 데이터 Common 4. 쿼리 만들기 실습
17 : 00
스프링 데이터 Common 6. 비동기 쿼리 메소드
19 : 00
스프링 데이터 Common 7. 커스텀 리포지토리 만들기
22 : 00
스프링 데이터 Common 8. 기본 리포지토리 커스터마이징
10 : 00
스프링 데이터 Common 9. 도메인 이벤트
16 : 00
스프링 데이터 Common 10. QueryDSL 연동
25 : 00
스프링 데이터 Common 11. 웹 기능 1부 소개
07 : 00
스프링 데이터 Common 12. 웹 기능 2부 DomainClassConverter
15 : 00
스프링 데이터 Common 13. 웹 기능 3부 Pageable과 Sort
07 : 00
스프링 데이터 Common 14. 웹 기능 4부 HATEOAS
07 : 00
스프링 데이터 Common 15. 정리
04 : 00
스프링 데이터 JPA 1. JpaRepository
10 : 00
스프링 데이터 JPA 2. JpaRepository.save() 메소드
13 : 00
스프링 데이터 JPA 3. JPA 쿼리 메소드
07 : 00
스프링 데이터 JPA 4. Sort
03 : 00
스프링 데이터 JPA 5. Named Parameter와 SpEL
03 : 00
스프링 데이터 JPA 6. Update 쿼리
09 : 00
스프링 데이터 JPA 7. EntityGraph
14 : 00
스프링 데이터 JPA 8. Projection
14 : 00
스프링 데이터 JPA 9. Specifications
10 : 00
스프링 데이터 JPA 10. Query by Example
10 : 00
스프링 데이터 JPA 11. 트랜잭션
14 : 00
스프링 데이터 JPA 12. Auditing
13 : 00
스프링 데이터 JPA 마무리
07 : 00

공개 일자

2018년 8월 14일 (마지막 업데이트 일자 : 2018년 11월 29일)

수강 후기

4.8
52개의 수강평
NaYe Jeong 3달 전
스프링부트 혼자서 documentation 공부하다가 우연히 유투브로 백기선님 알게 되었어요... 인프런에서 백기선님 강의를 알게 되어서 여러개 수강 중인데... 왜 이런지 개념을 설명해주셔서 정말 좋습니다. 결제한 강의 다 듣게 되면은 스프링시큐리티 수업도 듣고 싶네요... 강의 너무 좋아서 회사 동료분들께 마구마구 추천중입니다... 좋은 강의 만들어주셔서 감사합니다.
고정섭 3달 전
재미있게 들었습니다. Spring Data Common 에 대해서도 상세하게 다루어져 있어서 좋네요. 제가 알았던 부분은 더 잘 알게 되었고, 모르고 JPA 를 사용하는 부분도 있었네요. 다음에 또 좋은 강좌로 만나뵈면 좋겠네요. 감사합니다.
지식공유자 되기
많은 사람들에게 배움의 기회를 주고,
경제적 보상을 받아보세요.
지식공유참여
기업 교육을 위한 인프런
“인프런 비즈니스” 를 통해 모든 팀원이 인프런의 강의들을
자유롭게 학습하는 환경을 제공하세요.
인프런 비즈니스