Notice
Recent Posts
Recent Comments
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

ORM, JPA, hibernate 본문

Spring/Spring Boot

ORM, JPA, hibernate

빌드이너프 2023. 12. 21. 13:29

ORM(Object-relational mapping)

자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법

SQL을 몰라도 자바 언어로만 데이터베이스에 접근해서 원하는 데이터를 받아올 수 있다

즉, 객체와 데이터베이스를 연결해 자바 언어로만 데이터베이스를 다룰 수 있게 하는 도구

 

ORM 장점

SQL을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근할 수 있다

객체지향적으로 코드를 작성할 수 있기 때문에 비즈니스 로직에만 집중할 수 있다

데이터베이스 시스템이 추상화되어 있기 때문에 MySQL에서 PostgreSQL로 전환한다고 해도 추가로 드는 작업이 거의 없다(데이터베이스 시스템에 대한 종속성이 줄어든다)

매핑하는 정보가 명확하기 때문에 ERD에 대한 의존도를 낮출 수 있고 유지보수할 때 유리하다

 

ORM 단점

프로젝트 복잡성이 커질수록 사용 난이도도 올라간다

복잡하고 무거운 쿼리는 ORM으로 해결하기 불가능한 경우가 있다


 

JPA(java persistence API)

자바 객체와 데이터베이스를 연결해 데이터를 관리, 객체 지향 도메인 모델과 데이터베이스의 다리 역할

자바에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스

실제 사용을 하기 위해 ORM 프레임워크를 추가로 선택해야 한다

대표적으로 hibernate

 

하이버네이트 hibernate

JPA 인터페이스를 구현한 구현체이자 자바용 ORM 프레임워크

내부적으로 JDBC API 사용

자바 객체를 통해 데이터베이스 종류에 상관없이 데이터베이스를 자유자재로 사용할 수 있게 함