redis 사용 일간, 주간 월간 조회수 구현
프로젝트 도중 일간, 조회수, 주간 조회수, 월간 조회수를 를 구현하고자 했습니다. 게시글을 누를때마다 post에 칼럼인 view카운트를 늘려주고 Views 테이블에 postid와 userid,게시글 클릭 한 시간 을 담으려고 했었는데 그렇게 되면 어뷰징과, 게시글 누를때마다 실시간으로 Insert 문이 발생돼서 효율적이지 않다고 생각돼 레디스에 Useremail 이 key이고 value가 유저가 그 날 하루에 조회한 postid가 담기게 했습니다 예를들어 song@naver.com으로 로그인해서 1,3,5,7,9,10 번을 조회하면 레디스에는 song@naver.com : 1_3_5_7_9_10 으로 구분자 _ 를 기준으로 해서 들어가게 했습니다. 24시가되면 스케쥴러가 돌면서 Views테이블로 각 게..
2024. 2. 25.
스프링 비속어 필터링 인터셉터
얼마전 포스팅을 할 때 비속어를 사용하면 * 표시로 바꾸게 개발을 해 보았습니다. service 단에서 처리하는것 보다 인터셉터로 구현하는게 더 효율적이라 생각하여 Intercepter를 사용했습니다. 만약 "시발" 이 들어오면 ** 으로 출력되고, "시1발" 등 구분자를 사용햇을때도 ** 로 표시되게 했습니다. 1.BadWords interface BadWords { String[] koreaWord1 = { "씨발", "병신", "ㅅㅂ", "ㅂㅅ", "닥쳐", "새끼", "시발", "개시발", "개씨발", "년", "년아", "개같은", "애미", "애비","naver","daum","google","com","net", "네이버","다음","구글" }; } 나쁜 단어들 담은 인터페이스를 선언 해 주..
2024. 2. 9.