#개념
캐싱(Caching)은 자주 요청되거나 반복적으로 사용되는 데이터를 임시 저장소에 보관하여 응답 속도를 향상시키고 시스템의 부하를 줄이는 핵심적인 성능 최적화 기법이다. 캐시는 일반적으로 메모리(RAM)와 같은 고속 저장소를 사용하며, 데이터베이스, 원격 서버, 대규모 연산 결과에 대한 접근 비용을 최소화하는 역할을 한다. 캐싱을 효과적으로 설계하면 네트워크 지연(latency)을 줄이고 처리량(throughput)을 높일 수 있으며, 전체 시스템의 안정성과 확장성을 동시에 확보할 수 있다.캐싱의 근본적인 동작 원리는 지역성(locality) 개념에 기반한다. 지역성은 데이터 접근 패턴이 무작위적이지 않고 일정한 경향을 가진다는 성질을 의미한다. 시간 지역성은 최근에 접근한 데이터가 다시 접근될 가능성이 높다는 특성을 의미하며, 공간 지역성은 특정 데이터가 사용될 경우 그와 인접한 데이터 또한 함께 사용될 가능성이 높다는 특성을 의미한다. 이러한 지역성 덕분에 비교적 작은 캐시 공간만으로도 전체 성능을 크게 향상시킬 수 있다.캐싱이 제공하는 가장 직접적인 효과는 응답 시간 단축이다. 원본 데이터가 데이터베이스, 데이터 레이크, 외부 API와 같이 접근 비용이 큰 저장소에 위치할 경우, 매 요청마다 이를 조회하는 것은 높은 지연과 부하를 유발한다. 캐시에 데이터가 저장되어 있으면 동일한 요청에 대해 즉시 응답할 수 있으며, 이는 사용자 경험의 개선으로 이어진다. 동시에 데이터베이스 I/O와 네트워크 트래픽이 감소하여 시스템 전반의 자원 사용 효율이 향상된다.캐싱은 적용되는 위치에 따라 목적과 효과가 달라지지만, 모두 느린 접근을 빠른 접근으로 대체한다는 동일한 원리를 따른다. 사용자 단말에서 네트워크, 서버, 연산 계층으로 이동할수록 캐싱은 점점 더 시스템 내부의 핵심 경로에서 동작하게 된다. 아래는 브라우저 캐시부터 모델 추론 연산 캐시까지를 하나의 흐름으로 정리한 계층별 캐싱 개요이다.계층별 캐시
- 브라우저 캐시: 사용자의 디바이스에 HTML, CSS, JavaScript, 이미지, API 응답 등을 저장하여 네트워크 요청을 줄이고 페이지 로딩 속도를 향상시킨다.
- CDN 캐시: 사용자와 지리적으로 가까운 서버에 콘텐츠를 저장하여 원본 서버 접근을 최소화하고 전 세계 사용자에게 낮은 지연 시간으로 데이터를 제공한다.
- 프록시/엣지 캐시: 요청과 서버 사이에서 API 응답이나 정적 데이터를 캐싱하여 트래픽을 분산시키고 백엔드 서버의 부하를 완화한다.
- 서버 애플리케이션 캐시: 애플리케이션 내부 또는 인메모리 저장소에 데이터베이스 쿼리 결과나 계산 결과를 저장하여 요청 처리 시간을 단축한다.
- 데이터베이스 캐시: 자주 조회되는 데이터 블록, 인덱스, 쿼리 결과를 메모리에 유지하여 디스크 I/O를 줄이고 데이터 접근 속도를 향상시킨다.
- 데이터 전처리 캐시: 반복적으로 사용되는 정제된 데이터나 특징 데이터를 저장하여 데이터 파이프라인의 재계산 비용을 줄인다.
- 특징(feature) 캐시: 머신러닝 모델 입력으로 사용되는 특징 값을 캐싱하여 실시간 예측 시 특징 생성 지연을 최소화한다.
- 모델 추론 결과 캐시: 동일한 입력에 대해 계산된 모델 예측 결과를 저장하여 불필요한 모델 실행을 방지하고 응답 속도를 극대화한다.
- 지연 로딩(Lazy Loading)은 요청이 발생할 때만 데이터를 캐시에 적재하는 방식. 초기 메모리 사용량을 줄일 수 있으나, 첫 요청 시에는 캐시 미스가 발생한다.
- 선행 로딩(Eager Loading)은 시스템 시작 시 자주 사용될 데이터를 미리 캐시에 적재하는 방식. 초기 비용은 크지만 안정적인 응답 속도를 제공한다.
- 쓰기 관통(Write-through): 캐시에 쓰기가 발생할 때 원본 저장소에도 동시에 반영하여 데이터 일관성을 유지하는 방식.
- 쓰기 지연(Write-back): 캐시에 먼저 데이터를 기록한 뒤 이후에 비동기적으로 원본 저장소에 반영하여 쓰기 성능을 향상하는 방식. 장애 시 데이터 유실 문제가 발생할 수 있다.
#관련 용어
지연 시간
데이터가 송수신되는 전체 경로에서 발생하는 시간
요청한 데이터가 캐시에 존재하여 빠르게 반환되는 경우
요청한 데이터가 캐시에 존재하지 않아 원본 저장소나 연산을 수행해야 하는 경우
본 데이터 변경 시 캐시 데이터를 삭제하거나 갱신하는 전략
가장 오랫동안 사용되지 않은 캐시 데이터를 우선적으로 제거하는 캐시 교체 정책
사용 빈도가 가장 낮은 캐시 데이터를 우선적으로 제거하는 캐시 교체 정책
캐시 데이터가 유효하게 유지될 수 있는 최대 시간을 의미하는 만료 시간
#직무 연관도
DAData Analyst보통
반복적인 데이터 조회를 줄여 분석 환경의 응답성을 개선한다
DSData Scientist높음
대규모 데이터 처리와 모델 추론 파이프라인에서 연산 비용을 줄이고 실험 효율을 높인다
DEData Engineer밀접
웹 서비스, API 서버, 분산 시스템의 성능 최적화와 안정성 확보에 핵심적인 역할을 한다
#사용 사례
캐싱은 자주 요청되거나 반복적으로 사용되는 데이터를 임시 저장소에 보관하여 시스템 성능을 향상시키고 부하를 줄이는 핵심 기술이다. 대규모 트래픽 환경과 머신러닝 기반 시스템에서 필수적으로 활용된다.
메타(Meta)는 대규모 광고 시스템에서 자체 캐싱 프레임워크(ERCache)를 통해 사용자 임베딩 및 모델 결과를 캐싱함으로써, 유효한 데이터가 있을 경우 복잡한 추론 과정을 생략해 컴퓨팅 리소스 비용을 최대 64%까지 절감하고 있다.
#참고 자료
#추천 포스트
© 2024 diki All rights reserved.