-
Spring Boot - ORM이란?Framework & Library/Spring Boot 2022. 2. 3. 23:59
ORM(Object Relational Mapping)
ORM이란?
- 애플리케이션의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 것을 의미한다. 즉, Java의 데이터 클래스와 관계형 데이터베이스의 테이블을 매핑해주는 것이다.
- 객체지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 관계형 모델 간에 불일치가 존재한다. 이러한 차이로부터 발생하는 제약사항을 해결해주는 역할을 수행하는 것이 바로 ORM 기술이다.
- ORM 기술의 대표적인 예로 JPA, Hibernate 등이 있다.
ORM의 장점
- SQL 쿼리가 아닌 직관적인 코드로 데이터를 조작할 수 있다.
ㆍ 개발자가 보다 비즈니스 로직에 집중하여 개발할 수 있다.
- 재사용 및 유지보수가 편리하다.
ㆍ ORM 자체가 하나의 클래스로 독립적으로 작성되기 때문에 재사용이 가능하다.
ㆍ 데이터베이스와의 매핑 정보를 명확하게 설계하기 때문에 따로 데이터베이스를 볼 필요가 없다.
- DBMS에 대한 종속성이 줄어든다.
ㆍ DBMS를 교체하는 작업을 비교적 적은 리스크로 수행이 가능하다.
ORM의 단점
- 프로그램의 복잡성이 커질 경우 ORM만으로 구현하기가 어려워진다.
ㆍ 직접 쿼리를 구현하지 않아 복잡한 설계가 어렵다.
- 잘못 구현할 경우 속도 저하가 발생한다.
ㆍ코드로 작성한 부문을 쿼리로 변환하는 작업이 존재하기 때문에 최적화된 코드 구현이 요구된다.
- 대형 쿼리는 별도의 튜닝이 필요하다.
JPA(Java Persistence API)
JPA란?
- JPA는 Java Persistence API의 약자이며, ORM과 관련된 인터페이스의 모음이다.
- Java 진영에서 표준 ORM 기술로 채택되어 있다.
- ORM이 큰 개념이라고 하면, JPA는 더 구체화시킨 스펙을 포함하고 있다.
Hibernate란?
- ORM Framework 중 하나이다.
- JPA의 실제 구현체 중 하나이며, 현재 JPA 구현체 중 가장 많이 사용되고 있다.
Spring Data JPA란?
- Spring Framework에서 JPA를 편리하게 사용할 수 있게 지원하는 라이브러리이다.
- Repository 개발 시 인터페이스만 작성하면 구현 객체를 동적으로 생성해서 주입시켜주며, CRUD 기능을 기본적으로 제공해준다.
728x90'Framework & Library > Spring Boot' 카테고리의 다른 글
Spring Boot - 유효성 검사 (0) 2022.02.10 Spring Boot - Logback 적용하기 (0) 2022.02.09 Spring Boot - 서비스 구조 살펴보기 (0) 2022.02.03 Spring Boot - DELETE API (0) 2022.02.01 Spring Boot - PUT API (0) 2022.02.01