[Spring JPA] JPA를 배워야하는 이유
- JPA와 ORM은 뭘까?
- 왜 JPA를 할까?
ORM이란
ORM은 데이터베이스 객체를 자바 객체로 매핑하여 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해준다.
ORM은 관계형 데이터베이스의 ‘관계’를 Object에 반영하자는 것이 목적이라면, SQL Mapper는 단순히 필드를 매핑시키는 것이 목적이라는 점에서 지향점의 차이가 있다.
ORM의 시대
JPA
JPA는 자바진영에서 제공하는 API이며, 자바 ORM 기술에 대한 표준 명세이다.
자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다.
JPA를 구현한 ORM 프레임워크는 Hibernate, EclipseLink, DataNucleus 등이 있다.
구글트래픽을 통해 본 개발 트렌드
전세계의 구글 유저들은 압도적으로 JPA에 대한 관심이 많다.
우리나라는 아직까지 상대적으로 MyBatis에 대한 관심도가 많으나, JPA에 대한 관심이 지속적으로 증가하고 있고 슬슬 MyBatis에 대한 관심도를 추월하고 있는 것을 확인할 수 있었다.
ORM 방식은 왜 주류가 되었나?
기존의 Sql Mapper 방식(MyBatis, JdbcTemplate)에서는 개발자가 SQL문을 직접 작성해 데이터베이스를 조작했다.
따라서, 개발자가 객체에 따른 CRUD 쿼리를 반복적으로 작성해야했고 이는 유지보수의 어려움을 야기했다.
하지만, ORM 방식(JPA, Hibernate)에서는 객체를 통해 간접적으로 데이터베이스를 조작한다.
ORM이 객체간 관계를 바탕으로 sql을 자동으로 생성해주기 때문에 개발자는 SQL 쿼리가 아니라 Java 메서드를 통해 데이터베이스의 데이터를 조작할 수 있다.
따라서, 개발이 특정 DBMS에 종속되지 않으며, SQL문이 코드에 들어가지 않아 깔끔한 코드를 유지할 수 있다.