충분히 쌓여가는
ORM, JPA, hibernate 본문
ORM(Object-relational mapping)
자바의 객체와 데이터베이스를 연결하는 프로그래밍 기법
SQL을 몰라도 자바 언어로만 데이터베이스에 접근해서 원하는 데이터를 받아올 수 있다
즉, 객체와 데이터베이스를 연결해 자바 언어로만 데이터베이스를 다룰 수 있게 하는 도구
ORM 장점
SQL을 직접 작성하지 않고 사용하는 언어로 데이터베이스에 접근할 수 있다
객체지향적으로 코드를 작성할 수 있기 때문에 비즈니스 로직에만 집중할 수 있다
데이터베이스 시스템이 추상화되어 있기 때문에 MySQL에서 PostgreSQL로 전환한다고 해도 추가로 드는 작업이 거의 없다(데이터베이스 시스템에 대한 종속성이 줄어든다)
매핑하는 정보가 명확하기 때문에 ERD에 대한 의존도를 낮출 수 있고 유지보수할 때 유리하다
ORM 단점
프로젝트 복잡성이 커질수록 사용 난이도도 올라간다
복잡하고 무거운 쿼리는 ORM으로 해결하기 불가능한 경우가 있다
JPA(java persistence API)
자바 객체와 데이터베이스를 연결해 데이터를 관리, 객체 지향 도메인 모델과 데이터베이스의 다리 역할
자바에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스
실제 사용을 하기 위해 ORM 프레임워크를 추가로 선택해야 한다
대표적으로 hibernate
하이버네이트 hibernate
JPA 인터페이스를 구현한 구현체이자 자바용 ORM 프레임워크
내부적으로 JDBC API 사용
자바 객체를 통해 데이터베이스 종류에 상관없이 데이터베이스를 자유자재로 사용할 수 있게 함
'Spring > Spring Boot' 카테고리의 다른 글
스프링 데이터 JPA (0) | 2023.12.21 |
---|---|
엔티티 매니저, 영속성 컨텍스트 (0) | 2023.12.21 |
테스트 코드 (0) | 2023.12.20 |
H2 데이터베이스와 lombok을 build.gradle에 추가 (0) | 2023.12.19 |
스프링 부트 프로젝트 디렉터리 구성 (0) | 2023.12.19 |