카테고리 없음

2024. 8. 6. (화) 슈퍼코딩 부트캠프 Day 58 / 주특기 7주차

태영9922 2024. 8. 6. 21:48

 

1. JPA Repository 기본 메소드 이용하기

  • JPA Entity 더티 체킹으로 업데이트 하기
  • JPA Repository 자동 쿼리 메소드 이용하기
  • JPA Pagination 구현하기(쉽게 말해서 페이지 나누기)

1. JPa Entity 관계 매핑하기

  • 매핑할때 고려할 3가지
  • <다중성>
  • 다대일 관계
  • 일대다 관계
  • 일대일 관계
  • 다대다 관계

 

  • <방향성>
  • 다대일 단방향
  • 다대일 양방향

 

  • 양방향 관계에서 주인 정하기
 

2. JPA Fetch 정책과 JPQL 사용하기

  • 연관 객체 들고오기
 

- JPQL(Java Persistence Query Language) : 자바의 객체지향 쿼리

 

3. JPA N+1문제

  • N+1문제란 ? 연관 관계가 설정된 Entity 조회 시 조회된 갯수 만큼 조회 쿼리가 추가로 실행되는 현상
  • Fetch Join 으로 해결

4. JPA와 Spring PSA

  • PSA(=Portable Service Abstraction) : 휴대용 서비스 추상화
  • 특정 기술에 접근하는 것이 아닌 스펙을 추상화 해서 사용할 수 있도록 하는 방법 -> 코드 이식성과 유연성 확보

 

  • 문제 : RDB마다 SQL이 조금씩 다르다
  • JPA는 여러 DB의 기술을 추상화하여 사용한다.
  • JPA사용 중 DB 기술이 바뀔 경우 ->
  • PSA는 결국 특정 기술에 얽매이지 않는 코드 철학을 의미한다.

 

 

 

 

#슈퍼코딩, #1:1관리형부트캠프, #백엔드, #backend, #백엔드공부, #개발공부, #백엔드개발자 #취준일기, #취준기록, #취뽀, #빡공, #HTML/CSS, #javascript, #react , #java, #spring