본문 바로가기

Back-End/JPA

Persistence Framework에 관하여 ( 장,단점 )

ORM이란?

객체 <-> 데이터베이스 데이터 자동 매핑 ( Object Relational Mapping )


Persistence란?

데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터

Persistence Framework?

데이터베이스와의 연동되는 시스템을 빠르게 개발하고 안정적인 구동을 보장해주는 프레임워크 

종류
  1. SQL Mapper : SQL문장으로 직접 데이터베이스 데이터를 다루는 SQL Helper ( Mybatis )
  2. ORM : 객체를 통해 간접적으로 데이터베이스를 다루는 ORM ( Hibernate, JPA )

Persistence Framework를 사용하면 좋은 점

  • DBMS에 대한 종속성이 줄어든다.
    • DBMS 교체작업 때 해야할 일이 줄어든다.
    • 자바 객체에 매핑되어 있기 때문에 자바의 기능 ( equasl, hashcode )을 사용할 수 있다.
  • 재사용 및 유지보수
    • 데이터에 대한 객체를 별도로 관리하기 때문에 재활용할 수 있다.
  • 직관적인 코드
    • DBMS와 관련된 선언문,할당,종료와 같은 부수적인 코드가 사라진다.
    • 객체 지향적인 코드

Persistence Framework를 사용하면 안좋은 점

단점은 ORM과 DBMS에 대한 이해도가 있어야지 제대로 보일 것 같다.  ( 공부를 통해서 더 자세한 설명을 첨부하도록 하겠습니다 )


  • ORM만으로는 완벽히 구현해낼 수 없다.
    • 설계를 매우 신중하게 해야한다 => 복잡성이 커질 경우 난이도가 급격히 올라간다.
    • 잘못 구현된 경우 속도 저하 및 일관성까지 무너진다.
    • 일부 자주 사용되는 대형 쿼리는 SP(저장프로시저)를 써서 별도의 튜닝이 필요하다
  • 프로시저가 많은 시스템에서는 ORM의 객체지향적인 장점을 활용하기 어렵다.