- Laravel October Product Updates
- Laravel Framework changelog — October 2026
- Laravel Framework changelog RSS
Laravel Framework
10월의 릴리스 범위
공식 Changelog의 주요 신기능에 더해, 릴리스 노트에서 날짜와 도입 버전을 확인했습니다.
아래에서는 공식 Changelog에 게재된 9개 항목을 자세히 소개합니다. 세세한 수정이나 의존 관계 변경은 각 릴리스 노트를 참조하세요.
QUERY 라우트로 요청 본문을 가진 검색 정의하기
v13.35.0에서 HTTPQUERY 메서드에 대응하는 Route::query()가 추가되었습니다. GET의 쿼리 문자열이 아니라 요청 본문으로 검색 조건을 받는 라우트를 정의할 수 있습니다.
Route::any()도 QUERY 요청에 일치하며, 라우트 목록은 이 메서드를 인식합니다. 위의 SearchProductsController는 검색 처리를 구현한 애플리케이션 측 Invokable Controller를 가정합니다.
1차 정보: Register QUERY Routes, Laravel 13 공식 routing.md. 관련 페이지: 라우팅, CSRF 보호
쓰기 후의 다른 요청에서도 오래된 읽기 피하기
읽기와 쓰기를 분리한 데이터베이스에서는 갱신 직후의 읽기가 아직 동기화되지 않은 Read replica로 향할 수 있습니다. 기존sticky 설정은 같은 요청 안만 대상으로 하는 반면, v13.38.0의 PreventStaleDatabaseReads는 같은 세션의 후속 요청에도 보호 기간을 둡니다.
bootstrap/app.php에서 Illuminate\Foundation\Http\Middleware\PreventStaleDatabaseReads를 import하고, withMiddleware()의 콜백 안에서 $middleware->web(append: [PreventStaleDatabaseReads::class]);로 추가합니다. 자동으로 활성화되는 기능은 아닙니다.
미들웨어는 기본 DB 연결에 대한 쓰기 시각을 세션에 기록하고, 기본적으로 쓰기 후 2초 동안 그 연결의 읽기를 Write DB로 보냅니다. 기간은 등록하는 클래스를 PreventStaleDatabaseReads::for(5) 등으로 바꿔서 변경할 수 있습니다.
세션을 사용하므로 StartSession보다 뒤에 실행해야 합니다. 다른 세션이나 다른 DB 연결의 읽기까지 전환하는 기능이 아니며, 레플리카의 동기화 완료를 감지하는 것도 아닙니다.
1차 정보: Avoid Stale Reads After Database Writes, Laravel 13 공식 database.md. 관련 페이지: 데이터베이스, 세션
특정 처리만 Write DB에서 읽기
같은 v13.38.0에서 추가된Connection::usingWritePdo()는 콜백이 실행되는 동안에만 그 연결의 읽기 대상을 Write DB로 전환합니다. 세션 단위의 보호가 아니라, 애플리케이션 측에서 중요한 읽기의 범위를 명시하고 싶을 때 사용할 수 있습니다.
스케줄을 단일 서버 실행으로 일괄 설정하기
여러 서버에서 스케줄러를 실행할 때 태스크별onOneServer() 지정 누락을 줄이기 위해, v13.35.0에서 Schedule::alwaysOnOneServer()가 추가되었습니다. AppServiceProvider의 boot()에서 호출하면 대상 스케줄에 일괄 적용할 수 있습니다.
onOneServer()에는 모든 서버가 공유하는 중앙 캐시가 필요합니다. 공식 문서가 드는 대응 드라이버는 database, memcached, dynamodb, redis입니다. 설정을 추가하는 것만으로 서버 간 잠금 기반이 마련되는 것은 아닙니다.Fake에서 속성을 지정해 디스패치 검증하기
v13.35.0에서 Queue·Bus·Event·Notification의 Fake에 기대하는 속성의 배열을 전달할 수 있게 되었습니다. 단순한 속성 비교를 위해 매번 콜백을 작성할 필요가 없어집니다. 예를 들어 공개order 속성을 가진 ShipOrder 잡과 테스트에서 준비한 $order를 사용하는 경우, 다음과 같이 검증할 수 있습니다.
is()로 비교되므로 같은 모델을 나타내는 다른 인스턴스도 다룰 수 있습니다. Fake는 디스패치의 검증이며, 잡 본체의 실행 결과를 검증하는 것은 아닙니다.
1차 정보: Assert Fake Dispatches by Their Properties, Laravel 13 공식 queues.md. 관련 페이지: 큐, 모킹
워커의 메모리 상한을 비율로 지정하기
v13.35.0부터queue:work의 --memory에 PHP의 memory_limit에 대한 비율을 지정할 수 있습니다. 환경마다 고정 MB 값을 다시 계산하지 않고, PHP 설정에 맞춰 워커의 종료 임계값을 조정할 수 있습니다.
memory_limit가 무제한인 -1인 경우에는 비율이 아니라 MB 값을 사용하세요. 임계값에서 종료된 워커의 재시작은 Supervisor 등의 프로세스 감시에 맡깁니다.
1차 정보: Set Queue Worker Memory Limits as Percentages, Laravel 13 공식 queues.md
Markdown을 전용 Content-Type으로 반환하기
v13.35.0에서 응답 팩토리에markdown()이 추가되었습니다. Markdown 본문을 text/markdown으로 반환하며, 상태 코드와 추가 헤더도 지정할 수 있습니다.
wantsMarkdown() 등으로 응답 형식을 고르는 처리와 조합할 수 있습니다. Markdown을 HTML로 변환해 반환하는 기능이 아니라, Markdown 자체를 응답으로 제공하기 위한 API입니다.
1차 정보: Return Markdown Responses, Laravel 13 공식 responses.md. 관련 페이지: 응답
Vitess에서 분석 쿼리를 OLAP 모드로 실행하기
v13.36.0에서 MySQL 연결에isVitess()와 olap()이 추가되었습니다. Vitess나 PlanetScale을 이용하고 있는지 판정하고, 분석 용도의 쿼리를 OLAP 워크로드로 실행할 수 있습니다.
기존 유효성 검증 규칙을 Builder에서 찾기
v13.36.0에서 기존에는 문자열로 지정하던 많은 규칙에Rule의 Builder 메서드가 추가되었습니다. requiredWith(), acceptedIf(), regex(), timezone() 등을 IDE 자동 완성으로 찾기 쉬워지고, 기존 검증 동작을 유지한 채 작성 방법을 선택할 수 있습니다.
Laravel Cloud
공식 월간 블로그에서는 다음 3개 항목이 소개되었습니다.
1차 정보: Laravel October Product Updates — Laravel Cloud, Laravel Cloud changelog. 관련 페이지: Laravel Cloud 소개
Laravel Forge
- PHP 보안 업데이트 알림: 10월의 PHP 보안 릴리스로 영향을 받는 버전을 서버별로 표시하고, 수정 버전의 제공 상황을 안내합니다. Recheck versions로 실제로 설치된 버전을 다시 확인할 수 있습니다. 표시의 재확인과 PHP 업데이트는 별개의 조작입니다.
- 프로비저닝 실패 처리: 완료할 수 없는 서버를 실패 상태로 표시하고, 알림·다음 조작 안내·삭제 조작을 제공합니다. PHP와 Nginx 설치도 실패를 확정하기 전에 재시도합니다.
관련 기사
2026년 9월 업데이트
AI 프로바이더의 런타임 구성, 검색 확장, Mercure, Cloud의 격리된 프리뷰 환경을 돌아봅니다.
데이터베이스 가이드
읽기·쓰기 분리와 DB 연결의 기본을 확인합니다.