ORM이란…
⭐️ ORM은 Object Relational Mapping 의 약어로서, 객체와 DB간의 관계를 매핑해주는 도구입니다.
개발자는 서로를 각각의 특색에 맞게 설계하여 ORM을 통해 추가적인 코드, 설계 없이
각각을 매핑시킬 수 있습니다.
ORM 사용을 간단하게 표현한 그림
- SQL 쿼리를 사용할 줄 알아도 왜 굳이 ORM 프레임워크를 이용하는 것이 좋은지에 대해 짚고 넘어가야할 것 같습니다.
장점
- 생산성이 증가합니다.
-
⭐️ 간단한 SELECT(조회)를 사용하더라도 SQL 쿼리를 프로그래밍 언어에서 사용한다면 자바로는 메소드를 만들어서 쿼리문을 작성하여 그것을 리턴해주고 그것을 SQL 쿼리에서 받아 DB에서 그에 맞는 데이터를 가져오고 그 데이터를 또다시 객체로 매핑하여 받아오는 아주 귀찮은 일을 해야 하지만 ORM을 사용한다면 코드 한 줄로 같은 일을 수행할 수 있습니다.
- 유지보수가 편해집니다.
-
⭐️ SQL에서 필드의 추가로 인해 쿼리를 수정해야하는 상황을 예로 들면, 변경에 영향 받는 모든 쿼리를 수정해줘야 하지만 ORM을 사용한다면 그 객체만 수정해주면 됩니다.
- 객체 지향 언어와 RDB간의 패러다임 불일치를 해결할 수 있습니다.
-
⭐️ 새로운 기술이 생긴다면 그 기술들은 유지보수나 생산성은 계속 발전할 것 입니다. 하지만 그 중에 JPA를 쓴다면 그 이뉴는 객체지향적으로 DB데이터를 사용할 수 있기 때문이 아닐까 생각이듭니다. 객체 지향 언어는 객체 간의 관계에 집중하지만 RDB는 데이터 간의 관계에 집중하기 때문에 이 점에서 불일치가 일어납니다.
JPA란…
⭐️ JPA는 Java Persistence API 의 약어로, Java ORM 기술의 표준 명세입니다.
다시 말하면 인터페이스 모음으로, 실질적인 동작을 하진 않습니다!
실제론 JPA를 구현한 여러가지 프레임워크를 이용합니다.
대부분의 Java 웹 개발자들은 ORM 프레임워크 중 하나인 Hibernate를 이용합니다
JPA 예시
⭐️ 그림과 같이 Java로 설계만 해주면 알아서 SQL로 바꿔주는 아주 편한 기능을 가지고 있습니다.
위에 기술된 ORM의 장점도 더해서 말이죠.
저희가 사용할 땐 이러한 로드맵으로 사용합니다.
아직 JPA를 다루는데 익숙치 않고 이해하는 것 마저
강의나 구글링을 통해 겨우겨우 바짓가랑이라도 잡는 상황이라
더 자세한 설명은 제 능력 밖의 일인 것 같습니다. 공부하면서 채워넣어야겠네요.
'데이터베이스 > JPA' 카테고리의 다른 글
[JPA] JPQL @Query에 각 DB function() 사용해보기 (0) | 2022.12.31 |
---|---|
[JPA] Pageable과 countQuery 사용한 Spring-Data FETCH JOIN (0) | 2022.11.24 |
[JPA] Fetch 전략과 @EntityGraph로 n+1 해결하기(2) (1) | 2022.08.04 |
[JPA] Fetch 전략과 @EntityGraph로 n+1 해결하기(1) (0) | 2022.08.03 |
[JPA] JPA로 Pageable사용해서 페이징 처리하기 (0) | 2022.06.29 |