Spring/Springboot-Intellij
[SpringBoot] JPA CORE - JPA란 무엇일까?
congs
2025. 1. 31. 20:46
애플리케이션에서 DB를 직접 다룰때의 문제점
- DB 테이블 생성
- SQL 작성
- JDBC를 이용하여 SQL 실행 ( jdbcTemplate.update(sql, "Robbie", "오늘 하루도 화이팅!");)
- SQL 결과를 객체로 직접 만들어줘야함
= SQL에 의존적이라 변경에 취약함 (SQL을 직접 수정하고 변환부분도 추가 작성필요)
이에, ORM(Object-Relational Mapping)이 등장!
ORM (Object-Relational Mapping)
- Object : "객체"지향 언어 (자바, 파이썬)
- Relational : "관계형" 데이터베이스 (H2, MySQL)
- 반복적이고 번거로운 애플리케이션 단에서의 SQL 작업을 줄여주기 위해 등장
JPA (Java Persistnece API)
- 자바 ORM 기술에 대한 표준 명세
- JPA는 애플리케이션과 JDBC 사이에서 동작되고 있습니다.
- JPA를 사용하면 DB 연결 과정을 직접 개발하지 않아도 자동으로 처리해줍니다.
- 또한 객체를 통해 간접적으로 DB 데이터를 다룰 수 있기 때문에 매우 쉽게 DB 작업을 처리할 수 있습니다.
- 하이버네이트(Hibernate)란?
- JPA 는 표준 명세이고, 이를 실제 구현한 프레임워크 중 사실상 표준이 하이버네이트입니다.
- 스프링 부트에서는 기본적으로 ‘하이버네이트’ 구현체를 사용 중입니다.
- 하이버네이트(Hibernate)란?