본문 바로가기
웹 개발

캐싱이란?

by umgu 2024. 7. 30.
반응형

 

1. 캐싱의 정의  

  • 데이터의 임시 저장소인 캐시(Cache)를 사용하여 자주 사용되거나 반복적으로 접근하는 데이터를 빠르게 접근할 수 있도록 하는 기술.

 

2. 캐싱의 활용

 

1) DNS 캐시 활용

  • 빠른 도메인 이름 해석 : DNS 조회 결과를 캐시에 저장하면, 같은 도메인에 대한 반복 요청 시 DNS 조회 시간을 절약할 수 있습니다.
    •  웹 페이지 로딩 속도를 향상시킵니다.
  • TTL(Time To Live) 설정 : 도메인 이름에 대한 TTL을 설정하여 얼마나 오랫동안 DNS 응답을 캐시에 저장할지 결정할 수 있습니다.
    • 적절한 TTL 설정을 통해 성능을 최적화할 수 있습니다.

 

2) 브라우저 캐시 활용

  • 정적 자원 캐싱 : HTML, CSS, JavaScript파일, 이미지와 같은 정적자원을 브라우저 캐시에 저장하여, 사용자 재방문 시 서버 요청 없이 로컬에서 빠르게 로드할 수 있습니다.
    • 서버 요청에 대한 부하를 줄이고 응답 속도를 높일 수 있습니다.
  • 캐시 제어 헤더 : Cache-Control, Expires 등의 HTTP 헤더를 설정하여 브라우저 캐시의 동작을 제어할 수 있습니다.
    • 캐시의 유효 기간과 조건을 정의할 수 있습니다.
  • ETag 및 Last-Modifie : 리소스가 변경되었는지 확인하기 위해 ETag와 Last-Modified 헤더를 사용합니다.
    • 브라우저가 서버에 조건부 요청을 보내어 리소스가 변경되지 않았다면 캐시 된 버전을 사용할 수 있습니다.

3) 프록시 캐시 활용

  • 프록시 서버 캐시 : 프록시 서버는 클라이언트와 서버 사이에 위치하여 자주 요청되는 자원을 캐시 할 수 있습니다.
    • 여러 사용자에게 동일한 자원을 제공할 때 서버 부하를 줄이고 응답 속도를 높일 수 있습니다.
  • CDN(Content Delivery Network) : 전세계에 분산된 서버 네트워크로, 사용자와 지리적으로 가까운 서버에 자원을 캐시합니다.
    • 웹사이트의 로딩 시간을 단축하고 글로벌 사용자에게 더 빠른 서비스를 제공할 수 있습니다.

4) 어플리케이션 레벨 캐시 활용

  • 서버 사이드 캐시 : 서버 측에서 데이터베이스 쿼리 결과나 복잡한 계산 결과를 캐시하여, 동일한 요청이 반복될 때 빠르게 응답할 수 있습니다.
    • Memcached나 Redis와 같은 인메모리 캐시 시스템을 사용할 수 있습니다.
  • 프레임워크 및 라이브러리 캐시 : 웹 프레임워크나 라이브러리에서 제공하는 캐시 기능을 활용하여 데이터나 뷰를 캐시할 수 있습니다.
    • 서버의 처리 속도를 높이고 사용자 응답 시간을 단축할 수 있습니다.

5) 서비스 워커 및 PWA(Progressive Web App) 캐시

  • 오프라인 기능 : 서비스 워커를 사용하여 네트워크 상태와 관계없이 애플리케이션을 사용할 수 있도록 필요한 자원을 캐시에 저장할 수 있습니다.
    • 이를 통해 PWA는 오프라인에서도 동작할 수 있습니다.
  • 백그라운드 동기화 : 서비스 워커를 통해 백그라운드에서 데이터를 동기화하여 사용자 경험을 향상시킬 수 있습니다.

 

3. 캐싱의 장단점 

 

1) 장점

  •   웹 애플리케이션 성능 최적화
    1. 캐시를 적절하게 활용하면 서버 부하를 줄입니다.
    2. 사용자에게 더 빠른 응답을 제공할 수 있습니다.
    3. 네트워크 비용을 절감 할 수 있습니다.

2) 단점

  • 구식 데이터가 제공되어 이로인해 예기치 않은 동작을 초래할 수 있습니다. ( ※ 캐시의 적절한 만료 관리와 일관성 유지가 중요합니다.)
    • ex) 데이터테이블에 새로운 항목을 추가 하였지만 캐싱된 데이터가 불러와져 항목을 추가 했는데 화면에 반영이 안된다고 엉뚱한 곳에서 원인을 찾을 수 있습니다.
반응형

댓글