Laravel 13.33.0 업데이트
릴리스: 2026년 9월 22일
평가: 2026년 9월 22일
13.33.0은 마이너 릴리스로, 새 기능(태그된 메모이즈 캐시, PostgreSQL 서버 옵션, valkey:// 프로토콜 지원 등)과 다수의 버그 수정을 포함합니다. 인증 세션의 비밀번호 해시 저장 시점 변경과 큐 워커 타임아웃 처리 변경은 실제 동작에 영향을 줄 수 있어 확인이 필요하지만, 대부분은 옵트인 기능이거나 하위 호환되는 버그 수정입니다.
패키지 관리자가 확인할 것
- Horizon위험도 낮음
워커 타임아웃 시 강제 종료를 옵트아웃할 수 있는 옵션과, 워커 타임아웃 종료 코드가 접근 가능해진 변경(PR #61591, #61622)이 포함되어 있어 커스텀 워커 종료 처리 로직이 있다면 확인 권장.
- Sanctum위험도 낮음
'인증된 세션의 비밀번호 해시 저장 시점 조정'(PR #61594)이 세션 기반 인증 흐름에 영향을 줄 수 있어, 세션 인증을 사용하는 경우 로그인/세션 갱신 흐름을 테스트해보는 것을 권장.
- Laravel Queue Rabbitmq위험도 낮음
큐 배치 재시도(queue:retry-batch) 및 워커 타임아웃 관련 변경사항이 있어, RabbitMQ 드라이버 사용 시 배치/타임아웃 동작을 확인 권장.
대응 체크리스트
- 세션 기반 인증 사용 시 비밀번호 해시 저장 로직 확인가까운 시일
PR #61594 'Adjust when password hash is stored for authenticated sessions'에 따라 인증된 세션에서 비밀번호 해시가 저장되는 시점이 변경되었습니다. 커스텀 인증 가드나 세션 검증 로직이 있다면 동작을 확인하세요.
- 큐 워커 타임아웃 처리 로직 점검선택
잡 타임아웃 시 워커를 강제 종료하지 않는 옵트인 옵션(PR #61591)과 타임아웃 종료 코드 접근 가능화(PR #61622)가 추가되었습니다. Horizon/RabbitMQ 큐 운영 환경에서 워커 재시작/모니터링 스크립트가 종료 코드에 의존한다면 검토하세요.
- composer update로 패치 적용선택
일반적인 버그 수정(Eloquent Collection duplicates(), 태그된 캐시 enum 키, LazyCollection::take() 등)을 받으려면 `composer update laravel/framework`로 업데이트하세요.
자동 생성상세 평가
요약
13.33.0은 마이너 릴리스로 새로운 기능 추가와 다수의 버그 수정으로 구성되어 있습니다. 공개 API를 깨는 변경(breaking change)은 릴리스 노트에 명시적으로 언급되지 않았습니다.
주요 변경
- 인증된 세션의 비밀번호 해시 저장 시점 조정 (PR #61594)
- 잡 타임아웃 시 워커 강제 종료를 옵트아웃할 수 있는 옵션 추가 (PR #61591)
- 워커 타임아웃 종료 코드가 외부에서 접근 가능해짐 (PR #61622)
- 태그된 메모이즈 캐시(Tagged memoized cache) 추가 (PR #61593)
AsCollection/AsArrayObject에서 실제 NULL 유지 옵트인 지원 추가 (PR #61596)- PostgreSQL 연결에 서버 옵션 추가,
valkey:///valkeys://프로토콜 지원 추가 - 다수의 버그 수정: Eloquent Collection
duplicates(), 태그된 캐시의 enum 키, SQLite 스키마 덤프의 shadow table,whereValueBetween()바인딩,LazyCollection::take()음수 limit 처리 등
하위 호환성
릴리스 노트에 공개 API의 동작이 깨졌다는 명시적 서술은 없습니다. 대부분의 새 기능은 옵트인(opt-in) 방식이며, 버그 수정들은 기존에 잘못 동작하던 부분을 올바르게 고친 것으로 보입니다. 단, 비밀번호 해시 저장 시점 변경과 워커 타임아웃 처리 변경은 동작에 영향을 줄 수 있으므로 확인이 필요합니다.
패키지 관리자가 확인할 것
- Sanctum: 세션 기반 인증을 사용하는 경우 비밀번호 해시 저장 시점 변경(PR #61594)이 로그인/세션 검증에 영향을 주는지 확인.
- Horizon / Laravel Queue Rabbitmq: 워커 타임아웃 처리 방식 변경(강제 종료 옵트아웃, 종료 코드 노출)이 운영 스크립트나 모니터링에 영향을 주는지 확인.
- 그 외 등록된 패키지들은 이번 릴리스 노트 내용과 직접적인 연관이 확인되지 않습니다.
대응 체크리스트
- 세션 인증 사용 시 로그인/세션 갱신 흐름 테스트
- 큐 워커 타임아웃/재시작 스크립트가 종료 코드에 의존하는지 확인
-
composer update laravel/framework로 패치 적용 후 CI 통과 확인 - 신규 기능(태그된 메모이즈 캐시, PostgreSQL 서버 옵션, valkey 프로토콜) 활용 여부 검토 (선택)
GitHub 릴리스 노트를 근거로 언어 모델 (claude-sonnet-5)이 작성했으며, 사람이 검수하지 않았습니다. 실제 적용 전에는 공식 릴리스 노트와 업그레이드 가이드를 함께 확인하세요.
GitHub 원문 릴리스 노트 보기
- [13.x] Drop restart_syscalls from pcntl_signal in Worker by @jackbayliss in https://github.com/laravel/framework/pull/61590
- Adjust when password hash is stored for authenticated sessions by @taylorotwell in https://github.com/laravel/framework/pull/61594
- [13.x] Ability to opt out of killing the worker on job timeout by @jackbayliss in https://github.com/laravel/framework/pull/61591
- [13.x] Fix enum keys in tagged cache many() and get() by @Meacue in https://github.com/laravel/framework/pull/61603
- [13.x] Add opt-in support for persisting real NULL on AsCollection/AsArrayObject by @zeinrahmad76 in https://github.com/laravel/framework/pull/61596
- [13.x] Fix Eloquent Collection duplicates() with a key or callback by @lazerg in https://github.com/laravel/framework/pull/61597
- Improve Cloud job retries by @timacdonald in https://github.com/laravel/framework/pull/61584
- [13.x] Support brick/math 0.20 & 1.0 by @jackbayliss in https://github.com/laravel/framework/pull/61382
- [13.x] add health-start-period to workflows by @jackbayliss in https://github.com/laravel/framework/pull/61608
- [13.x] Resolve FormRequest attributes from parent classes by @mdsukkur in https://github.com/laravel/framework/pull/61586
- [13.x] Add order() to DevCommands by @jackbayliss in https://github.com/laravel/framework/pull/61575
- [13.x] Add EncodedParameter to RouteUrlGenerator by @bytestream in https://github.com/laravel/framework/pull/61610
- [13.x] Add inplace() DDL algorithm modifier for index and foreign key operations by @SanderMuller in https://github.com/laravel/framework/pull/61602
- [13.x] Improve the value types of the Collection put method by @dfinchenko in https://github.com/laravel/framework/pull/61611
- Allow relative URLs for Mercure hub by @barryvdh in https://github.com/laravel/framework/pull/61629
- [13.x] Add server options to PostgreSQL connections by @DGarbs51 in https://github.com/laravel/framework/pull/61627
- [13.x] Make the worker timed out exit code reachable by @kieranbrown in https://github.com/laravel/framework/pull/61622
- Ci mariadb 11 by @Rhaima96 in https://github.com/laravel/framework/pull/61615
- [13.x] Tagged memoized cache by @joostdebruijn in https://github.com/laravel/framework/pull/61593
- Add "valkey://" and "valkeys://" protocol support by @cweiske in https://github.com/laravel/framework/pull/61635
- [13.x] Fix SQLite schema dumps containing shadow tables by @jhm-ciberman in https://github.com/laravel/framework/pull/61637
- [13.x] Make spelling consistent across docblocks by @shaedrich in https://github.com/laravel/framework/pull/61631
- [13.x] Use
composer require --with-all-dependenciesto install additional requirements by @crynobone in https://github.com/laravel/framework/pull/61617 - [13.x] Rebuild the phpredis client when a pipeline or transaction loses the connection by @maduonline in https://github.com/laravel/framework/pull/61632
- Apply fixes from StyleCI by @taylorotwell in https://github.com/laravel/framework/pull/61638
- [13.x] Add
--pretendoption toinstall:broadcastingcommand by @crynobone in https://github.com/laravel/framework/pull/61633 - [13.x] Improved artisan mocking by @jnoordsij in https://github.com/laravel/framework/pull/61588
- [13.x] feat: refresh configured model attributes after writes by @calebdw in https://github.com/laravel/framework/pull/61523
- [13.x] Pass fresh batch to
BatchFinishedandBatchCanceledevents by @xurshudyan in https://github.com/laravel/framework/pull/61644 - [13.x] Output empty JSON array from route:list --json when no routes match by @xurshudyan in https://github.com/laravel/framework/pull/61642
- [13.x] Test against MariaDB 12.3 by @Rhaima96 in https://github.com/laravel/framework/pull/61641
- [13.x] Use default view when make:notification --markdown has no value by @xurshudyan in https://github.com/laravel/framework/pull/61643
- [13.x] Test Improvements by @crynobone in https://github.com/laravel/framework/pull/61660
- [13.x] Fix
LazyCollection::take()with a negative limit larger than the collection by @crynobone in https://github.com/laravel/framework/pull/61659 - [13.x] Skip batches that cannot be retried in queue:retry-batch by @xurshudyan in https://github.com/laravel/framework/pull/61653
- [13.x] Consolidate overlapping tests by @jasonmccreary in https://github.com/laravel/framework/pull/61648
- [13.x] Fix order-dependent tests by @jasonmccreary in https://github.com/laravel/framework/pull/61647
- [13.x] Respect FILESYSTEM_DISK override when configuring Cloud disks by @DGarbs51 in https://github.com/laravel/framework/pull/61664
- [13.x] Configure Laravel Cloud database read replicas by @WendellAdriel in https://github.com/laravel/framework/pull/61665
- [13.x] Remove non-string headers from NotPwndVerifier by @kylemilloy in https://github.com/laravel/framework/pull/61666
- [13.x] Fix ERR invalid cursor returned when calling
$predisClient->scan(null, ...)while using Redis 7.4 by @crynobone in https://github.com/laravel/framework/pull/61673 - [13.x] Restore query logging when a pretend callback throws by @xurshudyan in https://github.com/laravel/framework/pull/61671
- [13.x] add sole to higher order proxies by @jackbayliss in https://github.com/laravel/framework/pull/61667
- [13.x] Add
createQuietlyandcreateManyQuietlytoBelongsToManyby @xurshudyan in https://github.com/laravel/framework/pull/61669 - [13.x] Fix
whereValueBetween()binding expression values by @xurshudyan in https://github.com/laravel/framework/pull/61670 - [13.x] Add opt-in native Postgres pooling for Laravel Cloud by @DGarbs51 in https://github.com/laravel/framework/pull/61668