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)에 등록하여 사용하는 방식으로 동작합니다.
'spring(스프링)' 카테고리의 다른 글
[spring(스프링)] JPA에서의 즉시 로딩과 지연 로딩 _디버깅의 눈물 (0) | 2023.04.13 |
---|---|
[spring(스프링)] 의존성 주입의 3가지 방법 _디버깅의 눈물 (0) | 2023.04.12 |
[spring(스프링)] AOP(Aspect Oriented Programming, 관점 지향 프로그래밍)란? _디버깅의 눈물 (0) | 2023.04.10 |
[spring(스프링)] 스프링의 5가지 특징 _디버깅의 눈물 (0) | 2023.04.09 |
[spring(스프링)] 스프링과 스프링부트의 차이? _디버깅의 눈물 (0) | 2023.04.08 |