JPA는 왜 사용해야 하는가?
관계형 데이터베이스를 이용해 SQL 중심적인 개발을 할 때 맞닿는 문제가 두 가지 있다. 하나는 객체지향 패러다임과 관계형 패러다임의 불일치와 SQL의 유지보수 문제이다. 비즈니스 서비스를 개발할 때 수십 개, 수백 개의 테이블을 관리하고, 각 테이블마다 컬럼을 관리하는 것은 쉬운 일이 아니다. 특히 개발 중 기획된 내용이 변경됨으로 기존 코드를 수정해야할 때가 빈번하게 발생하는데 이때 들어가는 비용은 무시할 수 없다. ORM은 최근에 갑자기 등장된 것이 아니라 꽤 오래 전부터 다뤄지는 영역이었고, 자바의 ORM 기술 표준인 JPA에 대해 알아보도록 한다.
JPA를 사용함으로 얻는 이점
1. CRUD 코드 작성 소요시간을 대폭적으로 감소시켜 생산성 증가
2. 테이블의 변경사항에 유연하게 대처 가능, 유지보수 편이성
3. Database에 종속적이지 않음(데이터베이스 방언(diarect) 설정으로 다른 DB로 교체가 쉬움)
4. 객체 중심으로 개발할 수 있다.
5. 남는 시간에 테스트 코드 작성, 코드 퀄리티에 신경쓸 수 있음
JPA에 대한 우려
이러한 장점에도 도입을 꺼리게 되는 이유는 JPA에 성능에 문제가 있진 않을지에 대한 우려, 복잡한 실무 상황에 바로 대입하기 어려움.
반대로, 정확하게 매핑되는 방식과 JPA 동작 방식을 이해하고 개발한다면 성능을 챙기면서 장점을 누릴 수 있다.
(우아한형제들 정산, 결제, 주문 시스템 등 이미 많은 IT 기업을 복잡한 시스템에 JPA를 사용)
728x90
'# 강의 > [인프런] 자바 ORM 표준 JPA 프로그래밍' 카테고리의 다른 글
[完] 값 타입 (0) | 2022.05.09 |
---|---|
프록시와 연관관계 관리 (0) | 2022.05.09 |
고급 매핑(상속, Mapped Superclass) (0) | 2022.02.20 |
엔티티 매핑 2 (연관관계) (0) | 2022.01.12 |
엔티티 매핑 1(테이블, 컬럼, 키 매핑 전략) (0) | 2022.01.12 |
영속성 관리 - 내부 동작 방식 (0) | 2022.01.12 |