Search
Duplicate
⬆️

조회수 증가 기능 구현

유형
작업 및 에러
Date
2023/02/09 → 2023/02/10
프로젝트
세미 프로젝트
로그인 기능을 추가하려 했으나.. 여러가지 오류로 시간이 지체되어 재현님이 구현해주셨기 때문에 나는 다른 기능을 추가하려고 했다. 도움 받지 않고 혼자서 기능을 구현해보고 싶어서 그나마 쉬워 보이는 조회수 증가 기능을 만들어 보려고 했지만 결론부터 말하자면 실패했다.. 하지만 다음 프로젝트를 위해서 오답 노트를 만들어 보고자 한다.
조회수 증가 기능
(1) Board
Board 클래스에 countVisit 이 없었는데 조회수 기능을 넣기 위해
Long 타입으로 추가하였다.
int, long 이 아닌 Long 타입을 쓰는 이유는
값이 설정되지 않는 경우, null 값을 넣기 위함이다.
int, long 의 경우 기본형인 (Primitive Type)이기 때문에 값이 없는 경우 0 이 설정돼 있다.
그 후, 하단부에 update 를 하기 위한 updateVisit 을 생성하였다.
(2) service
BoardService 에 update 를 구현했다.
(3) controller
Controller 에서 id를 넘겨주고, 해당 Id 가 없는 경우 Exception 을 통해 에러를 터뜨리고,
존재하는 ID 인 경우 방금 위에서 만들었던 updateVisit 을 호출해서 조회수를 업데이트 해준다.
@PathVariable을 통해 id 값에 따라 페이지 URL이 설정되도록 했다.
정리: 현재 내가 클릭한 게시글의 번호(id)를 이용해서 해당하는 board 를 찾고,
그 board 의 countVisit(조회수)의 값을 가져온다. 방문할 때마다 조회수를 +1 씩 증가시키고, 증가시킨 값을 dto 에 담아서 updateVisit 에 반환한다. 그렇게 되면 boardService 에서 검증한 뒤, 값을 update 시켜준다. 이렇게 crud 를 만들었다.