어떤 데이터를 캐싱해야할까?
캐싱은 모든 데이터를 무조건 적용하는 것이 아니라, 이점이 비용보다 클 때 적용해야 합니다.
일반적으로 다음 3가지 기준을 고려합니다.
- 데이터 변경 빈도
- 데이터 생성 비용
- 데이터 공유 가능성
캐싱 대상 선정 기준 정리
기준 |
캐싱 적합 |
캐싱 부적합 |
데이터 변경 빈도 |
- 변경이 드물고, 시간적 지역성이 높은 데이터 |
|
- 예: 공지사항 | - 변경이 잦아 정합성 관리가 어려움
- 캐시 무효화가 빈번해 히트율 저하
- 예: 실시간 주식 시세 |
| 데이터 생성 비용 | - 생성 비용이 큰 경우
- 조회 빈도가 낮아도 캐싱 가치 있음
- 예: 통계/집계 결과,
복잡한 SQL, 외부 API 호출 결과 | - 생성 비용이 작은 경우
- 캐싱 오버헤드가 더 클 수 있음
- 예: PK 기반 단건 조회, 단순 설정 파일 조회 |
| 데이터 공유 가능성 | - 모든 유저가 공통으로 사용하는 데이터
- 한 번 캐싱하면 전체 요청에서 재사용 가능
- 예: 카테고리 목록, 국가 코드, 통화 단위 | - 특정 유저만 사용하는 개인화 데이터
- 캐시 파편화로 효과 제한적
- 예: 개인 프로필, 로그인 세션 정보 |
모임 데이터는 캐싱 대상으로 적합할까?
1. 예상 트래픽 추정
구분 |
하루 총량 |
피크 타임(18~20시, 35%) |
분당 |
초당 |
모임 조회 |
약 650,000 건 |
약 227,500 건 |
약 2,000 회 |
약 35 회 |
모임 참가 |
약 65,500 건 (조회의 약 10%) |
약 22,7500 건 |
약 200 회 |
약 3 회 |
2. 분석
- 조회는 많지만 트래픽이 개별 모임에 집중되지 않고 분산됨
- 따라서 단일 모임 단위로 보면 조회/참가 빈도는 상대적으로 낮음
- 결론적으로 캐싱 효과가 크지 않아 오버엔지니어링 가능성 존재
3. 결론