Thumbnail
지식공유자의 깜짝 할인 중
BEST
개발 · 프로그래밍 백엔드

자바 ORM 표준 JPA 프로그래밍 - 기본편 대시보드

(5)
1,535개의 수강평 ∙  20,049명의 수강생
30% 121,000원 84,700원

월 16,940원

5개월 할부 시
지식공유자: 김영한
총 56개 수업 (16시간 3분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[웹 개발, 백엔드] 강의입니다.

JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자신있게 JPA를 사용할 수 있습니다.

✍️
이런 걸
배워요!
JPA의 기본기를 탄탄하게 다질 수 있습니다.
JPA의 내부 동작 방식을 이해할 수 있습니다.
객체와 DB 테이블을 올바르게 설계하고 매핑할 수 있습니다.
실무에서 자신있게 JPA를 사용할 수 있습니다.

실무에서도 자신있게 쓰는 JPA! 
남다른 JPA 기초의 첫걸음을 떼어보세요.

🚩 본 강의는 로드맵 과정입니다.

  • 본 강의는 자바 백엔드 개발 실전 코스를 시작하는 첫 번째 강의입니다. 코스 전체 구성이 궁금하시다면, 스프링 부트와 JPA 실무 완전 정복 로드맵을 먼저 확인해주세요. (링크)

자바 ORM 표준 JPA 프로그래밍 - 기본편

객체를 관계형 데이터베이스에 저장하려면 개발자는 많은 코드와 SQL을 작성해야 합니다. 예를 들어 객체를 SQL로 변환하는 단순한 일부터, 객체의 상속 구조를 테이블에 저장하는 복잡한 일까지, 개발자는 객체와 데이터베이스 사이에서 무수한 매핑 코드와 SQL을 직접 작성해야 합니다.

자바 ORM 표준인 JPA는 SQL 작성 없이 객체를 데이터베이스에 직접 저장할 수 있게 도와주고, 객체와 관계형 데이터베이스의 차이도 중간에서 해결합니다.

자바 ORM 표준 JPA가 무엇일까요?

JPA

  • Java Persistence API
  • 자바 진영의 ORM 표준 기술

ORM

  • Object-relational mapping(객체 관계 매핑)
  • 객체는 객체대로, 관계형 DB는 관계형 DB대로 설계
  • ORM 프레임워크가 중간에서 매핑
  • 객체를 ORM 프레임워크에 저장하면, ORM 프레임워크가 SQL을 생성해서 객체를 DB에 관리
  • 대중적인 언어에는 대부분 ORM 기술이 존재

JPA를 사용하는 이유

  • SQL 중심의 개발에서 객체 중심으로 개발
  • 개발 생산성 향상
  • 유지보수 편의
  • 패러다임의 불일치 해결
  • 성능 향상
  • 데이터 접근 추상화와 벤더 독립성
  • 자바 ORM 표준 기술

온라인 강의를 
시작한 이유

저는 지금까지 다양한 실무 프로젝트에 JPA를 도입했습니다. 작게는 단순한 웹 서비스부터 크게는 조 단위의 거래 금액을 처리하는 주문 - 결제 - 정산 시스템까지 JPA로 직접 설계하고 개발했습니다. JPA를 처음 실무에 도입할 때는 좌충우돌 하기도 했지만 개발 생산성과 유지보수가 확연히 좋아졌고, 남는 시간에 코드 품질과 테스트에 더 많은 시간을 쏟을 수 있었습니다. 무엇보다 JPA를 사용해본 동료들은 이전으로 돌아가고 싶어하지 않았습니다.

하지만 JPA에 관한 국내 자료가 부족했고, 대부분이 원서여서 어려운 점이 많았습니다. 그래서 2015년에 직접 자바 ORM 표준 JPA 프로그래밍 책을 쓰고, 그로부터 4년이 흘렀습니다.

그동안 네이버, 카카오 같은 인터넷 비즈니스 회사부터 우아한형제들, 11번가 같은 e커머스 회사까지, JPA를 이미 사용중이거나 도입하려는 많은 회사에 강연을 했습니다. 강연을 통해 책으로는 이해가 어려웠던 부분이 직접 강의로 들으니 쉽게 이해된다는 개발자 분들이 많았습니다. 그래서 온라인 강의를 만들게 되었습니다.


기초가 탄탄한 
JPA 기본편 

앞으로 진행할 JPA 강의는 크게 기본편과 활용편으로 나뉘어져 있습니다. 이 강의는 기본편입니다.

강의 목표

JPA의 내부 동작 방식을 이해하지 못하고, 단순히 편리하다는 이유로 JPA를 도입하는 분들을 종종 보았습니다. 실무에서는 정말 다양하고 복잡한 이슈가 발생합니다. 이때 근본 원리를 모르면 많은 시간과 비용을 낭비하게 됩니다. 그리고 JPA로 객체와 관계형 데이터베이스를 설계하고 매핑할 때, 어떤 방법이 좋은 방법인지 모르면 조금만 복잡해져도 방황하게 됩니다.

따라서 JPA를 잘 사용하려면 다음 두 가지를 깊이있게 이해해야 합니다.

  • JPA의 내부 동작 방식
  • 객체와 관계형 데이터베이스 테이블을 올바르게 매핑하는 방법

기본편은 이 두 가지에 초점을 맞추었습니다. 기초를 탄탄하게 해서 실무에서 JPA를 사용하더라도 두려움 없이 사용할 수 있게 해드리는 것이 이 강의의 목표입니다.

활용편

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
스프링 부트와 JPA로 실제 웹 애플리케이션을 설계하고 개발합니다.

실전! 스프링부트와 JPA 활용2 - API 개발과 성능 최적화
JPA 극한의 성능 최적화 방법을 학습할 수 있습니다.

실전! 스프링 데이터 JPA
기초부터 실무까지 스프링 데이터 JPA를 학습합니다.

실전! Querydsl
Querydsl을 통해 복잡한 쿼리와 동적 쿼리 문제를 해결합니다.

참고 도서

책은 더 깊은 내용을 공부하고 싶은 분들을 위한
참고서로 생각하시면 됩니다.
(책이 없어도 강의를 위한 별도의 자료가 제공됩니다.) 


이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
JPA를 처음 접하시는 분
JPA를 실무에서 사용하지만 기본 원리를 이해하고 싶으신 분
📚
선수 지식,
필요할까요?
JAVA 언어
관계형 데이터베이스 기초 지식

안녕하세요
김영한 입니다.
김영한의 썸네일
커리큘럼 총 56 개 ˙ 16시간 3분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 0. 강좌 소개
강좌 소개 미리보기 12:25
수업 자료
2024 최신 버전으로 프로젝트 설정하기 - 문서
2024 최신 버전으로 프로젝트 설정하기 - 소스코드
섹션 3. 영속성 관리 - 내부 동작 방식
영속성 컨텍스트 1 10:20
영속성 컨텍스트 2 25:41
플러시 08:31
준영속 상태 06:21
정리 04:58
섹션 4. 엔티티 매핑
객체와 테이블 매핑 06:38
데이터베이스 스키마 자동 생성 17:17
필드와 컬럼 매핑 19:15
기본 키 매핑 37:44
실전 예제 1 - 요구사항 분석과 기본 매핑 28:20
섹션 5. 연관관계 매핑 기초
단방향 연관관계 24:31
양방향 연관관계와 연관관계의 주인 1- 기본 23:40
양방향 연관관계와 연관관계의 주인 2 - 주의점, 정리 29:40
실전 예제 2 - 연관관계 매핑 시작 20:12
섹션 6. 다양한 연관관계 매핑
다대일 [N:1] 11:10
일대다 [1:N] 19:06
일대일 [1:1] 19:59
다대다 [N:M] 16:08
실전 예제 3 - 다양한 연관관계 매핑 12:33
섹션 7. 고급 매핑
상속관계 매핑 39:52
Mapped Superclass - 매핑 정보 상속 10:24
실전 예제 4 - 상속관계 매핑 11:46
섹션 8. 프록시와 연관관계 관리
프록시 44:57
즉시 로딩과 지연 로딩 24:34
영속성 전이(CASCADE)와 고아 객체 22:54
실전 예제 5 - 연관관계 관리 05:05
섹션 9. 값 타입
기본값 타입 10:02
임베디드 타입 20:02
값 타입과 불변 객체 16:44
값 타입의 비교 07:13
값 타입 컬렉션 43:11
실전 예제 6 - 값 타입 매핑 07:25
섹션 10. 객체지향 쿼리 언어1 - 기본 문법
소개 32:14
기본 문법과 쿼리 API 24:14
프로젝션(SELECT) 15:32
페이징 09:10
조인 14:28
서브 쿼리 11:04
JPQL 타입 표현과 기타식 09:10
조건식(CASE 등등) 07:20
JPQL 함수 12:01
섹션 11. 객체지향 쿼리 언어2 - 중급 문법
경로 표현식 21:18
페치 조인 1 - 기본 29:17
페치 조인 2 - 한계 24:52
다형성 쿼리 02:32
엔티티 직접 사용 07:57
Named 쿼리 08:23
벌크 연산 14:24
강의 게시일 : 2019년 06월 26일 (마지막 업데이트일 : 2024년 02월 05일)
수강평 총 1,535개
수강생분들이 직접 작성하신 수강평입니다.
5
1,535개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
향로 thumbnail
5
현업에서 실제로 JPA로 개발을 하고 있습니다. 그런 입장에서보면 지금 작성하고 있는 코드들이 어떻게 작동하는지 이해하는데 큰 도움을 주는 강의입니다. 다음은 제가 느낀 이 강의의 장점들입니다. 강의 수강을 고민하시는 분들은 참고해보시면 좋을것 같아 남깁니다. 1) 발표 장표가 잘 준비되어 있어 참고하면서 보기에 좋았습니다. - 책이 없더라도 준비된 발표 자료를 다운받아 볼수 있습니다. 2) Spring Data Jpa를 *처음부터 쓰지 않고*, 순수 자바 어플리케이션에서부터 시작하여 최신의 스프링부트를 쓴 사람들이 아니더라도 JPA와 ORM에 대한 이해도를 높이는데 도움이 됩니다. 3) Java 강사로 다년간 활동을 해보신분 답게 설명이 정말 이해하기 쉽습니다. 주변에 JPA에 대해 고민하는 분들이 계신다면 주저없이 추천할 강의입니다.
2019-06-28
지식공유자 김영한
이동욱님 고맙습니다. 저도 IntelliJ 강의 잘 듣고 있습니다^^
2019-07-06
이주현 thumbnail
5
회사땜에 매일 바쁜 와중에 학원이라도 다닐까 생각했는데 마침 JPA 강의가 생겨서 꿀 타이밍이네요. 저는 이 전에 JPA 책을 보고 공부 했었는데요 궁금했던 점, 업무에 적용하며 고민하고 해결하지 못했던 부분들이 있었습니다. 이게 맞나? 저게 맞나? 반신반의하며 적용했던 부분들.. 그런데! 이 강의에서 이런 궁금증들을 모두 해결해주셨습니다. ㅠㅠ(감동) 특히! 직접 라이브 코딩하는 부분도 보여주시기 때문에 많은 분들이 현업에서 JPA를 적용하는데 더 와 닿을 것 같습니다. 지금은 회사에서 진행하는 신규 프로젝트에 무조건! JPA를 사용하고 있습니다. 회사에서 수강료를 지원하기 때문에 팀원들도 이 강의를 들을 수 있도록 독려하려고 합니다. 정말 감사합니다 ㅠㅠ
2019-06-28
지식공유자 김영한
이주현님 고맙습니다. 신규 프로젝트에 무조건! JPA를 적용하시는 군요. 사실 저도 관계형 데이터베이스를 사용하면 항상 적용하고 있습니다. 중간에 궁금한 내용이 있으면 언제든지 편하게 질문 주세요^^
2019-07-06
kingbbode thumbnail
5
JPA 를 공부하고 책을 보며 어려웠던 내용을 위주로 먼저 보았습니다. 옆에서 1:1 과외해주는 것 같이 생생하고 이해 잘되는 설명, 예제(코드)가 너무 좋았습니다. 어느 것 하나 애매함없이 모두 명확하게 답과 팁을 제시하고, 무엇보다 실무 경험이 반영된 좋은 내용까지 너무 감사합니다. 앞으로도 꾸준히 학습해보겠습니다. 감사합니다.
2019-06-26
지식공유자 김영한
kingbbode님 고맙습니다. 꾸준히 학습하시고, 궁금한 내용이 있으면 언제든지 편하게 질문해주세요^^!
2019-07-06
맑은요정님 thumbnail
5
저는 야생형이 아니라 학자형인가봐요^^ 활용편 넘어갔다 30% 정도 듣고 도저히 답답해서 기본편을 들어버렸네요^^. 한주 한주 김영한님 강의 들으니 렙업되는 모습을 스스로 느낍니다. 특히 실무에서 사용해야하는 것과 필요 없는 부분을 과감히 정리해주시는 부분이 너무 좋은 것 같아요. 이제는 정말 활용편을 자신있게 넘어갈 수 있을 것 같습니다. 대한민국 JPA의 기본서는 김영한님 강좌와 책으로 명시적 선언 되었습니다.^^ 감사합니다.
2020-12-12
지식공유자 김영한
ㅎㅎ 잘 판단하셨습니다. 사실 제가 학자형 스타일인데, 최근에는 야생형이 되려고 많이 노력하고 있습니다^^ JPA가 매우 오랜기간 발전하면서, 너무 다양한 케이스까지 지원하다 보니, 공부하려면 한도 끝도 없어서 저도 처음에는 많이 힘들었습니다. 그런데 실무에서 막상 개발을 해보니까. 중요한게 딱 정해져 있더라구요^^ 그 부분을 최대한 강의에 많이 녹였습니다. 책은 JPA 자체를 전반적으로 다 다루어야 해서 더 넓은 범위를 다루고 있습니다. 열심히 노력하시는 모습을 보니 저도 뭔가 뿌듯하네요. ㅎㅎ 맑은요정님 화이팅!
2020-12-12
석민 thumbnail
5
K-개빈 킹 이 수식어가 어울리는 강사, 대한민국에서 사투리가 가장 섹시한 강사, 내 프로젝트에 의존성으로 추가하고 싶은 강사 강의결제를 고민하는 분들께 1) 너무 훌륭한 강의입니다. 무엇보다 "아 이부분 좀 어려운데?" 라고 생각하는 순간 초보자도 이해하기 쉽게 설명해줍니다. 누군가는 '어? 강의면 당연히 그래야되는거 아닌가?' 라고 생각할 수 있지만, 그건 교육학을 들은 '교육자'분들도 쉽게 가질 수 없는 능력입니다. 많은 강의 노하우와 제자들과의 커뮤니 케이션의 스택이 높지 않다면 불가능합니다. 2) 강의 톤이 너무 좋습니다. 사실 딱딱하고 감정이 전혀 이입되지 않은 대본을 읽는 강의는 수업을 듣는 사람으로 하여금 지루함을 느낄 수 있습니다. 하지만 이 강의는 다릅니다. 중간중간 흘러나오는 사투리와, 강사님이 JPA와 물아일체 되면서 톤이 높아지실 때 강의를 듣는 여러분들도 어느순간 K-개빈킹 3) 질문에 대한 피드백이 정확하고 빠르다. 궁금한 점에 대해서, 여러분들이 정확히 어떤 부분이 궁금하다고 명시한다면, 최대한 자세히 설명을 해주십니다. 사실 이 3개의 강의평은 강의에 대한 평도 있지만, 책에대해서도 느낀점이 많습니다. 제 개인적인 생각으로는 책을 쓰면서 독자들에게 쉽게 읽히고, 이해하기 편한 그리고 무엇보다 'JPA에 깊은 생각'을 하게 해주려고 많은 노력을 했을 것 같습니다. 만약 책을 구매하시고 강의를 들으신다면, 책을 먼저 보고, 정말 어렵고 혼자서 이해하기가 너무 어렵다 하면, 원하는 부분의 강의 섹터를 찾아서 보는 게 저는 더 효과적이라고 생각합니다. 생각을 할 수 있게 도와주는 강의입니다.
2020-11-18
지식공유자 김영한
석민님 진심으로 고맙습니다. 장문의 수강평에 눈물이 주룩 ㅠㅠ 10년도 더 전에 국내에 JPA를 사용하는 개발자 분들이 거의 없어서, 이 좋은 기술을 너무 알리고 싶다는 열정이 가득했던 기억이 납니다. 왜 해외에서는 거의 JPA만 사용하는데, 국내에서는 그렇지 않을까? 그렇게 고민하다가, 결국 국내에서는 이 기술을 쓰고 싶어도, 제대로 된 책이나 교육 자료가 없다는 생각을 하게 되었고, 결국 7년 전에 JPA책을 쓰기 시작했습니다. JPA 책쓰는데 2년, 인프런 JPA 강의 코스 만드는데 1년 해서 총 3년 정도는 JPA 기술 보급을 위해서 시간을 보냈습니다. 지금은 정말 많은 회사에서 JPA를 기본으로 사용하고 있어서 그때 한 노력들이 참 보람있습니다. 석민님이 저의 그런 노력을 알아주셔서 참 기쁘네요. ㅠㅠ
2020-11-20