본문 바로가기

spring(스프링)

[spring(스프링)] Spring ORM이란? _디버깅의 눈물

Spring ORM(Object-Relational Mapping)

 

스프링 프레임워크에서 제공하는 객체-관계형 데이터베이스 간의 매핑을 처리하는 기술입니다. ORM은 데이터베이스 테이블을 객체로 표현하고, 객체를 데이터베이스 테이블로 매핑합니다. 이를 통해 객체지향 프로그래밍과 관계형 데이터베이스의 모델 간의 불일치 문제를 해결할 수 있습니다.

 

Spring ORM은 이러한 ORM 기술을 이용해 자바 객체와 데이터베이스 간의 매핑을 처리하며, 이를 위해 대표적으로 JPA(Java Persistence API)와 그 구현체인 Hibernate 사용합니다.

 

Spring ORM을 사용하면, 별도의 SQL 코드 작성 없이도 자바 객체와 데이터베이스 간의 매핑을 처리할 수 있으므로 개발 생산성을 높일 수 있습니다. 

 

또한 Mybatis는 쿼리가 수정되어 데이터 정보가 바뀌면 그에 사용되고 있던 DTO와 함께 수정해야 하지만, JPA는 객체만 변경하면 되므로 객체 중심의 개발이 가능합니다.

 

 

 

 

*객체지향 프로그래밍에서는 객체를 이용하여 데이터를 관리하고, 데이터베이스에서는 테이블을 이용하여 데이터를 관리합니다. 이러한 객체와 테이블은 서로 다른 형식으로 데이터를 저장하고 있기 때문에, 두 형식 간의 변환 과정이 필요합니다. 이러한 변환 과정을 데이터베이스 매핑이라고 합니다.

 

*MyBatis는 ORM 프레임워크가 아니라, SQL Mapper 프레임워크입니다. SQL Mapper 프레임워크는개발자가 직접 SQL 코드를 작성하고 그 SQL을 매핑 파일(XML)에 등록하여 사용하는 방식으로 동작합니다.