배우러가기

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

JPA / ORM 이란?

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

ORM
– Object-relational mapping(객체 관계 매핑)
– 객체는 객체대로 설계
– 관계형 데이터베이스는 관계형 데이터베이스대로 설계
– 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의 내부 동작 방식을 이해할 수 있습니다.
  • 객체와 DB 테이블을 올바르게 설계하고 매핑할 수 있습니다.
  • 실무에서 자신있게 JPA를 사용할 수 있습니다.

수강 대상

  • JPA를 처음 접하시는 분
  • JPA를 실무에서 사용하지만 기본 원리를 이해하고 싶으신 분

선수 지식

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

배우러가기