inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

OSIV와 성능 최적화

save할때 프록시 강제초기화에 대해 질문있습니다

351

승윤

작성한 질문수 14

0

안녕하세요 김영한 강사님,

JPA를 사용하면서 OSIV의 설정에따라 영속성관계를 핸들링하는거에 크게 감명받고, false로 설정하여 성능최적화에 여러가지 테스트를 해보고있습니다.

그중 https://www.inflearn.com/questions/632908 의 질문에서도 남겼던건데, 공식서포터즈님의 답변을 받았지만 역시나 궁금한점이 있어서 질문 다시 남깁니다.

제가 가장 궁금한 질문은, 위 질문의 답변으로 추측하여 엔티티의 생성(insert)시 해당 엔티티가 가진 연관관계를 모두 초기화해서 넣어야한다면,

실무에서 사용하고 계실 때 insert 쿼리 1개에, 부가적으로 프록시의 초기화로 select가 @xxToxx의 수 만큼 발생 하는게 성능적으로 이슈가 없으셨나요?

(기존 조회에서 N+1 문제와 비슷하거나 같다고 보여서..)

간단한 강의용 예제가 아닌 실무에서는 연관 관계가 더 복잡하고 많을텐데 어떻게 나누어 사용하시는지

이런 문제나 생각이 안 생길 만큼 설계 해야 하거나 다른 해결 방법이 있을까요?

JPA spring-boot spring java

답변 1

0

김영한

안녕하세요. seungyun9393님

질문을 좀 더 자세히 이해할 수 있도록 실제 동작하는 예제와 어떤 점이 문제가 되는지 자세히 남겨주시겠어요?

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

구글 드라이브 업로드 방법은 다음을 참고해주세요.

https://bit.ly/3fX6ygx

주의: 업로드시 링크에 있는 권한 문제 꼭 확인해주세요

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.

0

승윤

선생님 죄송합니다 ㅠㅠ,, 저는 엔티티에서

@OneToMany(mappedBy = "")

를 작성한 수만큼 엔티티에 insert시에 초기화해줘야하는줄알았습니다 ㅠㅠ

근데 연관관계메서드를 작성한 만큼만 초기화하면 되더라구요..

@JsonIgnore 이후 Internal Server Error가 발생하지 않습니다.

0

10

2

강의 관련 외 질문입니다.

0

85

2

SpringBoot4 + Hibernate7 모듈 등록 방법 공유

1

103

1

BeanCreationException

0

100

3

Update 후 UpdateMemberResponse 매핑할 때

0

60

1

트랜잭션을 사용 안 할 때 커넥션은 언제 가져오나요?

0

104

2

페이징 + 검색조건 관련해서 질문드립니다.

0

75

1

Query Dsl Q파일 질문입니다.

0

87

1

루트 쿼리라는것은

0

64

1

메서드를 분리하는 기준

0

73

1

findAllWithMemberDelivery 메서드 질문드립니다.

0

118

3

연관관계 매핑을 안 쓸 경우, 사용해야 하는 전략

0

94

2

fetch join과 영속화와 OSIV의 관계

0

94

2

Distinct 사용 전 결과에 대한 의문

0

121

2

레포지토리 계층에서의 트랜잭션에 대한 의문

0

63

1

영속성 컨텍스트 생명주기의 신기한 부분이 있습니다.

0

79

2

dto 필드 속 엔티티 여부

0

65

1

뷰템플릿 사용 시

0

83

2

Result 클래스 관련 질문

0

58

1

@PostConstruct 프록시 관련 질문드립니다

0

89

1

DTO 대신 Form 사용은 안되나요?

0

141

1

OSIV ON 상태일 때

0

101

1

fetch join VS fetch join 페이징 궁금증

0

191

2

양방향 연관관계 알아보는 법?

0

111

1