JPA는 자바에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이라고 한다.
인터페이스의 특징 때문에 실제적인 구현된 것이 아니라 구현한 클래스에 매핑(DB와 연결)을 해주기 위해 사용되는 프레임워크입니다.
ORM 이란?
Object-Relational Mapping 객체 관계 매핑
OOP(Object Oriented Programming)에서 쓰이는 객체라는 개념을 구현한 클래스와 RDB(Relational Database)에서 사용하는 테이블을 자동으로 연결(매핑) 하는 것을 의미합니다.
클래스와 테이블은 서로가 처음부터 호환 가능성을 보고 만들어진 것이 아니기 때문에 불일치가 발생함
그래서!
이를 ORM을 통해 객체 간의 관계를 바탕으로 SQL 문을 자동으로 생성하여 불일치를 해결합니다.
ORM을 이용하면 SQL 문을 짤 필요가 없는 편의성을 가지게 됩니다!
ORM의 장점
- 완벽한 객체지향적인 코드
- 재사용, 유지 보수, 리팩토링 용이성
- DBMS(DataBase Management System) 종속성 하락
JPA를 사용하는 이유
JPA를 사용하면 객체 중심으로 애플리케이션 개발이 가능하다.
- 생산성(CRUD)
JPA를 사용하면 기본적으로 생산성이 높아진다. JDBC 방식의 경우 SQL 쿼리 비문을 직접 작성해야 데이터베이스에 접근할 수 있다.
하지만, JPA는 쿼리 비문을 별도로 작성할 필요가 없다.
- 유지 보수
기존에는 엔티티 클래스의 필드가 변경되면 모든 SQL을 수정해야 한다
JAP에서는 쿼리는 직접 작성하지 않기 때문에 필드가 변경되더라도 매핑 정보만 잘 연결하면 SQL 문은 자동으로 작성된다.
- 패러다임의 불일치 문제 해결
상속, 연관관계, 객체 그래프 탐색, 비교 등의 설계 차이로 인해 발생하는 패러다임 불일치 문제를 해결한다.
- 객체는 상속 구조를 만들 수 있으며, 다형성 구현이 가능하지만, 관계형 데이터베이스의 테이블은 상속이라는 개념이 존재하지 않는다.
- 객체는 참조를 통해 관계를 표현하며 방향을 가지고 있으나, 관계형 데이터베이스는 외래 키를 통해 관계를 표현하며, 방향이 존재하지 않는다. 또한, 다대다 관계 문제를 해결하기 위해 조인을 사용한다.
- 이 외에도 다양한 패러다임 불일치 문제가 존재
'CS' 카테고리의 다른 글
[CS] JDK란? (0) | 2024.05.08 |
---|---|
[CS] MVC 패턴이란? (0) | 2024.05.08 |
[CS] @Controller 와 @RestController (0) | 2024.05.08 |
[CS] Spring boot vs Spring Framework (0) | 2024.05.08 |
[CS] REST? REST API? RESTful? (0) | 2024.05.08 |