본문 바로가기

spring

ORM

Object Relational Mapping (객체-관계-매핑)
어플리케이션 객체와 관계형 데이터베이스의 데이터를 매핑해주는 도구
  • 객체 지향 프로그래밍 - 클래스 사용 / 관계형 데이터베이스 - 테이블 사용
  • 대표적인 ORM : Hibernate, JPA 등

 

ORM 사용 이유
  • 객체 모델과 관계형 모델 간의 불일치 존재
    • 객체 지향 프로그래밍의 클래스 / 관계형 데이터베이스의 테이블
  • 데이터베이스 접근을 프로그래밍 언어의 관점에서 접근!
  • ORM을 이용해서 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 불일치 해결

 

ORM의 장점
  • 직관적인 코드로 데이터를 조작할 수 있음
    • 개발자가 비즈니스 로직에 집중할 수 있음
    • 부수적인 코드가 줄어들어 단순해지고 가독성 상승
  • 재사용 및 유지보수 편리
    • ORM은 독립적으로 작성되어 있기 때문에 객체들의 재사용 가능
    • 매핑 정보가 명확하기 때문에 ERD에 대한 의존도를 낮춤
  • DBMS에 대한 종속성 감소
    • 대부분의 ORM은 DB에 종속적이지 않음
    • DBMS를 교체하는 경우 더 적은 리스크로 수행 가능
    • DBMS : 데이터베이스 관리 시스템

 

ORM의 단점
  • 복잡도가 올라가는 경우 ORM만으로는 구현의 한계가 있음
    • 직접 쿼리를 구현하지 않기 때문에 복잡한 설계는 어려움
  • 특정 쿼리는 튜닝이 필요할 수 있음
    • 자주 사용하거나 복잡한 경우
  • 프로시저가 많은 시스템에서는 ORM의 객체 지향적인 장점을 활용하기 어려움

 

 

 

 

'spring' 카테고리의 다른 글

영속성 컨텍스트  (0) 2024.09.13
JPA / Hibernate / Spring Data JPA  (0) 2024.09.13
JdbcTemplate  (0) 2024.09.13
JDBC  (0) 2024.09.13
Entity / DTO / DAO / Repository  (0) 2024.09.13