JPA란
JPA(Java Persistence API)는 Java 객체와 관계형 데이터베이스 간의 매핑을 위한 API이다.
ORM(Object-Relational Mapping)을 구현하는 자바 표준 스펙으로, 개발자가 객체지향 프로그래밍 언어에서 사용하는 개체 모델과 관계형 데이터베이스의 테이블 간의 매핑을 자동으로 처리해 준다.
구현체로는 Hibernate, EclipseLink, Data Nucleus가 있으며 Hibernate가 가장 대중적이다.
JPA의 사용 이유
1. 생산성이 증가한다.
- DDL문 자동 생성
- 간단한 메서드로 CRUD가 가능해진다.
- SQL을 작성하고 JDBC API를 사용하는 반복적인 일을 대신 처리한다.
2. 유지보수가 쉽다.
- 기존 : 필드 변경시 모든 SQL 수정
- JPA : 필드만 추가하면 SQL은 JAP가 처리한다.
3. 패러다임 불일치 해결
- 상속 / 연관관계 / 객체 그래프 탐색 / 비교하기 같은 패러다임 불일치를 해결한다.
하지만 JPA의 단점
- 복잡한 SQL의 생성이 어렵다. (Query DSL을 쓰면 되는데 많이 필요하다면 굳이 JPA를...?)
- 자동화된 SQL문으로 인해서 데이터 조회시 조회 성능이 떨어질 가능성이 있다.
- 다수의 테이블 조인시 신경쓸 것이 많다.
간단한 매핑 및 객체 지향적인 접근이 필요한 경우는 JPA로 개발
복잡한 쿼리와 SQL 제어가 필요한 경우는 MyBatis로 개발
참고
https://www.elancer.co.kr/blog/view?seq=231
항해 개발자 취업 리부트 코스를 수강하고 작성한 콘텐츠 입니다.
IT 커리어 성장 코스 항해99, 첫 취업부터 현직자 코스까지
항해99는 실무에 집중합니다. 최단기간에 개발자/PM으로 취업하고, 현직자 코스로 폭발 성장을 이어가세요. 실전 프로젝트, 포트폴리오 멘토링, 모의 면접까지.
hanghae99.spartacodingclub.kr
'멋진 개발자 > Java & Spring' 카테고리의 다른 글
[항해 취업코스] 개발자 취준 기록 6 - Java의 컴파일 과정(JVM) (0) | 2024.03.05 |
---|---|
[항해 취업코스] 개발자 취준 기록 5 - JVM의 구성과 특징 (0) | 2024.03.05 |
[항해 취업코스] 개발자 취준 기록 4 - JPA 더티체킹 (0) | 2024.03.05 |
[항해 취업코스] 개발자 취준 기록 2 - 오버로딩, 오버라이딩 (0) | 2024.03.04 |
[항해 취업코스] 개발자 취준 기록 1 - Call by Reference (0) | 2024.03.04 |