Spring/JPA

JPA 란?

묠니르묘묘 2022. 2. 15. 01:33

 

🧐 JPA란?

JPA는 자바 진영에서 만든 ORM(Object Relational Mapping) 기술 표준이다.

스프링 진영에서도 스프링 프레임워크 또는 스프링 데이터 JPA라는 기술로 JPA를 지원하며,

또한 전자정부 표준 프레임워크의 ORM 기술도 JPA를 사용한다.

 

 

 

🧐 그렇다면 JPA를 왜 쓰는 것인가?

옛날엔 JDBC API를 사용했기에 비즈니스 로직보다는 SQL과 JDBC API를 작성하는데 시간이 많이 쓰였다.

그러다가 Jdbc Template 같은 SQL 매퍼를 사용하면서 JDBC API 사용 코드를 줄였지만 그래도 CRUD용 SQL은 반복해서 작성했다.

그래서 데이터 중심의 모델로 프로젝트를 작성할 수 밖에 없었기에 자바 진영에서는 객체 모델링으로 만들고 싶어했다.

그렇게 나온 것이 객체와 관계형 데이터베이스 간의 차이를 중간에서 해결해주는 ORM이다.

 

JPA는 CRUD용 SQL을 알아서 처리할뿐만 아니라 실행 시점에 자동으로 SQL을 만들어 실행한다.

이제 개발자는 SQL을 직접 작성하지 않아도 되어서 데이터 저장 계층에 작성할 코드가 1/3이나 줄었다.

 

그래서 생산성과 유지보수가 좋아진 것은 물론, 테스트까지도 편해진 것이다.

또한 프로젝트 중간에 데이터베이스가 변경되어도 (MySQL → OracleDB) JPA 덕분에 코드를 거의 수정하지 않고 쉽게 변경이 가능했다.

 

 

📝 결론

옛날에는 하나하나 수작업이었다면 지금은 JPA로 자동화가 되었다고 보면 된다.

JPA의 대표적인 장점은 다음과 같이 볼 수 있겠다.

  • 생산성
  • 유지보수
  • 성능
  • 객체와 관계형 데이터베이스간의 차이
  • 데이터베이스 종속적에서 벗어남 

 

 

 


자바 ORM 표준 JPA 프로그래밍 / 김영한 지음 / 에이콘출판주식회사 출판