Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- rds
- CICD
- Docker
- Spring Boot
- QueryDSL
- jpa
- kakao
- serverless
- 자격증
- CodeCommit
- aws
- mapping
- 오블완
- 스터디
- backenddeveloper
- 백엔드
- s3
- backend
- MSA
- Redis
- DynamoDB
- sqs
- 티스토리챌린지
- 개발자
- codedeploy
- spring
- codebuild
- ec2
- goorm
- orm
Archives
- Today
- Total
gony-dev 님의 블로그
[JPA] 자바 ORM 표준 JPA 프로그래밍 - JPA를 사용해야 하는 이유? 본문
1. SQL 중심적인 개발의 문제점
무한 반복..지루한 코드...
애플리케이션을 개발하다 보면 보통 객체 지향 언어로 개발을 하게 된다. 그리고 데이터베이스는 관계형 DB를 많이 채택한다. 실제로 우리가 실무에서 개발을 진행하면 만들어지는 객체들을 이 관계형 DB에 관리를 하게 된다. 본래는 SQL문을 만들어가면서 CRUD 기능들을 진행해야한다. 이러할 때 문제점은 수많은 SQL문들을 작성해야 하기 때문에 대단히 번거롭고 비효율적인 과정을 거치게 된다. 하지만 관계형 데이터베이스를 사용하면서 통신을 하기 위해서는 SQL에 의존적인 개발을 피하기가 어렵다...
객체와 관계형 데이터베이스의 차이
- 상속
- 상위 항목을 추상화로 두고 밑에 구체적인 객체들을 상속받는다.
- 연관관계
- 객체는 참조를 사용하고, 테이블은 외래 키를 사용한다.
- 객체 모델링 저장
- 객체로 저장할 때는 클래스로, 관계형 DB로 저장할 때는 SQL 쿼리를 작성한다.
- 객체 그래프 탐색
- 객체는 자유롭게 객체 그래프를 탐색할 수 있어야 한다.
- 모든 객체를 미리 로딩할 수는 없기 때문이다!!
그렇다면, 객체를 자바 컬렉션에 저장하듯이 DB에 저장할 수는 없을까?
정답은 JPA!!
2. JPA 소개
ORM
본격적인 JPA를 소개하기 전에 ORM에 대해 알 필요가 있다. ORM은 'Object Relational Mapping'의 약자로 객체는 객체대로, 관계형 DB는 관계형 DB대로 설계하는 매핑 기술을 뜻한다.
JPA
1. JPA는 애플리케이션과 JDBC 사이에서 동작한다.
- JDBC API를 통해 데이터베이스와 연동하여 SQL문을 통해 데이터를 관리하고 결과를 반환하면 JPA가 중간에서 데이터베이스와 객체를 매핑한다.2. JPA 동작
- JPA가 동작하는 기능에는 여러가지 있는데 이를테면 어떠한 entity를 던져주면 특정 개체를 분석하거나 insert sql을 사용하여 테이블을 생성하기도 한다.
- 또는 저장과 비슷한 맥락으로 조회를 할 때, select sql을 사용하여 생성하여 결과를 조회할 수 있다.
※ JPA를 사용해야 하는 이유?
왜 굳이 JPA를 사용하면서 데이터를 다루어야 하는 걸까? 그 이유는 다음과 같다.
- SQL 중심적 개발에서 객체 중심으로 개발하고 있다.
- 생산성과 유지보수 측면에서 우수성을 자랑한다.
- 패러다임의 불일치 문제를 해결할 수 있다.
- 데이터 접근 추상화와 벤더 독립이 가능하다.
'Spring > JPA' 카테고리의 다른 글
[JPA] 고급 매핑 (0) | 2024.11.10 |
---|---|
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 다양한 매핑관계 (1) | 2024.09.04 |
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 엔티티 매핑 (0) | 2024.08.28 |
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 영속성 관리(플러시와 준영속 상태) (0) | 2024.08.12 |
[JPA] 자바 ORM 표준 JPA 프로그래밍 - 영속성 관리 (0) | 2024.08.08 |