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
- 멀티스레드
- Resilinece4j
- java 정렬
- Spring Cloud Netfilx Eureka
- spring batch
- MSA
- 디자인 패턴
- zipkin
- TypeScript
- 배치
- saga pattern
- 디자인패턴
- Spring Boot Actuator
- Java
- 알고리즘
- The law of Demeter
- 스레드
- 생산자 소비자 패턴
- 사가 패턴
- thread
- 키클락
- JPA
- Transaction Pattern
- spring cloud
- Serial GC
- 타입스크립트
- Parallel Old GC
- 스프링 배치
- 체인 패턴
- Action Pattern
Archives
- Today
- Total
PSD( Private-Self-Development )
JPA 란? 본문
JPA 란?
JPA( Java Persistence API ) 은 자바 ORM을 위한 표준 기술
ORM 이란?
ORM( Object-Relational Mapping ) 은 자바의 객채와 관계형 DB를 맵핑해주는 것
왜 사용하는가?
유지보수성 증가
가장 큰 이유는 유지보수성의 증가라고 생각한다.
이러한 장점을 가져다주는 JPA의 특징은 아래와 같다.
- SQL 문을 작성하지 않고, 객체지향적인 코드 작성에 집중할 수 있다.
- 서비스 사용 DB가 변경될 경우, 쿼리 수정이 필요한데
JPA를 사용할 경우, 불필요하다. - 가독성이 좋다.
하지만 단점 또한 존재하는데,
- DB의 관계 혹은 구조가 복잡한 경우, 속도 저하 혹은 원하는 쿼리 결과를 얻기 힘들 수 있다.
- 쿼리가 복잡하거나, 대용량 데이터를 취급하는 쿼리의 경우 별도의 튜닝 및 선회가 필요한데
이러한 경우 어쩔 수 없이 SQL 문을 사용할 수 있다. - 즉, 서비스가 크고 복잡한 경우 부적합할 수 있다.
이러한 단점을 어느 정도 보완하기 위한 Querydsl 사용 또한 공부할 것이다!
Querydsl 란?
자바 기반으로 쿼리 작성하도록 해주는 API
객체와 관계형 DB 간의 차이점이 발생하는 이유
객체의 상속과 DB 간의 상하 관계의 차이가 존재하기 때문이다.
이러한 차이점 때문에 엔티티 신뢰 문제, CRUD SQL 다 작성해야 함 발생
엔티티 신뢰 문제 란?
관계형 DB와 같이 객체를 선언하여도
DTO에서 연관된 DB 테이블을 모두 조회하지 않으므로
조회한 객체에 다른 테이블에 대한 정보가 존재하지 않을 수 있음
무엇으로 공부할까?
https://www.inflearn.com/roadmaps/149
김영한의 스프링 부트 + JPA 로드맵 인터넷 강의로 공부를 진행하려고 한다.
회사 동기의 추천으로 듣기 시작했는데 너무 좋다 ㅠㅠㅠ.
설명이 자세하고, 듣기 좋고, 이해가 쉽다.
이분 강의를 즐겨 듣게 될 것 같다.
'Backend > JPA' 카테고리의 다른 글
JPA 의 프록시, 지연 로딩, 즉시 로딩 (0) | 2022.10.12 |
---|---|
JPA 의 상속 (0) | 2022.10.11 |
JPA의 DB 매핑 (0) | 2022.10.06 |
JPA의 영속성 컨텍스트 (0) | 2022.10.06 |
JPA 사용 설정 및 사용 (0) | 2022.10.05 |