본 포스팅은 인프러의 JPA 기본편을 수강하고 정리하는 내용입니다.
JPA? - Java Persistance API
Jdbc -> MyBatis, JdbcTemplate -> JPA
과거에는 JdbcTemplate이나 MyBatis를 통해 sql을 한땀한땀 작성하여 개발을 했으나 이는 개발 생산성이 뒤떨어진다.
JPA를 사용하면 개발 생산성을 혁신 시킬 수 있고 개발 속도와 유지보수 측면에서 확연히 차이가 날 것이다.
JPA 실무에서 어려운 이유!
- 인터넷에 있는 튜토리얼 보는 정도로는 무조건 한계가 있다.
- 1) 객체와 테이블을 올바르게 매핑하고 설계하는 방법을 모르기에. (이게 제일 중요하다. 수십개의 테이블이 있는 실무 애플리케이션에서 올바르고 설계하고 매핑하는게 정말 중요하다)
- 2) JPA의 내부 동작 방식을 이해하지 못해서 (디버깅이 오래걸리고 최악의 경우 장애 상황에서 대처가 안된다)
위와 같은 문제들을 중점적으로 해결하기 위해 아래 두 가지의 강의 목표를 설정하였다.
목표1 - 객체와 테이블 올바른 설계 매핑
- 객체와 테이블을 제대로 설계하고 매핑하는 방법
- 기본 키와 외래 키 매핑
- 1:N, N:1, 1:1, N:M 매핑
- 실무 노하우 + 성능 고려
- 어떠한 복잡한 시스템도 JPA로 설계 가능
목표2 - JPA 내부 동작 방식 이해
- JPA의 내부 동작 방식을 이해하지 못하고 사용
- JPA 내부 동작 방식을 그림과 코드로 자세히 설명
- JPA가 어떤 SQL을 만들어 내는지 이해
- JPA가 언제 SQL을 실행하는지 이해
JPA 기본편 학습 방법
- JPA는 표준 스펙만 500페이지로 방대함
- 혼자서 공부하기 쉽지 않음
- 강의는 이론 + 라이브 코딩
- 6단계의 실전 예제
- 강의를 메인으로 하고, 책은 참고서로 추천 (아무래도 강의는 실무 위주로 예정되어 있기에 디테일한건 책을 찾아 볼 것)
- 총 16시간: 하루 1시간 반, 2주 완성