프로젝트 리팩토링

흑이·2022년 1월 18일
0

영화 메인 및 리스트 페이지 API

  • 초기 구현 단계에서는 필터링 기능, 예매율 등을 고려하지 않고 모델링을 했기 때문에(테이블에 상영 마감일, 예매율 컬럼을 추가하지 않았다)

  • 단순하게 API를 구현하였다...

  • 프론트로부터 개봉작만 보기 버튼을 클릭하면 released 키에 true를 받도록 협의하였다.

  • movies에 Movie 테이블의 id값 오름차순으로(order_by) 페이지에 나타낼 영화 목록의 기준을 offset, limit으로 정하도록 하였다.

  • 개봉작 기준은 datetime.today()로 오늘 날짜를 구하여, 영화의 개봉일이 오늘 날짜보다 같거나 과거라면 개봉작으로 필터링 되도록 하였다.

리팩토링 후 결과

  • Q객체를 사용하여 여러 조건에 대해 코드를 길게 사용할 필요가 없어지게 되었다.
  • annotate를 사용하여 테이블에 예매율을 계산한 컬럼을 추가하였다.
  • 해당 컬럼을 이용하여 단순 id로만 필터링 되던 영화 리스트를 예매율 순으로 리턴될 수 있도록 구현할 수 있었다.

0개의 댓글