본문 바로가기
CS

조회 수 같은 빈번하게 변경되는 데이터에 대한 생각 정리

by 개미가되고싶은사람 2026. 4. 8.

만약 조회 수 같은 경우에는 어떻게 처리할까??
게시글을 관련 캐시 처리는 크게 보면 2가지 방법이 있습니다.
1. 게시글 PK만 캐싱하는 방법
2. 게시글 전체 데이터를 캐싱하는 방법

그럼 해당 질문에서 데이터 변경이 자주 일어나는 조회 수 같은 경우에는 어떤 방법이 더 적합할까?

1번이라고 생각할 수 있습니다. 하지만 위에 방법은 그닥 좋은 방법은 아닙니다.

왜냐하면 데이터가 빈번하게 일어나는 경우에는 DB로 처리하면 DB에 부담이 될 수 있기 때문입니다.
물론 RedisJSON로 캐싱할 수 있지만 해당 방법이 최고의 방법은 아닙니다. (해당 작업으로 조회 수를 처리하는 개발자가 모자란 개발자가 아닙니다. 조회 트래픽이 그렇게 많지 않으면 해당 방법으로 작업해도 상관 없습니다. 그리고 RedisJSON으로 작업하면 관리 및 개발 속도가 빨라지겠죠)

그럼 어떻게 해야할까?
조회 수를 캐시로 따로 관리해서 일정한 간격으로 배치 작업으로 DB에 업데이트하는 방법이 있습니다.

그럼 조회 수가 DB에 저장되기 전에 모종의 이유로 데이터가 유실되는 경우에는 어떻게 해야 될까??
redis 영속성 특징인 AOF, RDB를 활용하면 모든 쓰기 명령을 실시간으로 로그 파일에 기록합니다. 
서버가 꺼졌다 켜지면 이 로그를 읽어 데이터를 복구할 수 있습니다.

비지니스 관점으로 보면  돈과 관련된 문제라면 유실되는 것을 허용할 수 없겠지만, 
조회 수 같은 경우에는 유실되는 것을 조금은 허용할 수도 있습니다. (물론 이건 회사 핏에 따라가야 됨)
여기서 유튜브 같은 조회 수로 금전적인 이득을 얻을 수 있는 플랫폼은 안되겠지만


추가로 생각하면 좋은 점 외부의 요인이 아니라 릴리즈 업데이트로 서버를 꺼야 되는 경우에도 조회 수가 유실될 수 있습니다.
이런 경우 서버 종료 신호가 들어오면 즉시 종료하지 않고 Redis에 있는 조회수들 DB에 다 옮기고 종료하는 방법도 있습니다.