조회수

대분류
오류 개선
기록일자
2024/04/22 15:37
소분류
게시판
일정 분류
최종 프로젝트
조회수 어뷰징에 대한 해결을 하려고 했습니다.
ip와 쿠키를 통해 한다고 하여 쿠키를 선택했습니다.
라이브러리로 cookies-next를 사용하여 쿠키를 생성하고 삭제하고 가져오고 하였습니다.
처음에는 쿠키가 없으면 조회수를 올리고 그다음에 쿠키를 1시간짜리를 만들어 주었습니다. 하지만 이 문제는 다른 게시물에는 조회 수가 올라가지 않는 문제가 있었습니다.
대안으로 쿠키에 uuid를 값으로 담아서 그걸 배열로 저장하여 length로 조회수를 보여주는 코드로 수정하였습니다. 하지만 팀원분이 그렇게 되면 너무 늘어나는 배열에 비효율적이라고 하셔서 고민을 하다 안되어서 튜터님께 여쭈어보았습니다.
해결 방안으로 cron, 다른 테이블 생성을 주셨습니다. 그렇게 cron를 선택하였습니다. 우선 쿠키 배열에 추가할 때 조회수 토탈을 따로 하여 +1을 주었습니다. 그런 다음 cron을 통해 1시간마다 배열을 비워주는 로직을 하려고 했습니다. 테스트로 1분이 지나면 배열이 비워졌는데 다른 시간대에도 하니까 똑같이 1분으로 되는 것이었습니다. 아무리 해도 1분밖에 안되어서 팀원분들에게 여쭤보았습니다. 데이터베이스의 cron을 끄고 sql 쿼리를 지우고 다시 cron을 키고 다시 만들고 해보니 제대로 작동이 되었습니다.