[Spring] ORM과 JPA

Jay Lee·2022년 12월 23일
0

Spring

목록 보기
2/3

ORM(Object Relational Mapping)이란?

객체지향 프로그래밍 언어를 활용한 어플리케이션에서는 객체를 통해 엔티티간의 관계를 나타내는 반면 데이터베이스는 FK, 즉 다른 엔티티의 PK만을 활용해 관계를 나타낸다. 이 때, 어플리케이션과 DB사이에서 불일치가 발생하게 되는데 이를 해소하고자 해당 데이터베이스 데이터에 해당하는 객체를 자동으로 매핑해주어 객체를 통해 간접적으로 데이터베이스에 접근할 수 있게 해주는 것을 의미한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하므로써 불일치를 해결할 수 있다.

ORM의 장점

  • 객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중할 수 있게 도와준다.
    (내부적으로는 쿼리를 생성하여 DB를 조작하지만 개발자가 이를 신경 쓰지 않아도 된다.)
  • 재사용 및 유지보수의 편리성이 증가한다.
  • DBMS에 대한 종속성이 줄어든다.

ORM의 단점

  • 완전히 ORM만을 이용하여 하나의 어플리케이션을 구현하기는 어렵다.
  • 프로시저가 많은 시스템의 경우 ORM의 객체지향적인 장점을 이용하기 어렵다.

JPA(Java Persistance API)란?

  • Java 진영에서 채택한 ORM 기술 표준으로 사용하는 인터페이스 모음
  • 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
  • 인터페이스이기 때문에 Hibernate, OpenJPA 등을 통해 구현된다.

Spring Data JPA

  • 인터페이스 기반으로 간편하고 효율적으로 사용할 수 있는 모듈
  • Repository 인터페이스를 작성해 놓으면 Application이 실행될 때, 구현체를 만들어서 DI
  • Repository의 메소드를 통해 쿼리를 날릴 수 있음.
profile
Data Engineer

0개의 댓글