일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- n8n
- 프로세스와스레드의차이
- 한화시스템부트캠프
- STOMP
- QA
- 하이브리드접근법
- 프로토콜역할
- 메소드
- 자동화워크플로우
- 헥사고날아키텍처
- Java
- N+1문제
- 오버로딩
- JPA
- 엘라스틱서치
- 부트캠프
- springboot
- 오블완
- 자바
- nplus1
- jwt토큰
- XSS
- 티스토리챌린지
- selenium
- 테스트케이스
- 캐시의 작동 원리
- Kafka
- 스프링시큐리티
- 자료구조
- kafka배포
- Today
- Total
목록JPA (5)
아쿠의 개발 일지
JPA를 사용하면서 연관 관계가 설정된 엔티티를 조회할 때 N+1 문제를 경험한 적이 있을 것입니다. 이는 하나의 쿼리를 실행한 후, 연관된 엔티티를 개별적으로 추가 조회하는 문제로 인해 성능 저하를 초래합니다. 이를 해결하기 위한 대표적인 방법이 fetch join과 EntityGraph입니다.이번 글에서는 fetch join과 EntityGraph의 개념을 이해하고, 이를 활용하여 성능 최적화를 어떻게 할 수 있는지 알아보겠습니다. .👍😊 1. Fetch Join 소개 및 활용Fetch Join 개념fetch join은 JPA의 JOIN FETCH 키워드를 활용하여 연관된 엔티티를 한 번의 쿼리로 조회하는 방법입니다. 이를 통해 N+1 문제를 해결하고 불필요한 추가 조회를 방지할 수 있습니다.Fe..

1. 객체지향의 핵심 개념 다들 개발을 시작하면서 객체지향 프로그래밍에 대해 많이 들어봤을 것이다.객체지향 프로그래밍은 데이터를 객체로 모델링하고, 객체 간 상호작용으로 프로그램을 구성하는 방법이다.Java는 대표적인 객체지향 언어이다. 그 중 4대 핵심 개념이 있는데1. 캡슐화 (Encapsulation)데이터를 클래스 내부에 감추고, 외부에는 필요한 기능만 노출하는 방식이다. 2. 상속화 (Inheritance)기존 클래스의 속성과 메서드를 재사용하여 새로운 클래스를 만드는 것이다. 3. 다형성 (Polymorphism)하나의 메서드가 다양한 클래스에서 다른 동작을 하도록 구현하는 방식이다. 4. 추상화 (Abstraction)불필요한 세부 사항을 숨기고 필요한 것만 드러내는 설계 방식이다.2. Sp..

N+1 문제란 ?연관 관계에서 발생하는 이슈로 연관 관계가 설정된 엔터티를 조회할 경우에 조회된 데이터 개수(N)만큼 연관관계의 조회 쿼리가 추가로 발생하여 데이터를 읽어오게 된다. 이를 N+1 문제라고 한다. EAGER 는 열렬한, 열심인 이런 뜻을 가졌는데 모든 연관관계 데이터를 즉시 빠르게 열렬하게 가져온다고 생각하면 된다.위 말한 것 처럼 필요하지 않아도 추가로 가지고 오게 된다.LAZY는 게으른의 뜻을 가지고 있는데 게을러서 필요한 것만 조회하고 연관 관계에 있는 나머지 데이터는 조회를 미룬다. 기본적으로 EAGER 가 세팅되어 있지만, N+1 문제를 해결하기 위해 LAZY 사용을 쓰는 것이 좋다. JPQL ?SQL은 아니고, 변경되기 전 단계이기에 자바와 SQL 문법이 섞여있다. where :..

안녕하세요 여러분 현재는 11주차 교육을 듣고 있는 김아쿠입니다. (^ㅡ^,, 열심히 배우는 중)어떻게 된 일인지...에 대해서 변명을 해 보자면, 스프링 교육이 너무너무 지쳐 복습하느라 이렇게 됐습니다. 9주차에 무엇을 배웠나 생각을 해 보니 JPA를 배웠습니다. JPA는?자바 진영에 ORM 기술 표준으로 사용되는 인터페이스의 모음이다. 그 말은 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크이다. Spring Data JPA는?스프링 부트는 JPA 중에서 Hibernate라는 구현체를 사용한다.Spring Data JPA는 이런 Hibernate를 좀 더 쉽게 사용할 수 있는 추가적인 API들을 제공한다. Spring Data JPA가 DB에 데이터를 다루..

학생 수강(Enrollment, EnrollmentRepository, EnrollmentService, EnrollmentController) 학생 외래키 수업 외래키 수업(Lecture, LectureRepository) lectureName 각각의 엔터티가 다음을 가지고 있다고 치자.다 제외하고학생 - 수강수업 - 수강이렇게 관계를 맺어서 학생과 수업은 M:N 관계로 수강 테이블(중간)을 통해 join 하는 것을 만들고자 한다. 일단 ! 학생 - 수강import & getter & setter은 생략@Entitypublic class Enrollment { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id..