Spring JPA란? 무엇 일까요?
- IT이야기
- 2023. 9. 26.
JPA(Java Persistence API)가 무엇일까요?. JPA는 자바 진영에서는 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음입니다. 그 말은 즉, 실제적으로 구현된것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크 입니다. JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있습니다.
ORM은 또 무엇일까요?
우리가 일반적으로 알고 있는 어플리케이션 Class와 RDB(Relation DataBase)의 테이블을 매핑(연결)한다는 뜻이며, 기술적으로 어플리케이션의 객체를 RDB 테이블에 자동적으로 매핑해주는 것이라고 보면됩니다. (가만보면... Kafaka Connector랑 비슷하네? 요즘의 Connector컨셉과 비슷한거같음)
장점
- SQL 문이 아닌 Method를 통해 DB를 조작할 수 있어, 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중할 수 있다.
(JPA를 사용하면 내부적으로는 쿼리를 생성하여 DB를 조작한다)
- Query와 같이 필요한 선언문, 할당 등 부수적인 코드가 줄어들고, 각종 객체에 대한 코드를 별도로 작성하여 코드 가독성이 높아진다.
- 객체지향적인 코드 작성이 가능하다(요즘 코틀린이 뜨는걸 보면 JAVA 지향점인 무조건적인 객체지향은 약간 구려지는 듯한 느낌을 받는다)
- 매핑하는 정보가 Class로 명시 되었기 때문에 ERD를 보는 의존도를 낮출 수 있고 유지보수 및 리팩토링에 유리
단점
- 프로젝트의 규모가 크고 복잡하여 설계가 잘못된 경우, 속도 저하 및 일관성을 무너뜨리는 문제점이 생긴다. 결론은 프로젝트의 규모가 클 수록 설계가 중요하다.(말해 뭐하겠음..)
- 사용해야 할 Query가 무겁다면 별도의 Query튜닝을 위해 Query문을 써야할 수도 있음.
'IT이야기' 카테고리의 다른 글
Redis Data Type (0) | 2024.10.30 |
---|---|
리눅스 환경변수 영구적 적용 및 화면 끊어짐 현상 없애기 (0) | 2023.09.21 |
데이터 파이프라인 소개 (0) | 2022.05.16 |
RAID (레이드) 레벨과 구성방식 (0) | 2021.07.07 |
안드로이드 레이아웃 (0) | 2021.07.07 |