[Java] ORM 이란?

jinni·2022년 12월 11일
0

Java

목록 보기
5/5

ORM이란 뭘까!?

ORM이란 Object Relational Mapping의 준말로, 객체와 데이터 베이스의 관계를 매핑해주는 도구다. RDB는 객체지향적인 특성이 존재하지 않아, 객체지향적인 언어로 접근하는 것은 어려운 일이다. 이런 이유로 객체 모델과 관계형 모델의 패러다임 불일치가 발생하게 된다.

하지만, ORM을 사용하게 되면, 객체지향적인 언어로도 RDB 를 쉽게 사용할 수 있다!!
ORM의 대표적인 예로, JPA, Hibernate 등이 있다.

왜 사용하는데?

JPA가 등장하기 전, Mybatis 라는 Object Mapping 을 사용했다. Mybatis는 자바의 클래스와 SQL의 쿼리문을 매핑시켜줘야 하는 번거로움이 있었다. 하나의 예로, 우리가 API를 만들 때, 흔히 CRUD라고 부르는 녀석들에 대해 쿼리문을 작성해줘야 했었다. 하지만, JPA의 등장이후 이러한 번거로움이 사라지게 된 것이다. JPA는 기본적인 CRUD 를 자동화해주기 때문이다. 또한, 데이터 베이스와 객체가 직접 연결되어 있기 때문에 따로 쿼리문을 작성해주지 않아도 된다.

ORM 장점

  • 직관적인 코드와 생산성 향상(비즈니스 로직 집중)
  • 재사용 및 유지보수 용이
  • RDB에 관한 종속성 저하
  • 테스트 용이

ORM 단점

  • 고도하게 복잡한 쿼리문은 결국 SQL문을 직접 작성하는 것이 더 빠를 수도 있다.
  • ORM이 모든 것을 해결해줄 수 없다. 즉, 쿼리문을 작성할 줄 알아야 한다.

참고
https://mangkyu.tistory.com/20
https://gmlwjd9405.github.io/2019/02/01/orm.html

profile
조금씩 천천히 꾸준하게

0개의 댓글