Today I Lived/항해99
[TIL] 2021.08.13 [항해99 / 68일] sequelize.query
오늘은?
예외처리, 프런트분들의 요청사항 처리, 테스트, 예외처리, 테스트, 예외처리, 테스트
인기 게시글 refactoring
회고
너무 많이 떠먹여 준 장황한 쿼리문.
const issue_post = await sequelize.query(
"select free_board.post_id,\
free_board.view_count\
+ count(distinct free_comment.user_id) * 10\
+ count(distinct free_like.user_id) * 20\
as sum from free_board \
left join free_comment\
on free_board.post_id = free_comment.post_id\
left join free_like\
on free_board.post_id = free_like.post_id\
WHERE free_board.createdAt BETWEEN DATE_ADD(NOW(),INTERVAL -1 DAY ) AND NOW()\
group by free_board.post_id;",
{ type: Sequelize.QueryTypes.SELECT }
);
게시판 조회 시 sequelize.fn의 attributes 속성으로 조인시킨 두 테이블 (댓글, 좋아요) 의
댓글 수, 좋아요 수 COUNT 기능 사용하여 계산하려 했으나
조인되는 모델에 대한 distinct 옵션을 sequelize에서 지원하지 않음.
→ join시 include 되는 model에 대한 distinct 옵션을 사용하기 위해
raw query 사용이 낫겠다 판단하여 쿼리문으로 전환.
다 떠멱여 준 쿼리문을 잽싸게 적용시켰더니 후회하신다.
더 힘든게 오려나보다.
어려울수록 기대된다. 더 어려운 걸 하고 싶다.
기능 구현이 마무리되어감과 동시에, 프런트분들의 수정 요청사항에 대한 작업이 많다.
뭔가를 논의해가며 만들어 나가는 재미가 정말 좋다.
현업에서는 싸움이 잦다는데 왜지...?
오늘의 명언
희망은 가능성에 대한 정열이다. - 키에르케고르
'Today I Lived > 항해99' 카테고리의 다른 글
[TIL] 2021.08.15 [항해99 / 70일] Jenkins, MVC Pattern (2) | 2021.08.15 |
---|---|
[TIL] 2021.08.14 [항해99 / 69일] (3) | 2021.08.14 |
[TIL] 2021.08.12 [항해99 / 67일] 미쳤어요? (0) | 2021.08.12 |
[TIL] 2021.08.11 [항해99 / 66일] 열 두시간씩 오 년 (3) | 2021.08.11 |
[TIL] 2021.08.10 [항해99 / 65일] 저렇게 그지같이 검색하는데도 나오네 (0) | 2021.08.10 |
댓글