왜 몰리는지부터 푸는 결
캐시 문제 중 제가 가장 신경 쓰는 건 캐시가 한꺼번에 만료될 때입니다. 인기 데이터의 캐시가 동시에 만료되면, 그 순간 몰린 요청이 전부 원본으로 한꺼번에 쏟아져 원본이 휘청입니다. 원인은 단순합니다. 다들 같은 시각에 만료되게 둬서입니다. 그래서 대응도 거기 맞춥니다.
만료 시각에 약간씩 무작위 차이를 주어 한꺼번에 안 풀리게 하고, 원본을 새로 채우는 동안에는 하나만 채우게 막아 나머지가 줄 서지 않게 합니다. 다만 무작위 차이는 데이터가 의도보다 조금 더 오래 살아 있는 대가가 있어, 신선도가 덜 중요한 데이터에만 씁니다. 학부 프로젝트에서 조회가 몰리며 원본이 느려졌을 때, 캐시 자체보다 만료가 겹친 게 진짜 원인이었던 경험이 이 접근의 근거입니다. 지금도 캐시를 볼 땐 언제 동시에 비는가부터 봅니다.