ALL-CON Refactoring 7일차 - 티켓 오픈 임박예정 콘서트 정보만 보여주기
⚒️ Refactoring
-
현재의 콘서트 정렬 방식은 조회수순, 임박예정순, 최신순 3가지이다.
그 중, 임박예정순 경우 티켓오픈일이 가까운 순으로 정렬을 하고 있는데 모든 콘서트가 아닌, 티켓팅이 가능한 콘서트들로만 추려서 보여주는 방식으로 바꿔보려 한다.
1. 보완이 필요한 사항
-
현재는 티켓 오픈이 임박한 콘서트 외에도 너무 많은 콘서트 정보들이 불필요하게 보여지고 있다는 피드백을 전달 받았다.
현재 기준으로 티켓팅이 가능한 상태의 콘서트 데이터들로만 추려서 보여지게끔 바꾸어보려 한다.
2. 문제 해결
2-1. Sequelize Op 연산자를 이용한 데이터 추출
-
우선 콘서트 DB 정보중
open_date
는 아래와 같이 날짜객체로 저장하고 있다.그렇기에 티켓 오픈일자가 지났는지 여부를 비교하려면 같은 날짜 객체끼리 비교해야 유의미한 비교 결과가 나온다.
-
비교를 위해서는
Sequelize
에서where
조건문을 통하여 필요한 데이터를 추릴 수 있으며,Sequelize.Op
를 사용하면 보다 더 복잡한 조건문을 사용할 수 있다.[Op.gte]: 6, // >= 6
-
Sequelize
공식 문서를 통해 위 연산자를 사용하였으며 날짜간의 대소 비교 또한 적절히 사용이 가능하였다.
3. 결과
-
수정된 Controller 부분은 다음과 같다.
-
Op.gte
메소드로 티켓 오픈일이 임박한 콘서트 들로만 추려서 데이터 값을 보내주고 있다.정렬 또한 1순위는 임박예정순으로 보여지며, 티켓 오픈일시가 같은 콘서트 같은 경우에는 2순위로 조회수 순으로 정렬을 해주고 있다.
-
티켓 오픈일이 지난 콘서트들은 목록에서 보여지지 않기 때문에 임박이 예정된 콘서트 정보만 볼 수 있게 되었다.
-
매번 조건식을 작성 할 때 마다
Sequelize
공식 문서에서 조건 비교를 위한Op
연산자에 대해 검색하여 쓰고 있다.이번 기회를 빌어 학습 한 내용을 정리한 뒤 블로그에 남겨보도록 해야겠다.