오늘 한 작업 중에 테마 추천 이라는 기능이 있었다. 예를 들어 "혼자 보기 좋은 영화 10선 모음" 이라는 테마 안에 각 컨텐츠들이 들어 있는 것이다.
사실 초기 기획을 할 때는 넣을까 말까 고민 하다가 흐지부지 됐던 기능인데 몇 주 전에 결국 넣기로 하였고, 그래서인지 설계가 제대로 되어 있지 않았다. 처음에는 테마라는 Theme 엔티티를 만들 때 각각의 Theme 이 여러 개의 Content 들의 id 를 가지고 있으면 되겠지? 라고 생각하고 작업을 진행하다가 api 를 생성하는 부분에서 막히게 되었다. 컨텐츠들의 아이디를 Set 형태로 여러개 가지고 있으면 어떻게 DB 를 조회할 지, 또 나중에 어떤 한 컨텐츠를 삭제할 일이 있을 때 Theme 에서 먼저 아이디를 삭제하고 컨텐츠를 삭제 해야 하는지 등등.. 초기에 미리 생각해놔야 하는 것들이 되어 있지 않아 작업 진행률을 더디게 만들었다.
이런 저런 생각을 하다가 결국 각각의 컨텐츠들이 Theme 의 id 를 가지고 있는 게 나을 것 같다는 생각이 들었고 현재 그렇게 작업중이다. 나중에 또 구조를 바꾸게 될 수도 있지만 테스트 코드가 작성되어 있으니 그렇게까지는 걱정되진 않는다. (이게 바로 메가테라에서 강조하는 TDD 의 힘?) 이제 딱 일주일밖에 안남은 시점이다. 고민보단 일단 go! 얼른 다시 작업하러 가자...
'TIL' 카테고리의 다른 글
Plmography 프로젝트 작업 로그 #45 - URI 설계 (23.02.04 TIL) (0) | 2023.02.04 |
---|---|
Plmography 프로젝트 작업 로그 #44 - JPA 에서 상위 n 개 데이터 찾을 때 (23.02.03 TIL) (1) | 2023.02.03 |
Plmography 프로젝트 작업 로그 #42 - 배열로 된 데이터 서버로 보내기 (23.02.01 TIL) (0) | 2023.02.01 |
Plmography 프로젝트 작업 로그 #41 - JPQL 에서 exists 문법 사용하기 (23.01.31 TIL) (0) | 2023.01.31 |
Plmography 프로젝트 작업 로그 #40 - 탐색 페이지 필터링 구현 (23.01.30 TIL) (0) | 2023.01.30 |
댓글