Search
Duplicate
🍃

JPA

Created time
2023/07/11 01:11
Last edited time
2023/08/28 12:36
Status
Done
tag

들어가기에 앞서

참고한 자료를 바탕으로 비전문가가 정리한 글이므로 오류가 있을 수 있습니다.
오류에 대한 지적 사항은 언제든지 환영합니다. 부디 댓글로 알려주시길 바랍니다. 감사합니다.

JPA란?

JAVA Persistence API의 준말인 JPA는 "영속성을 위한 자바 API"를 나타낸다. "영속성"은 데이터를 생성한 프로그램이 종료되더라도 그 데이터가 사라지지 않고 지속적으로 유지되는 것을 의미한다.
JPA는 객체 지향 프로그래밍 언어인 자바와 관계형 데이터베이스(테이블 형태로 데이터를 저장하고, 그 테이블 간의 관계를 통해 데이터를 구성하는 시스템)와 같은 영구 저장소 간의 데이터를 연결하여 영속성을 관리하는 기술이라 할 수 있다. 쉽게 말해, JPA는 RDB를 사용하는 방식을 정의한 인터페이스인 것이다.
이를 통해 개발자는 자바 객체와 데이터베이스 간의 매핑(ORM), 데이터 조작, 객체의 생명 주기 관리 등을 더 쉽게 할 수 있다.

왜 JPA를 사용해야 하는가

그렇다면 왜 JPA를 사용해야할까? MyBatis를 이용하는 것은 충분하지 않은가?
나는 JPA를 사용하기 전까지는 진행하는 프로젝트의 개발 방식은 SQL 중심적인 개발이었다. 즉, SQL쿼리문을 직접 작성해야 DB에 접근 가능하며, 비슷한 기능이라면 필연적으로 CRUD 메소드 또한 비슷한 변수명과 거의 동일한 기능 구현을 가진 형태로 작성했다. 이는 JAVA의 특징인 객체지향프로그래밍을 전혀 살리지 못 하고 중복된 코드를 작성하게 된다는 것이며, 유지보수성과 생산성 하락을 초래하게 된다.
바로 이런 문제를 해결하기 위해 객체 중심으로 애플리케이션 개발이 가능한 JPA를 사용해야 한다는 것이다.

참고