본문 바로가기
프로그래밍/spring

[JPA] JPA란? -1

by 혀끄니 2023. 6. 16.
728x90
  • JPA란?

- JPA(Java Persistence API)는 자바 ORM 기술에 대한 API 표준

  • JPA를 사용하는 이유?

- SQL 중심 개발의 문제점을 개발자가 CRUD라고 불리는 INSERT, UPDATE, SELECT, DELETE문을 작성해서 객체를 관계형 데이터베이스에 넣어주고 가져오는 작업

- 즉, 자바 객체를 SQL을 통해 데이터베이스에 관리하게 하고 데이터베이스에 저장된 데이터를 자바 애플리케이션에서 사용하려면 SQL을 통해 다시 자바 객체로 변환하는 반복적인 작업을 함

(개발자가 SQL을 매핑하는 역할을 반복해야 한다는것을 의미)

- 객체와 관계형 데이터베이스의 패러다임의 불일치가 가장 큰 문제

1. 자바는 객체 지향 패러다임으로 만들어짐

2. 관계형 데이터베이스는 데이터를 정규화해서 잘보관하는것을 목표

3. 객체를 데이터베이스에 넣기 위해서는 SQL문을 통해 변환해서 저장해야 하고, 데이터베이스에서 객체를 다시 꺼내오기 위해서는 SQL문을 통해 변환해서 저장해야되고, 데이터베이스에서객체를 다시 꺼내오기 위해서는 복잡한 SQL문을 작성

(결국 객체를 단순히 데이터 전달 목적으로 사용할 뿐 객체지향적으로 프로그래밍 할 수 없음)

- 이를 해결하기 위해 나온 기술이 ORM

  • ORM이란?

- ORM(Object Relational Mapping)의 약자로 객체와 관계형 데이터베이스를 매핑해주는 것

- 객체는 객체지향적으로, 데이터베이스는 데이터베이스대로 설계 그리고 ORM은 중간에 2개를 매핑하는 역할

- 개발자는 소스를 조금 더 객체지향적으로 설계하고 비즈니스로직에 집중

- JPA는 ORM 기술의 표준 명세로 자바에서 제공하는 API

- 가장 대표적인 오픈소스가 Hibernate(하이버이트)

728x90