개발일지(일간)
23년 02월 22일
move2
2023. 2. 23. 02:07
전체적인 api들의 오류를 수정했다.
아무래도 나 혼자 쓴 코드들이 아니기 때문에 어디서 오류가 터지는지 알기 쉽지 않았는데, 사소한것도 있었고 아닌것도 있었다.
그리고 fetch join을 잘못 써서 쿼리가 먹지 않는 문제도 있었다.
fetch join은 fetchType = Lazy로 설정된 연관관계의 객체를 불러올때 N+1 현상이 발생해 쿼리가 의도한것보다 많이 날아가는 현상을 방지하기 위해서 쓰는데, 나는 하나의 객체만 가지고 있는데도 Lazy를 건 객체가 있어서 fetch join을 해야한다고 생각하고 fetch join을 걸어놨었는데 에러가 떴다.
이 문제의 해결책은 fetch join을 하지 않으면 되는것인데, 그렇게 한다면 N+1문제가 다시 발생하게 된다.
하지만 내가 fetch join을 걸어준 객체는 @ManyToOne을 걸어준 객체, 즉 N이 발생될 여지가 없는 객체이므로 아무런 문제가 없다.
그동안 fetch join에 대한 이해가 부족했었던것 같다.
지금도 사실 내 해석이 맞는건지 헷갈리는데, 프로젝트가 끝나면 좀 더 공부해보아야 할 것 같다.