[Spring] JPA

thingzoo·2023년 6월 26일
0

Spring

목록 보기
22/54
post-thumbnail

DB를 SQL로 직접 다룰때의 문제점

한 객체 데이터를 DB에 저장해서 관리한다고 가정하면 해야할 일

  • DB 테이블 생성
  • 애플리케이션에서 SQL 작성
  • SQL을 JDBC를 사용해 직접 실행
  • SQL 결과를 객체로 직접 만들어줘야함

이때 필드를 하나 더 추가한다고 가정하면 해야할 일

  • SQL를 직접 수정해야함
  • 자바 객체 값도 변경해줘야함

비즈니스로직보다 SQL 작성 및 수정에 더 많은 노력 필요
👉🏻 특히, SQL 의존적이라 변경에 취약

ORM(Object-Relational Mapping)

Object : "객체"지향 언어 (자바, 파이썬)
Relational : "관계형" 데이터베이스 (H2, MySQL)

위에서 본 것 처럼 반복적이고 번거로운 애플리케이션 단에서의 SQL 작업을 줄여주기 위해서 ORM(객체 관계 매핑)기술들이 등장!

  • ORM: 객체와 DB의 관계를 매핑 해주는 도구
    • ORM을 사용하면 SQL 작업들을 자동으로 처리해줌

JPA(Java Persistence API)

  • JPA: Java ORM 기술의 대표적인 표준 명세
    • JPA는 애플리케이션과 JDBC 사이에서 동작
    • JPA는 DB 연결 과정을 직접 개발하지 않아도 자동으로 처리해줌
    • 또한 객체를 통해 간접적으로 DB 데이터를 다룰 수 있어 매우 쉽게 DB 작업 처리 가능

Hibernate

  • 하이버네이트: 자바 언어를 위한 ORM 프레임 워크
  • JPA는 표준 명세이고, 하이버네이트는 JPA 구현체 중 사실상 표준
  • 스프링 부트에서는 기본적으로 하이버네이트 구현체를 사용 중!
profile
공부한 내용은 바로바로 기록하자!

0개의 댓글