Laravel facade와 Eloquent 모델의 PHPDoc 파일을 생성해 PhpStorm 같은 IDE에서 정확한 자동 완성을 지원합니다.
mike-bronner/laravel-model-caching
Eloquent 모델과 관계 쿼리를 자동으로 캐싱하고 모델이 변경되면 캐시를 무효화하는 Laravel 패키지입니다.
- 스타
- 2,378
- 포크
- 231
- 열린 이슈
- 2
- 마지막 커밋
- 3일 전
어떤 프로젝트인가요?
Model Caching for Laravel은 Eloquent 모델에 Cachable trait을 추가해 쿼리 결과, eager-loaded 관계, 집계 결과를 별도의 캐시 키를 지정하지 않고 애플리케이션 캐시에 저장합니다. 모델이 생성, 수정 또는 삭제되면 관련 캐시 항목이 자동으로 비워지며, belongsToMany 관계의 pivot 변경도 처리합니다.
이 패키지는 Redis, Memcached, APC, DynamoDB 캐시 스토어와 호환되며, 전역 또는 모델별 TTL, 쓰기가 잦은 모델의 무효화를 조절하는 쿨다운 기간, 캐시를 사용할 수 없을 때 데이터베이스로 대체하는 옵션, 테넌트별 캐시 접두사 등을 제공합니다. inRandomOrder() 또는 행 잠금을 사용하는 쿼리는 캐싱되지 않으며, trait을 사용하지 않는 관련 모델이 있으면 상위 모델 쿼리도 캐싱되지 않습니다.
PHP 8.3 이상과 Laravel 12 또는 13이 필요합니다.
핵심 기능
- 01trait 또는 기본 모델을 통해 Eloquent 쿼리, eager load, 집계 결과를 캐싱합니다
- 02생성, 수정, 삭제 및 pivot 변경 시 관련 캐시 항목을 자동으로 무효화합니다
- 03Redis, Memcached, APC, DynamoDB 캐시 스토어를 지원합니다
- 04전역 및 모델별 캐시 TTL 설정을 제공합니다
- 05잦은 쓰기로 인한 무효화를 줄이는 쿨다운 기간을 제공합니다
- 06캐시 백엔드가 중단되면 데이터베이스에 직접 쿼리하도록 대체할 수 있습니다
활용 사례
- 반복되는 Eloquent 쿼리가 많은 읽기 중심 Laravel 페이지의 속도를 높일 때
- Cache::remember 및 forget 로직을 직접 작성하지 않고 모델 데이터를 캐싱할 때
- 테넌트별 캐시 격리가 필요한 멀티테넌트 Laravel 앱
- AWS에서 DynamoDB를 관리형 캐시 스토어로 사용하는 애플리케이션
빠른 시작
- 1
Composer로 패키지를 설치합니다
composer require mike-bronner/laravel-model-caching - 2
모델이 상속하는 기본 모델에 Cachable trait를 추가합니다
- 3
필요한 경우 설정 파일을 게시합니다
php artisan modelCache:publish --config
사용 전 알아둘 점
- PHP 8.3 이상 및 Laravel 12 또는 13이 필요합니다.
- Array, File, Database 캐시 드라이버는 지원되지 않습니다.
- Cachable을 사용하지 않는 모델의 관계를 eager load하는 쿼리는 캐시되지 않습니다.
- DynamoDB 무효화는 논리적으로만 처리되므로 TTL 정리 전까지 오래된 행이 남습니다.
토픽
자주 묻는 질문
- laravel-model-caching은(는) 무엇인가요?
- Eloquent 모델과 관계 쿼리를 자동으로 캐싱하고 모델이 변경되면 캐시를 무효화하는 Laravel 패키지입니다. Model Caching for Laravel은 Eloquent 모델에 Cachable trait을 추가해 쿼리 결과, eager-loaded 관계, 집계 결과를 별도의 캐시 키를 지정하지 않고 애플리케이션 캐시에 저장합니다. 모델이 생성, 수정 또는 삭제되면 관련 캐시 항목이 자동으로 비워지며, belongsToMany 관계의 pivot 변경도 처리합니다.
- laravel-model-caching은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- laravel-model-caching은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- laravel-model-caching은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. laravel-model-caching의 마지막 커밋은 2026년 11월 3일입니다.
- laravel-model-caching은(는) 어디에 사용할 수 있나요?
- 반복되는 Eloquent 쿼리가 많은 읽기 중심 Laravel 페이지의 속도를 높일 때 Cache::remember 및 forget 로직을 직접 작성하지 않고 모델 데이터를 캐싱할 때 테넌트별 캐시 격리가 필요한 멀티테넌트 Laravel 앱 AWS에서 DynamoDB를 관리형 캐시 스토어로 사용하는 애플리케이션
- laravel-model-caching는 어떻게 설치하나요?
- Composer로 패키지를 설치합니다: composer require mike-bronner/laravel-model-caching 모델이 상속하는 기본 모델에 Cachable trait를 추가합니다 필요한 경우 설정 파일을 게시합니다: php artisan modelCache:publish --config
- laravel-model-caching은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/mike-bronner/laravel-model-caching
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
느린 DB 쿼리를 수집하고 반복 쿼리를 그룹화한 뒤, LLM으로 인덱스와 쿼리 재작성 방안을 제안하는 대시보드 내장 Laravel 패키지입니다.
빠른 개발과 깔끔하고 실용적인 설계를 지원하는 고수준 Python 웹 프레임워크입니다.
Memcache, Redis/Valkey, HTTP, Postgres 프로토콜을 지원하고 단일 C 파일로 임베드할 수 있는 저지연 C 캐싱 서버입니다.
Redis Sentinel과 Cluster, 동기·비동기 API를 지원하는 .NET용 Redis 클라이언트 라이브러리입니다.
라우팅, ORM, 마이그레이션, 큐, 실시간 브로드캐스팅을 지원하는 표현력 있는 문법의 PHP 웹 애플리케이션 프레임워크입니다.