강의

멘토링

커뮤니티

BEST
개발 · 프로그래밍

/

백엔드

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

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

(5.0) 수강평 1,987개

수강생 24,367명

  • 김영한

먼저 경험한 수강생들의 후기

이런 걸 배울 수 있어요

  • 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 언어

  • 관계형 데이터베이스 기초 지식

안녕하세요
입니다.

563,239

수강생

37,626

수강평

9,000

답변

5.0

강의 평점

25

강의

진짜 실무에 필요한 제대로 된 개발자가 될 수 있도록, 교육하는 것이 저의 목표입니다.

 

저의 개발 인생 이야기

EO 인터뷰 영상

개발바닥 - 시골 청년 개발왕 되다

취업과 이직에 대한 고민 해결

 

커리큘럼

전체

56개 ∙ (16시간 3분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

1,987개

5.0

1,987개의 수강평

  • jojoldu님의 프로필 이미지
    jojoldu

    수강평 3

    평균 평점 5.0

    5

    9% 수강 후 작성

    I am actually developing with JPA in the field. From that perspective, this lecture is very helpful in understanding how the codes I am currently writing work. The following are the advantages of this lecture that I felt. I am leaving this because I think it would be good for those who are considering taking the lecture. 1) The presentation was well prepared, so it was good to look at while referring to it. - Even if you don't have the book, you can download the prepared presentation materials. 2) It will help you increase your understanding of JPA and ORM even if you are not *using Spring Data Jpa from scratch*, but starting from a pure Java application and not using the latest Spring Boot. 3) As expected from someone who has been working as a Java instructor for many years, the explanations are really easy to understand. If there are people around you who are thinking about JPA, I recommend this lecture without hesitation.

    • yh
      지식공유자

      Thank you, Mr. Lee Dong-wook. I am also listening to the IntelliJ lecture well^^

  • leemaru님의 프로필 이미지
    leemaru

    수강평 2

    평균 평점 5.0

    5

    93% 수강 후 작성

    K-Gavin King A lecturer who fits this description, a lecturer with the sexiest dialect in Korea, a lecturer I want to add as a dependency to my project To those who are considering paying for a lecture 1) This is an excellent lecture. Above all, the moment you think, "Oh, this part is a bit difficult?", he explains it in a way that even beginners can understand. Some people may think, "Huh? Isn't that what a lecture should be like?", but that is an ability that even "educators" who have studied education do not easily have. It is impossible without a lot of lecture know-how and a high stack of communication with students. 2) The tone of the lecture is really good. In fact, lectures that read stiff scripts without any empathy can make the listeners feel bored. But this lecture is different. The dialect that flows out from time to time, and when the instructor becomes one with JPA and the tone gets higher, the listeners will also feel like they are K-Gavin King at some point. 3) The feedback on questions is accurate and fast. If you specify what you are curious about, he will explain in as much detail as possible. In fact, these three lecture reviews are about the lectures, but I also felt a lot about the book. In my personal opinion, I think a lot of effort was put into writing the book to make it easy for readers to read, easy to understand, and above all, to make them think deeply about JPA. If you buy the book and take the lecture, I think it would be more effective to read the book first, and if it is really difficult and too difficult to understand on your own, find the lecture sector you want and watch it. This is a lecture that helps you think.

    • yh
      지식공유자

      Thank you very much, Seokmin. I shed tears at your long course review ㅠㅠ I remember being so passionate about promoting this great technology more than 10 years ago, when there were almost no developers using JPA in Korea. Why is it that almost all developers overseas only use JPA, but not in Korea? After thinking about it like that, I eventually realized that there were no proper books or educational materials in Korea even if they wanted to use this technology, so I started writing a JPA book 7 years ago. I spent 2 years writing the JPA book and 1 year creating the Inflearn JPA course, so a total of 3 years to spread JPA technology. Now, many companies are using JPA as a basic tool, so the efforts I made back then are worthwhile. I'm so happy that Seokmin recognizes my efforts. ㅠㅠ

  • kingbbode0570님의 프로필 이미지
    kingbbode0570

    수강평 3

    평균 평점 5.0

    5

    91% 수강 후 작성

    I studied JPA and read the book, and first looked at the difficult parts. The vivid and easy-to-understand explanations and examples (code) were so good, as if I was being tutored 1:1. I am so grateful that the answers and tips were clearly presented without any ambiguity, and above all, the good content reflected my practical experience. I will continue to study steadily in the future. Thank you.

    • yh
      지식공유자

      Thank you, kingbbode. Please keep learning, and if you have any questions, feel free to ask anytime^^!

  • leejaycoke0521님의 프로필 이미지
    leejaycoke0521

    수강평 4

    평균 평점 5.0

    5

    6% 수강 후 작성

    I was thinking about going to an academy while I was busy every day because of work, and the JPA lecture just happened to be available, so it's a great timing. I had studied the JPA book before, but there were things I was curious about, things I was worried about while applying to work, and things I couldn't solve. Is this right? Is that right? Parts that I applied half-heartedly.. But! This lecture solved all of these questions. ㅠㅠ (impressed) In particular! Since it also shows the part where you do live coding yourself, I think it will be more relatable for many people to apply JPA in the field. Now, I'm using JPA unconditionally for new projects that my company is working on. Since my company supports the tuition, I'm going to encourage my team members to take this lecture. Thank you so much ㅠㅠ

    • yh
      지식공유자

      Thank you, Lee Joo-hyun. You definitely apply JPA to new projects! In fact, I always apply it when I use a relational database. If you have any questions in the meantime, feel free to ask me anytime^^

  • parapp82820676님의 프로필 이미지
    parapp82820676

    수강평 11

    평균 평점 5.0

    5

    100% 수강 후 작성

    I think I'm not a wild type but a scholar type^^ I skipped the utilization section and listened to about 30%, but I was so frustrated that I listened to the basic section^^. I can feel myself leveling up as I listen to Mr. Kim Young-han's lectures week after week. I especially like the part where he boldly organizes the parts that need to be used in practice and the parts that are unnecessary. Now, I think I can confidently move on to the utilization section. The basic book of JPA in Korea has been explicitly declared to be Mr. Kim Young-han's lectures and books^^ Thank you.

    • yh
      지식공유자

      Haha, you made a good decision. Actually, I am a scholar-type, but recently, I have been trying hard to become a wild type^^ JPA has been developing for a very long time, and it supports so many different cases that there is no end to studying, so I had a hard time at first. But when I actually started developing in practice, I realized that there were certain important things^^ I included that part in the lecture as much as possible. The book covers a wider range because it has to cover JPA itself as a whole. I feel proud when I see you working hard. Haha, fighting, Malgeun Fairy!

₩121,000

김영한님의 다른 강의

지식공유자님의 다른 강의를 만나보세요!

비슷한 강의

같은 분야의 다른 강의를 만나보세요!