햄발
Blog 프로젝트 만들기(JPA) - JPA 와 하이버네이트 본문
DBMS 에는 여러가지 종류가 있듯, ORM 에도 여러가지 종류가 있습니다.
자바에선 JPA(Java Persistence API) 를 표준으로 사용합니다.
즉 , JPA 는 자바 진영에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 입니다.
그러나 실제로 DB 와 상호작용 하려면 이 인터페이스를 구현한 구체적인 도구가 필요합니다.그 대표적인 구현체로는 Hibernate 가 많이 사용됩니다.Hibernate 는 JPA 스펙을 구현한 자바용 ORM 프레임워크로 , 스프링부트 프로젝트에서 ORM 을 구현할때 자주 사용되는 도구 입니다.
JPA (Java Persistence API)
- 자바 객체 와 관계형 데이터베이스 를 연결하여 데이터를 관리하는 표준 API 입니다.
- JPA 는 객체 지향 도메인 모델과 데이터베이스간의 중간역할을 하며, 데이터 베이스에대한 접근을 추상화 하여 애플리케이션 코드에서 데이터베이스에 의존하지 않고 데이터를 처리할 수 있도록 합니다.
하이버네이트 (Hibernate)
- JPA 인터페이스 스펙을 구현한 대표적인 ORM 프레임워크 입니다.
- Hibernate는 JPA의 표준을 따르며, 내부적으로는 JDBC API를 활용하여 데이터베이스와 상호작용합니다.
즉, Hibernate는 JPA의 구현체로서, 데이터베이스 작업을 처리하는 데 필요한 구체적인 기능을 제공합니다.
애플리케이션
- 최상위 레이어로 , 스프링 부트 애플리케이션의 비즈니스 로직을 처리합니다.
- 이 레이어에서 서비스나 Repository 계층을 통해 데이터 베이스와 상호작용합니다.
스프링데이터 JPA (Spring Data JPA)
- 스프링 프레임워크의 모듈로, JPA 를 더욱 쉽게 사용 할 수 있도록 도와줍니다.
- Repository 인터페이스를 제공하여 기본적인 CRUD 작업을 쉽게 구현할 수 있도록 해줍니다.
JPA
- 자바에서 ORM 을 표준화 한 API 로 애플리케이션과 데이터베이스 사이의 데이터 맵핑을 관리합니다.
- 객체 지향 프로그래밍과 관계형 데이터베이스 간의 변환을 담당합니다
하이버네이트(Hibernate)
- JPA 의 구현체고 JPA 가 제공하는 인터페이스를 실제로 구현하여 동작합니다.
- 내부적으로는 JDBC API 를 사용해 데이터베이스와 상호작용합니다.
JDBC
- 자바에서 데이터베이스와의 연결을 관리하는 표준 API 입니다.
- SQL 쿼리를 실행하고 결과를 반환하는 역할을 합니다.
- 하이버네이트는 JDBC를 사용하여 데이터베이스 작업을 수행합니다.
DB
- 실제 데이터가 저장되는곳으로 , RDBMS(Relational Database Management System)입니다.
- SQL 을 통해 데이터를 저장, 조회, 수정. 삭제 할수있습니다.
JPA 학습에서의 주의점 확인
JPA는 객체지향적 접근 방식입니다.
- SQL은 데이터베이스의 테이블 간 관계를 정의하는 언어입니다.
테이블과 테이블의 관계는 외래 키를 통해 설정되며, 주로 데이터베이스 관점에서 관리됩니다. - JPA는 객체 간의 관계를 정의하는 자바의 ORM(객체-관계 매핑) 기술입니다.
JPA에서는 클래스와 객체를 사용해 테이블과 데이터 간의 관계를 표현합니다.
중요한 차이점은 SQL은 테이블 간의 관계를 직접 정의하는 반면,
JPA는 객체지향적인 관계를 통해 테이블 간의 관계를 간접적으로 정의한다는 점입니다.
'Spring boot' 카테고리의 다른 글
Blog 프로젝트 만들기(JPA) - 영속성 컨텍스트 (0) | 2024.10.01 |
---|---|
Blog 프로젝트 만들기(JPA) - 엔티티 매니저 (0) | 2024.10.01 |
Blog 프로젝트 만들기(JPA) - 스프링 부트 DB 접근 기술 ORM (0) | 2024.09.30 |
Blog 프로젝트 만들기(JPA) - DELETE 방식에 이해 및 실습 (0) | 2024.09.28 |
Blog 프로젝트 만들기(JPA) - PUT 방식에 이해 및 실습 (0) | 2024.09.28 |