3줄 요약
토리의 리뷰 테이블은 PlaceReview
와 ReviewImage
두 개의 테이블로 구성되어 있다.
PlaceReview
테이블은 리뷰에 대한 기본적인 정보를 저장하고, ReviewImage
테이블은 해당 리뷰에 첨부된 이미지를 저장한다.
리뷰가 업데이트 되면 단순히 PlaceReview
테이블의 데이터가 수정되는 방식으로 운영되고 있다.
문제점: 리뷰 업데이트 시 이력 관리의 부재
기존의 테이블 구조에서는 리뷰가 수정될 경우 이전 데이터를 추적할 수 없다는 문제가 있었다.
리뷰의 내용이 변경되었을 때 어떤 부분이 어떻게 수정되었는지 확인할 수 없기 때문에, 특히 신고 기능을 도입할 때 리뷰의 변경 이력을 추적할 수 있는 기능이 필요하게 되었다.
스냅샷 테이블 도입, 리팩터링 필요성
리뷰의 수정 이력을 저장하고 추적할 수 있도록 PlaceReview
테이블의 스냅샷을 저장하는 새로운 테이블을 추가하였다.
이 스냅샷 테이블은 리뷰가 업데이트 될 때마다 현재 상태를 저장되도록 설계하였다.
스냅샷은 리뷰 업데이트가 일어날 때 추가 된다. 하지만 기존 리뷰 시스템이 이미 배포되어 운영 중인 상태이기 때문에, 이 기능이 추가 되어도 기존 기능이 정상적으로 동작해야 한다.
따라서 새로운 스냅샷 기능이 올바르게 동작하는지, 기존의 리뷰 업데이트 기능과 충돌하지 않는 지를 검증하는 테스트 코드가 필요하게 되었다.