[ORM - JPA] JPA를 고른 이유
2022. 3. 13. 00:56ㆍProgramming/Java
[ ORM - JPA ] JPA란 무엇인가
JPA - Java Persistence API
자바 진영의 ORM 기준 표준이다. 이러한 ORM 기술은 관계형 데이터베이스와 Java의 객체지향의 차이점을 줄여주는 역할을 한다.
ORM - Object Realtional Mapping
ORM - Object Relational Mapping
객체 - 관계 매핑의 줄임말이다.
결론을 말하자면 객체와 테이블을 매핑해서 서로의 차이점과 불일치 문제를 대신 해결해준다.
기존의 많은 개발자들은 관계형 데이터베이스와 객체지향 프로그래밍의 서로 다른 지향점으로 인해 그 차이점을 줄이고자 많은 시간과 코드를 소모하였다. 이러한 문제를 해결하기 위해 등장한 것이 ORM이다. 이러한 ORM은 객체를 데이터 베이스에 저장하고자 할 때 해당 SQL을 작성하는 것이 아닌 Java의 컬렉션에 저장하듯 ORM에 저장을 한다. 그러면 ORM은 해당 객체에 대한 SQL을 생성하여 테이블에 저장을 해준다. 이러한 역할을 해주는 것이 바로 ORM이다.
JPA , MyBatis
Java의 ORM에는 MyBatis와 JPA가 존재하며 전세계적으로 MyBatis에서 JPA로 갈아타는 추세이다
MyBatis | JPA |
Java 클래스와 직접 작성한 SQL코드를 Mapping | 클래스로 생성된 객체가 직접 DB에 연결 -> SQL을 직접 작성하지 않아도 됨 |
직접 SQL을 작성하지 않아도 된다는 장점으로인해 JPA로 넘어가는 추세이며 이번에 ORM을 공부하면서 JPA를 고르게 되었다.
JPA의 장점
- 객체에 맞는 테이블 생성으로 인한 객체 지향 중심의 개발이 가능
- DB 생성이 간편
- 기본적인 CRUD의 자동화 -> MyBatis와의 다른 장점
- 복잡한 쿼리는 QueryDSL을 사용해 처리 -> MyBatis의 경우 직접 쿼리를 작성하면서 진행을 하므로 복잡한 쿼리를 다루기에는 더욱 유용하다. JPA에서는 이러한 복잡한 쿼리를 다루기 어렵지만 대신에 QueryDSL이라는 오픈소스를 사용하면 문제를 해결할 수 있다.
추후에 좀더 MyBatis와 JPA를 따로 비교하는 식의 글을 올릴 예정이다.
'Programming > Java' 카테고리의 다른 글
[Java] 객체지향 (0) | 2022.11.14 |
---|---|
[Java] static 개념 및 정리 (0) | 2022.06.26 |
[Java] 자바의 추상 클래스 & 인터페이스 정리 / 상속 (0) | 2022.03.29 |
[IntelliJ] 단축키 (0) | 2022.03.11 |
[Java] Enum - 열거형 타입(enumerated type) (0) | 2022.03.03 |