ORM, JPA, Spring Data JPA 적용하기

이경영·2022년 10월 13일
0

스프링부트2

목록 보기
13/19

ORM(Object Relational Mapping)

  • ORM이란?
    어플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미
  • Java의 데이터 클래스와 관계형 데이터베이스의 테이블을 매핑
    객체지향 프로그래밍과 관계형 데이터베이스의 차이로 발생하는 제약사항을 연결해주는 역할을 수행
    대표적으로 JPA, Hibernate 등이 있음 (Persistent API)

ORM의 장점

  • SQL쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있음

    • 개발자가 보다 비즈니스 로직에 집중할 수 있음
  • 재사용 및 유지보수가 편리

    • ORM은 독립적으로 작성되어있어 재사용이 가능
    • 매핑정보를 명확하게 설계하기 때문에 따로 데이터베이스를 볼 필요가 없음
  • DBMS에 대한 종속성이 줄어듬

    • DBMS를 교체하는 작업을 비교적 적은 리스크로 수행가능

ORM의 단점

  • 복잡성이 커질 경우 ORM만으로 구현하기 어려움
    • 직접 쿼리를 구현하지 않아 복잡한 설계가 어려움
  • 잘못 구현할 경우 속도 저하 발생
  • 대형 쿼리는 별도의 튜닝이 필요할 수 있음

JPA (Java Persistance API)

  • JPA란? :
    JPA는 Java Persistance API의 줄임말이며, ORM과 관련된 인터페이스의 모음
    Java 진영에서 표준 ORM으로 채택되어있음
    ORM이 큰 개념이라고 하면, JPA는 더 구체화시킨 스펙을 포함하고 있음.

Hibernate

  • ORM Framework중 하나
  • JPA의 실제 구현체 중 하나이며, 현제 JPA 구현체 중 가장 많이 사용됨.

Spring Data JPA

  • SpringFramework에서 JPA를 편리하게 사용할 수 있게 지원하는 라이브러리
    • CRUD 처리용 인터페이스 제공
    • Repository개발 시 인터페이스만 작성하면 구현 객체를 동적으로 생성해서 주입
    • 데이터 접근 계층 개발시 인터페이스만 작성해도 됨
  • Hibernate에서 자주 사용되는 기능을 좀 더 쉽게 사용할 수 있게 구현
profile
꾸준히

0개의 댓글