You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
N명이 참여한 공연을 수정 시, N번의 Insert 쿼리와 Delete 쿼리가 각 발생하는 것을 볼 수 있습니다.
원인은 공연을 수정할 때, 수정해야 하는 아티스트가 기존 아티스트에 참여하는 것을 확인하기가 힘들어, 단순히 모두 삭제하고 재등록하는 방법으로 구현해서 그렇습니다.
공연을 추가하는 요청은 관리자 기능이고, 그렇게 빈번한 요청이 아니기에 크리티컬한 문제는 아니지만, 공연의 수정의 경우 빈도가 잦을 수 있기에 개선하면 좋을 것 같습니다.
개선 방향은 Stage 엔티티에 @OneToMany 관계의 List<StageArtist>를 둬서 기존 StageArtistRepository로 저장하던 것을, 변경 감지를 활용하여 엔티티로 저장하면 불필요한 쿼리도 줄어들고, 보다 도메인에 집중된 비즈니스 로직으로 변경할 수 있을 것 같습니다.
⏰ 예상 소요 시간
3시간
The text was updated successfully, but these errors were encountered:
✨ 세부 내용
Stage 수정 시 다음과 같은 쿼리가 발생합니다.
N명이 참여한 공연을 수정 시, N번의 Insert 쿼리와 Delete 쿼리가 각 발생하는 것을 볼 수 있습니다.
원인은 공연을 수정할 때, 수정해야 하는 아티스트가 기존 아티스트에 참여하는 것을 확인하기가 힘들어, 단순히 모두 삭제하고 재등록하는 방법으로 구현해서 그렇습니다.
공연을 추가하는 요청은 관리자 기능이고, 그렇게 빈번한 요청이 아니기에 크리티컬한 문제는 아니지만, 공연의 수정의 경우 빈도가 잦을 수 있기에 개선하면 좋을 것 같습니다.
개선 방향은
Stage
엔티티에@OneToMany
관계의List<StageArtist>
를 둬서 기존StageArtistRepository
로 저장하던 것을, 변경 감지를 활용하여 엔티티로 저장하면 불필요한 쿼리도 줄어들고, 보다 도메인에 집중된 비즈니스 로직으로 변경할 수 있을 것 같습니다.⏰ 예상 소요 시간
3시간
The text was updated successfully, but these errors were encountered: