JPA 등장 배경
현재는 객체를 관계형 데이터베이스에 저장하고 관리하는 방식을 많이 채택해 사용하고 있다. 데이터를 저장하려면 결국 개발자는 SQL에 의존할 수 밖에 없으며 이로 인해, 무한 반복적인 코드와 지루함의 연속이 되어가고 있다. 단순히 필드 값을 추가 조회 하기 위해서는 복잡한 SQL 쿼리를 반복적으로 작성해야했다. 또한 객체와 관계형 데이터베이스는 애초에 다른 패러다임을 가지고 있다. 상속, 연관관계, 데이터 대입 등 근본적인 접근이 달랐다. 때문에 데이터베이스 테이블에 맞추어 객체를 모델링하고, 저장해야했다. 이로서 객체지향의 특성 ( 추상화, 캡슐화, 상속, 다형성 ) 은 살리지 못 하고 있었다 ...
JPA ?
스프링을 공부하다보면, JPA 용어를 쉽게 볼 수 있다. 그만큼 중요하고 핵심적인 기술임은 틀림이 없다. 과연 JPA 란 무엇일까 ?
JPA 란 Java Persistence API 의 줄임말로, 자바 진영의 ORM 기술 표준이다. 그렇다면 ORM은 무엇일까 ?
ORM ?
ORM 이란 Object-relational mapping 의 줄임말로, 객체와 관계형 데이터베이스를 중간에 매핑해주는 기술이다.
즉 객체는 객체답게 설계하고, 관계형 데이터베이스는 관계형 데이터베이스 대로 설계한다.
그 후, ORM 프레임워크가 중간에서 이 둘을 Mapping 해준다.
대부분의 언어에는 ORM 기술이 존재한다.
JPA 를 사용하면 얻게되는 이점들 ?
- SQL 중심적인 개발에서 객체 중심으로 개발할 수 있다.
- 객체와 관계형 데이터베이스의 패러다임 불일치를 해결할 수 있다.
- 생산성이 증가한다.
- 유지보수하기 편하다.
1. SQL 중심적인 개발에서 객체 중심으로 개발할 수 있다.
- JPA가 Entity 를 보고 자동으로 기본적인 SQL을 만들어 보내기 때문에 객체 특성을 살리면서 설계할 수 있다.
2. 객체와 관계형 데이터베이스의 패러다임 불일치를 해결할 수 있다.
- 객체를 상속한 후, JPA 가 지원하는 find, persist 등 함수를 사용하면 나머진 JPA 가 처리해준다.
3,4 . 생산성이 증가하며 유지보수하기 편하다.
- 새로운 필드 값을 추가하거나 삭제할 때, SQL 을 작성하지 않고 그저 엔티티 값을 변경하거나 삭제하면 된다.
'개인 공부 > Spring' 카테고리의 다른 글
[Spring] #9 JPA 엔티티 매핑 (0) | 2022.04.18 |
---|---|
[Spring] #8 JPA 동작 원리 (0) | 2022.04.16 |
[Spring] #6 스프링 빈 등록 (0) | 2022.01.19 |
[Spring] #5 회원 서비스 구현 (0) | 2022.01.19 |
[Spring] #4 회원 리포지토리 테스트 케이스 작성 (0) | 2022.01.14 |