본문 바로가기

spring(스프링)

[spring(스프링)] JPA(Java Persistence API)란? _디버깅의 눈물

JPA(Java Persistence API)?

 

ORM 위한 자바의 표준 인터페이스로, 객체와 관계형 데이터베이스 간의 매핑(ORM)을 처리해주는 API입니다.

 

JPA는 단순 명세이기 때문에 구현이 없습니다. 실제로 JPA 사용하기 위해서는 JPA 구현한 Hibernate 같은 ORM 프레임워크를 사용해야 합니다.

 

*Hibernate는 JPA의 기능을 확장해 사용하기 위해 JPA 인터페이스를 기반으로 만든 구현체 중 하나입니다.

 

 

 

JPA의 장점과 단점

 

장점

 

1. 생산성

: ORM을 제공함으로써 개발자가 직접 SQL문을 작성하지 않아도 됩니다.

 

2. 객체 지향적인 코드

: JPA를 사용하면 데이터베이스의 데이터를 객체로 매핑할 수 있습니다. 이를 통해 객체 지향적인 코드 설계가 가능합니다.

 

3. DBMS 독립성

: JPA는 다양한 DBMS에서 사용할 수 있도록 지원합니다. 데이터베이스를 변경해도 코드를 수정할 필요가 없어 생산성이 높아집니다.

 

4. 유지보수

: SQL문을 직접 다루는 방식에서는 컬럼 하나만 추가 되어도 직접 SQL문과 관련된 코드를 모두 변경해야 합니다. 

 

 

단점

 

1. 러닝 커브

: JPA를 처음 사용할 때, ORM에 대한 개념을 익히는데 시간이 걸릴 수 있습니다. 또한 JPA는 다양한 옵션과 설정이 많아 복잡할 수 있습니다.

 

2. 성능

: JPA는 SQL문을 직접 작성하지 않으므로, 잘못된 쿼리나 매핑 설정으로 인해 성능이 저하될 가능성이 있습니다.