TIL-221031- 다시 모델 설계 하기
이렇게 하지 마라 절망편
오늘 같이 공부하는 다른 분의 TIL을 보고 깨달았다. 나는 모델 설계를 DB에 맞춰서 하고 있었던 것 같다. h2 데이터베이스를 사용하면
@Entity로 지정된 모델의 속성값에는 LIST나 배열이 들어 갈 수가 없는데 이것 떄문에 필드 값으로 LIST를 사용하지 않기 위해서
뻘짓들을 많이 했다.
Product라는 모델에는 리뷰, 이미지, 상품 문의 같은 여러개의 요소가 들어가야 하는 필드값들이 있는데 이런 리스트가 필드로 들어가면
h2데이터베이스에서 사용을 할 수 가 없어서 이 친구들 모두 field값에 productId를 가지는 이상한 형태가 되었다.
그래서 OneToMany를 사용해서 아무래도 전체적으로 리팩토링이 들어가야 할 것 같다.
이런 징조가 든 건 찜하기 기능을 구현하면서 인데 아무리 생각해도 찜한 목록을 찾는 것이 테스트를 작성하는데 이상하다는 생각이 들어서 이다.
이게 뭘 하고 싶은건지 테스트를 통해 알 수 없다. 내가 만들었지만 뭔지 알아보기가 힘들다.
대충 테스트하고 싶었던 내용은 상품이 wishes를 가지고 있는데 찜하기 버튼을 누르면 백엔드에서 wish라는 모델이
유저가 상품을 찜하고 있으면 상품의 찜하기 숫자가 -1이 되고
반대의 경우는 찜하기 숫자가 +1 이 되는 건데
테스트를 다시 보니 나도 뭘 할려는 건지 알 수가 없는 상황이 발생했고 문제를 인식하게 됬다. 프론트엔드에서도 props로 전달해주는 값들이 너무 많았어서 조금 이상하기는 했다