캐싱(Caching)이란?
데이터나 계산 결과를 임시로 저장해두는 기술로, 동일한 데이터나 계산이 필요할 때
다시 계산하지 않고 저장된 결과를 재사용하는 최적화 방법이다.
캐싱이 없는 경우

캐싱이 있는 경우

캐시 없는 첫 호출



- 캐시 없는 API 호출 프로세스의 경우
API 호출과 응답 대기 시간으로 2.88초가 걸렸다.
캐시 설정 후 첫 호출



- 캐시 설정 후 첫 호출은 오히려 느린 3.97초가 걸렸다.
- 캐시 설정 후 첫 호출은 API 호출 프로세스와 더불어
캐시 설정 및 저장하는 프로세스를 거치기 때문이다.
캐시된 데이터 호출



- 반면에 캐시된 데이터를 호출하면 2.86ms, 캐시에서 바로 데이터를 가져오기 때문에
메모리에 접근하는 시간만 소요되어 약 1000배 빠른 응답시간을 보여준다.
캐싱의 주요 이점
- 속도 향상 : 동일한 작업을 반복하지 않아 빠른 응답 가능
- 비용 절감 : API 호출 같은 외부 리소스 사용 최소화
- 서버 부하 감소 : 반복적인 계산이나 요청 감소
랭체인에서는 InMemoryCache (메모리에 임시 저장)와
SQLiteCache (디스크에 영구 저장) 두 가지 캐싱 방식을 제공하여,
사용 사례에 따라 적절한 캐싱 전략을 선택할 수 있다.
InMemory Cache (RAM 기반 캐싱)

동작 방식

- 모든 데이터가 RAM에 직접 저장됨
해시 테이블 형태로 키-값 쌍 관리
메모리 주소 직접 접근 방식
데이터 저장 방식
- Ram에 데이터 저장
프로그램 종료시 데이터 소멸
빠른 접근 속도 (2.86ms)
설정 복잡도
최적 사용 사례
- 짧은 세션 동안의 반복 쿼리
실시간 데이터 처리
임시 데이터 캐싱
빠른 응답이 필수인 기능
장점
- 초고속 데이터 접근
- 시스템 리소스 최소사용
- 메모리 내 직접 참조로 지연 시간 최소화
- 중간 계층 없이 바로 데이터 접근
단점
- 프로그램 종료시 모든 데이터 손실
- RAM 용량 제한으로 대용량 캐시 제한적
- 서버 재시작시 캐시 초기화 필요
- 메모리 누수 가능성 존재
SQLite Cache (디스크 기반 캐싱)

동작 방식

- 데이터를 .db 파일로 저장
SQL 쿼리를 통한 데이터 접근
파일 시스템을 통한 영구 저장
데이터 저장 방식
- 디스크에 데이터 저장
프로그램 종료 후에도 데이터 유지
상대적으로 느린 접근 속도 (76.2ms)
설정 복잡도
- 디렉토리 생성 필요
데이터 베이스 경로 설정 필요
파일 시스템 접근 권한 필요
최적 사용 사례
- 장기간 캐시 데이터 보관 필요
서버 재시작 후에도 캐시 유지 필요
구조화된 캐시 데이터 관리
대용량 캐시 데이터 처리
장점
- 데이터 영구 보존
- 대용량 데이터 저장 가능
- 프로그램 재시작해도 데이터 유지
- 구조화된 데이터 관리 가능
단점
- 상대적으로 느린 접근 속도 (약 76.2ms)
- 디스크 I/O 병목 현상 발생 가능
- 파일 시스템 의존성
- 추가 설정 작업 필요
InMemoryCache 사용 사례
웹 서비스/애플리케이션
세션 데이터 (사용자 로그인 정보)
실시간 검색어 순위
실시간 주식/코인 시세 데이터
쇼핑몰 장바구니 정보
API 서버
API 요청 결과 임시 저장
자주 요청되는 API 응답 데이터
사용자 인증 토큰
실시간 트래픽 데이터
게임 서버
플레이어 현재 상태
게임 룸 정보
실시간 랭킹 데이터
채팅 메시지 버퍼
SQLiteCache 사용 사례
웹 서비스/애플리케이션
사용자 설정 정보
게시글/댓글 데이터
제품 카탈로그 정보
방문 기록 및 통계 데이터
모바일 앱
오프라인 모드 데이터
사용자 설정과 환경 설정
앱 사용 로그
다운로드된 콘텐츠
분석/통계 시스템
일/주/월간 통계 데이터
사용자 행동 분석 데이터
로그 데이터
캐시된 보고서 데이터
실제 서비스 예시
SNS 서비스의 경우
InMemoryCache
실시간 알림
현재 접속자 상태
최신 피드 데이터
실시간 메시지
SQLiteCache
사용자 프로필 정보
게시물 및 댓글 히스토리
미디어 파일 메타데이터
친구 관계 데이터
이커머스 플랫폼의 경우
InMemoryCache
상품 재고 상태
장바구니 정보
실시간 할인 정보
최근 본 상품
SQLiteCache
상품 상세 정보
주문 히스토리
리뷰 데이터
배송지 정보
AI/ML 서비스의 경우
InMemoryCache
모델 추론 결과
실시간 예측 데이터
API 응답 캐시
임시 계산 결과
SQLiteCache
학습된 모델 파라미터
사용자 피드백 데이터
장기 분석 결과
모델 메타데이터