Spring

리뷰 등록 때 마다 별점 평균 계산하여을 엔티티의 칼럼에 넣어줘야할까? 아님 조회 때 마다 계산해서 조회해야할까?

MDanderson 2023. 4. 24. 04:20

스프링 부트의 카페 엔티티에 별점 칼럼을 추가하고 계속 업데이트하는 방식:
장점:

별점이 필요한 경우 바로 사용할 수 있어 응답 시간이 빠릅니다.
데이터베이스에 저장된 별점이 최신 상태이므로, 추가 연산이 필요 없습니다.
단점:

별점이 수정될 때마다 카페 엔티티를 업데이트해야 하므로, 데이터베이스에 부하가 발생할 수 있습니다.
실시간으로 별점을 계산하는 것이 아니므로, 최신 정보가 반영되지 않을 수 있습니다.


별점을 요청할 때마다 계산해서 가져오는 방식:

 


장점:

별점 정보가 항상 최신 상태로 유지됩니다.
데이터베이스에 별점 칼럼을 추가할 필요가 없으므로, 데이터베이스 구조가 단순해집니다.
단점:

별점을 요청할 때마다 별점을 계산해야 하므로, 서버의 부하와 응답 시간이 증가할 수 있습니다.
결론적으로, 어떤 방식을 사용할지는 프로젝트의 요구 사항과 성능 측면을 고려하여 결정해야 합니다. 예를 들어, 별점이 자주 업데이트되지 않고 최신 상태가 중요하지 않다면 첫 번째 방식을 사용하는 것이 좋습니다. 반대로, 실시간으로 최신 별점 정보가 필요하다면 두 번째 방식이 더 적합할 수 있습니다.