#개념

캐싱(Caching)은 자주 요청되거나 반복적으로 사용되는 데이터를 임시 저장소에 보관하여 응답 속도를 향상시키고 시스템의 부하를 줄이는 핵심적인 성능 최적화 기법이다. 캐시는 일반적으로 메모리(RAM)와 같은 고속 저장소를 사용하며, 데이터베이스, 원격 서버, 대규모 연산 결과에 대한 접근 비용을 최소화하는 역할을 한다. 캐싱을 효과적으로 설계하면 네트워크 지연(latency)을 줄이고 처리량(throughput)을 높일 수 있으며, 전체 시스템의 안정성과 확장성을 동시에 확보할 수 있다.
캐싱의 근본적인 동작 원리는 지역성(locality) 개념에 기반한다. 지역성은 데이터 접근 패턴이 무작위적이지 않고 일정한 경향을 가진다는 성질을 의미한다. 시간 지역성은 최근에 접근한 데이터가 다시 접근될 가능성이 높다는 특성을 의미하며, 공간 지역성은 특정 데이터가 사용될 경우 그와 인접한 데이터 또한 함께 사용될 가능성이 높다는 특성을 의미한다. 이러한 지역성 덕분에 비교적 작은 캐시 공간만으로도 전체 성능을 크게 향상시킬 수 있다.
캐싱이 제공하는 가장 직접적인 효과는 응답 시간 단축이다. 원본 데이터가 데이터베이스, 데이터 레이크, 외부 API와 같이 접근 비용이 큰 저장소에 위치할 경우, 매 요청마다 이를 조회하는 것은 높은 지연과 부하를 유발한다. 캐시에 데이터가 저장되어 있으면 동일한 요청에 대해 즉시 응답할 수 있으며, 이는 사용자 경험의 개선으로 이어진다. 동시에 데이터베이스 I/O와 네트워크 트래픽이 감소하여 시스템 전반의 자원 사용 효율이 향상된다.
캐싱은 적용되는 위치에 따라 목적과 효과가 달라지지만, 모두 느린 접근을 빠른 접근으로 대체한다는 동일한 원리를 따른다. 사용자 단말에서 네트워크, 서버, 연산 계층으로 이동할수록 캐싱은 점점 더 시스템 내부의 핵심 경로에서 동작하게 된다. 아래는 브라우저 캐시부터 모델 추론 연산 캐시까지를 하나의 흐름으로 정리한 계층별 캐싱 개요이다.
계층별 캐시
  1. 브라우저 캐시: 사용자의 디바이스에 HTML, CSS, JavaScript, 이미지, API 응답 등을 저장하여 네트워크 요청을 줄이고 페이지 로딩 속도를 향상시킨다.
  2. CDN 캐시: 사용자와 지리적으로 가까운 서버에 콘텐츠를 저장하여 원본 서버 접근을 최소화하고 전 세계 사용자에게 낮은 지연 시간으로 데이터를 제공한다.
  3. 프록시/엣지 캐시: 요청과 서버 사이에서 API 응답이나 정적 데이터를 캐싱하여 트래픽을 분산시키고 백엔드 서버의 부하를 완화한다.
  4. 서버 애플리케이션 캐시: 애플리케이션 내부 또는 인메모리 저장소에 데이터베이스 쿼리 결과나 계산 결과를 저장하여 요청 처리 시간을 단축한다.
  5. 데이터베이스 캐시: 자주 조회되는 데이터 블록, 인덱스, 쿼리 결과를 메모리에 유지하여 디스크 I/O를 줄이고 데이터 접근 속도를 향상시킨다.
  6. 데이터 전처리 캐시: 반복적으로 사용되는 정제된 데이터나 특징 데이터를 저장하여 데이터 파이프라인의 재계산 비용을 줄인다.
  7. 특징(feature) 캐시: 머신러닝 모델 입력으로 사용되는 특징 값을 캐싱하여 실시간 예측 시 특징 생성 지연을 최소화한다.
  8. 모델 추론 결과 캐시: 동일한 입력에 대해 계산된 모델 예측 결과를 저장하여 불필요한 모델 실행을 방지하고 응답 속도를 극대화한다.
대규모 데이터 처리와 머신러닝 기반 시스템에서 캐싱은 특히 중요한 역할을 한다. 데이터 전처리 과정에서는 동일한 데이터셋이나 특징(feature)이 반복적으로 조회되는 경우가 많으며, 이를 캐싱하면 불필요한 데이터 로딩을 방지할 수 있다. 머신러닝 예측 시스템에서는 동일한 입력에 대해 동일한 출력이 반복적으로 요청되는 상황이 자주 발생한다. 이때 모델 추론 결과를 캐시에 저장하면 모델을 다시 실행하지 않고도 즉시 결과를 제공할 수 있어 연산 비용과 응답 시간이 크게 감소한다. 추천 시스템, 검색 시스템, 실시간 분석 시스템에서는 이러한 캐싱 전략이 성능의 핵심 요소로 작용한다.
캐싱 전략
  • 지연 로딩(Lazy Loading)은 요청이 발생할 때만 데이터를 캐시에 적재하는 방식. 초기 메모리 사용량을 줄일 수 있으나, 첫 요청 시에는 캐시 미스가 발생한다.
  • 선행 로딩(Eager Loading)은 시스템 시작 시 자주 사용될 데이터를 미리 캐시에 적재하는 방식. 초기 비용은 크지만 안정적인 응답 속도를 제공한다.
  • 쓰기 관통(Write-through): 캐시에 쓰기가 발생할 때 원본 저장소에도 동시에 반영하여 데이터 일관성을 유지하는 방식.
  • 쓰기 지연(Write-back): 캐시에 먼저 데이터를 기록한 뒤 이후에 비동기적으로 원본 저장소에 반영하여 쓰기 성능을 향상하는 방식. 장애 시 데이터 유실 문제가 발생할 수 있다.
캐시 공간은 제한적이기 때문에 캐시 교체 정책(eviction policy) 또한 중요하다. LRU(Least Recently Used)는 가장 오랫동안 사용되지 않은 데이터를 제거하는 방식이며, LFU(Least Frequently Used)는 사용 빈도가 가장 낮은 데이터를 제거하는 방식이다. 접근 패턴에 따라 적절한 정책을 선택하지 않으면 캐시 효율이 급격히 저하될 수 있다.
캐싱에서 반드시 고려해야 할 문제 중 하나는 데이터 일관성(consistency)이다. 원본 데이터가 변경되었음에도 캐시가 갱신되지 않으면 오래된 데이터가 제공될 수 있다. 이를 방지하기 위해 TTL(Time-To-Live)을 설정하여 일정 시간이 지나면 캐시를 자동으로 무효화하거나, 데이터 변경 이벤트 발생 시 캐시를 명시적으로 삭제하거나 갱신하는 캐시 무효화(cache invalidation) 전략을 적용한다. 특히 실시간성이 중요한 분석 시스템에서는 캐시 유지 시간이 지나치게 길어질 경우 결과의 신뢰성이 저하될 수 있으므로 신중한 설계가 필요하다.
또한 캐싱은 캐시 스탬피드(cache stampede)와 같은 부작용을 유발할 수 있다. 이는 캐시 만료 시점에 다수의 요청이 동시에 원본 저장소로 몰려 과부하를 발생시키는 현상이다. 이를 완화하기 위해 캐시 갱신을 순차적으로 수행하거나, 만료 이전에 백그라운드에서 데이터를 미리 갱신하는 전략이 사용된다.
결론적으로 캐싱은 성능 최적화, 비용 절감, 시스템 안정성을 동시에 달성할 수 있는 강력한 기법이다. 그러나 캐싱은 만능 해결책이 아니며, 데이터 변경 빈도, 접근 패턴, 최신성 요구 수준을 종합적으로 고려하지 않으면 오히려 복잡성과 오류 가능성을 증가시킬 수 있다. 캐싱을 효과적으로 활용하기 위해서는 무엇을 캐싱할지, 얼마나 오래 유지할지, 언제 갱신할지에 대한 명확한 기준을 바탕으로 전략적으로 설계하는 것이 중요하다.

#관련 용어

지연 시간
데이터가 송수신되는 전체 경로에서 발생하는 시간
캐시 적중
요청한 데이터가 캐시에 존재하여 빠르게 반환되는 경우
캐시 미스
요청한 데이터가 캐시에 존재하지 않아 원본 저장소나 연산을 수행해야 하는 경우
캐시 무효화
본 데이터 변경 시 캐시 데이터를 삭제하거나 갱신하는 전략
LRU
가장 오랫동안 사용되지 않은 캐시 데이터를 우선적으로 제거하는 캐시 교체 정책
LFU
사용 빈도가 가장 낮은 캐시 데이터를 우선적으로 제거하는 캐시 교체 정책
TTL
캐시 데이터가 유효하게 유지될 수 있는 최대 시간을 의미하는 만료 시간

#직무 연관도

DA
Data Analyst
보통
반복적인 데이터 조회를 줄여 분석 환경의 응답성을 개선한다
DS
Data Scientist
높음
대규모 데이터 처리와 모델 추론 파이프라인에서 연산 비용을 줄이고 실험 효율을 높인다
DE
Data Engineer
밀접
웹 서비스, API 서버, 분산 시스템의 성능 최적화와 안정성 확보에 핵심적인 역할을 한다

#사용 사례

모든 산업 분야
개요
캐싱은 자주 요청되거나 반복적으로 사용되는 데이터를 임시 저장소에 보관하여 시스템 성능을 향상시키고 부하를 줄이는 핵심 기술이다. 대규모 트래픽 환경과 머신러닝 기반 시스템에서 필수적으로 활용된다.
사례
메타(Meta)는 대규모 광고 시스템에서 자체 캐싱 프레임워크(ERCache)를 통해 사용자 임베딩 및 모델 결과를 캐싱함으로써, 유효한 데이터가 있을 경우 복잡한 추론 과정을 생략해 컴퓨팅 리소스 비용을 최대 64%까지 절감하고 있다.

#참고 자료

#추천 포스트

© 2024 diki All rights reserved.