본문 바로가기
Back-end/Spring boot

[Spring boot] - ORM, JPA에 대해서

by 개발 고양이 2025. 2. 17.

ORM (Object-Relational Mapping) 이란?

객체와 관계형 데이터베이스를 매핑시켜, 객체 지향 코드를 작성 가능하도록 하는 기술을 말한다.

=> 관계형 ↔ 객체지향 사이의 변환 기법!

 

객체(Object)와 데이터베이스(DB)의 테이블의 구조를 자동으로 연결시켜준다.

ORM을 사용하면 개발자는 SQL 쿼리를 직접 작성하지 않아도 되며, 자바 코드를 통하여 DB의 데이터를 조작하고 처리할 수 있어 편리하다.


ORM의 장점

1. 개발 생산성 증가

앞서 말했듯이, ORM을 사용하면 개발 시 SQL을 직접 작성할 필요가 없기 때문에 개발 생산성이 증가한다.

ex) Member이라는 테이블이 있다고 가정하고, 이 테이블의 전체 데이터를 조회해야 한다고 하자.

기존의 SQL 쿼리를 아래와 같이 따로 작성해야 했다. (데이터베이스는 Java를 이해하지 못함)

SELECT * FROM MEMBER;

 

하지만 ORM을 사용하면, Member이라는 테이블과 매핑된 객체 이름이 member라고 했을때,

member.findAll();

위 메서드로 똑같은 데이터 조회 기능을 수행할 수 있다! 즉 Java 문법으로 다 가능하다

 

 

2. DBMS 독립성 보장

특정 데이터베이스(MySQL, Oracle, PostgreSQL, H2 등)에 종속적이지 않다.

=> DB를 교체해야 하는 상황이 오더라도 리스크가 적다

 

3. 재사용 및 유지보수가 편리하다

테이블 구조가 변경된다고 하더라도, SQL문으로 일일이 수정할 필요가 없이 객체 모델만 변경하면 된다.

 


ORM의 단점

프로젝트가 복잡 & 커질 경우 ORM으로만 구현하기는 어려울 수 있다.

=> SQL 사용이 불가피할 수 있음 


JPA란?

 

JPA는 ORM을 사용하기 위한 인터페이스들의 모음이다. 

따라서 실제로 동작하는 것이 아니다. JPA는 ORM을 사용하기 위한 표준이고, 이를 구현한 ORM 프레임워크(구현체)들이 따로 존재한다.

=> 대표적으로 Hibernate, EclipseLink, DataNucleus 등이 있는데, Hibernate가 제일 많이 사용된다.

 

JPA 동작 원리


정리

ORM이란, 객체와 데이터베이스를 매핑시키는 기술이며, JPA는 ORM을 사용하기 위한 표준 API이다. 이러한 JPA를 구현한 대표적인 ORM 프레임워크로는 Hibernate가 있다!