시작하며
Laravel 13은 2026년 3월 17일에 릴리스되었습니다. 매년 정기적인 메이저 릴리스이지만, Laravel 13은 특히 AI 네이티브한 워크플로우 , 더 안전한 기본값 , 더 표현력 풍부한 개발자 API 에 초점을 맞추고 있습니다.
파괴적 변경은 최소한으로 억제되어, 대부분의 애플리케이션은 적은 수정으로 업그레이드할 수 있습니다. 한편, Laravel AI SDK나 시맨틱 검색 등 모던한 애플리케이션 개발을 크게 변화시키는 신기능이 다수 추가되어 있습니다.
Laravel 13 서포트 정책: 버그 픽스는 2027년 Q3까지, 보안 픽스는 2028년 3월 17일 까지 제공됩니다.
PHP 요구사항 갱신
Laravel 13에서는 PHP 8.3 이상 이 필요합니다. PHP 8.2의 서포트는 종료되었습니다.
버전 PHP 릴리스일 버그 픽스 기한 보안 픽스 기한 11 8.2 - 8.4 2024년 3월 12일 2025년 9월 3일 2026년 3월 12일 12 8.2 - 8.5 2025년 2월 24일 2026년 8월 13일 2027년 2월 24일 13 8.3 - 8.5 2026년 3월 17일 2027년 Q3 2028년 3월 17일
PHP 8.3의 주요 혜택으로 타입 상수, json_validate() 함수, #[\Override] 어트리뷰트 등을 이용할 수 있게 됩니다.
주요 신기능
Laravel AI SDK
Laravel 13의 눈에 띄는 기능은 퍼스트파티 AI SDK 입니다. 텍스트 생성, 툴 호출 에이전트, 임베딩, 음성, 이미지 생성, 벡터 스토어 통합을 통일된 API로 제공합니다.
프로바이더에 의존하지 않는 형태로 AI 기능을 구축하면서도 Laravel다운 개발자 경험을 유지할 수 있습니다.
텍스트 생성 (에이전트)
use App\Ai\Agents\ SalesCoach ;
$response = SalesCoach :: make () -> prompt ( '이 세일즈 트랜스크립트를 분석해 주세요...' );
return ( string ) $response ;
이미지 생성
use Laravel\Ai\ Image ;
$image = Image :: of ( '키친 카운터 위의 도넛' ) -> generate ();
$rawContent = ( string ) $image ;
음성 합성
use Laravel\Ai\ Audio ;
$audio = Audio :: of ( 'Laravel에서 코딩하는 것을 정말 좋아합니다.' ) -> generate ();
$rawContent = ( string ) $audio ;
임베딩 생성
use Illuminate\Support\ Str ;
$embeddings = Str :: of ( '나파 밸리의 와인은 최고입니다.' ) -> toEmbeddings ();
자세한 내용은 Laravel AI SDK 문서 를 참고하세요.
시맨틱 / 벡터 검색
AI SDK와 연동한 네이티브 벡터 쿼리 지원이 추가되었습니다. PostgreSQL + pgvector를 사용한 시맨틱 검색을 쿼리 빌더에서 직접 실행할 수 있습니다.
$documents = DB :: table ( 'documents' )
-> whereVectorSimilarTo ( 'embedding' , '나파 밸리의 최고의 와이너리' )
-> limit ( 10 )
-> get ();
임베딩 열 추가부터 쿼리까지 Laravel 에코시스템 내에서 완결할 수 있습니다.
JSON:API 리소스
Laravel에 퍼스트파티 JSON:API 리소스 지원이 추가되었습니다. JSON:API 사양을 준수하는 응답을 손쉽게 반환할 수 있게 됩니다.
리소스 오브젝트 시리얼라이제이션
릴레이션십 인클루드
스파스 필드셋
링크
JSON:API 준수 응답 헤더
PHP 어트리뷰트 확장
Laravel 13은 PHP 어트리뷰트에 의한 선언적 설정을 프레임워크 전체로 확대했습니다.
컨트롤러에 적용
<? php
namespace App\Http\Controllers ;
use App\Models\ Comment ;
use App\Models\ Post ;
use Illuminate\Routing\Attributes\Controllers\ Authorize ;
use Illuminate\Routing\Attributes\Controllers\ Middleware ;
#[ Middleware ( 'auth' )]
class CommentController
{
#[ Middleware ( 'subscribed' )]
#[ Authorize ( 'create' , [ Comment :: class , 'post' ])]
public function store ( Post $post )
{
// ...
}
}
큐 잡에 적용
use Illuminate\Queue\Attributes\ Tries ;
use Illuminate\Queue\Attributes\ Backoff ;
use Illuminate\Queue\Attributes\ Timeout ;
use Illuminate\Queue\Attributes\ FailOnTimeout ;
#[ Tries ( 3 )]
#[ Backoff ( 60 )]
#[ Timeout ( 120 )]
#[ FailOnTimeout ]
class ProcessPodcast implements ShouldQueue
{
// ...
}
새로 추가된 주요 어트리뷰트:
어트리뷰트 용도 #[Middleware]컨트롤러 · 메서드에 미들웨어 적용 #[Authorize]컨트롤러에 정책 체크 #[Tries]큐 잡의 최대 시도 횟수 #[Backoff]큐 잡의 백오프 시간 #[Timeout]큐 잡의 타임아웃 시간 #[FailOnTimeout]타임아웃 시의 잡 실패 플래그
Eloquent, 이벤트, 알림, 유효성 검증, 테스트, 리소스 시리얼라이제이션 API 등에도 추가 어트리뷰트가 도입되어 있습니다.
큐 라우팅
Queue::route(...)를 사용하여 특정 잡에 대한 기본 큐 · 접속 라우팅 룰을 한 곳에서 정의할 수 있게 되었습니다.
use App\Jobs\ ProcessPodcast ;
use Illuminate\Support\Facades\ Queue ;
Queue :: route ( ProcessPodcast :: class , connection : 'redis' , queue : 'podcasts' );
잡 클래스에 큐 이름을 하드 코딩할 필요가 없어져, 인프라 설정을 코드에서 분리할 수 있습니다.
캐시 TTL 연장
Cache::touch(...)를 사용하여 캐시 아이템의 값을 취득 · 재저장하지 않고 TTL을 연장할 수 있게 되었습니다.
// 현재 값을 바꾸지 않고 TTL을 3600초 연장
Cache :: touch ( 'expensive-computation' , 3600 );
보안 강화
CSRF 보호 강화 (PreventRequestForgery)
CSRF 미들웨어가 VerifyCsrfToken에서 PreventRequestForgery로 리네임되어, Sec-Fetch-Site 헤더를 이용한 요청 발신처의 검증이 추가되었습니다.
use Illuminate\Foundation\Http\Middleware\ PreventRequestForgery ;
// 테스트에서 미들웨어 제외
-> withoutMiddleware ([ PreventRequestForgery :: class ]);
VerifyCsrfToken은 비권장 별칭으로 남지만, 새 클래스 이름으로의 마이그레이션이 권장됩니다.
캐시의 디시리얼라이제이션 제한
config/cache.php에 serializable_classes 옵션이 추가되었으며, 기본은 false입니다. 이것으로 APP_KEY가 유출된 경우의 PHP 디시리얼라이제이션 공격을 방지합니다.
// config/cache.php
'serializable_classes' => [
App\Data\ CachedDashboardStats :: class ,
App\Support\ CachedPricingSnapshot :: class ,
],
캐시에 PHP 오브젝트를 저장하고 있는 경우에는, 명시적으로 클래스를 허용 리스트에 추가해야 합니다.
스타터 킷의 변경
Laravel 12에서 쇄신된 스타터 킷(React/Vue/Livewire 기반)은 Laravel 13에서도 계속 이용 가능합니다.
Laravel 13의 릴리스 시기에 맞춰 Inertia v3 도 릴리스되었습니다. 주요 변경점:
보다 심플한 레이아웃 props
Vite 8 지원
withApp 콜백 추가
새로운 Blade 컴포넌트
Inertia v3를 사용하고 있는 경우에는 함께 업그레이드를 검토하세요.
그 외 개선점
AI 어시스트 업그레이드 (Laravel Boost)
Laravel Boost 는 퍼스트파티 MCP 서버입니다. Claude Code, Cursor, OpenCode, Gemini, VS Code 등의 AI 에디터와 연동하여 /upgrade-laravel-v13 슬래시 명령으로 업그레이드를 반자동화할 수 있습니다.
composer require laravel/boost:^2.0 --dev
컨트랙트 추가
이하의 컨트랙트에 새로운 메서드가 추가되었습니다:
컨트랙트 추가 메서드 Bus\DispatcherdispatchAfterResponseRouting\ResponseFactoryeventStream (SSE 지원)Auth\MustVerifyEmailmarkEmailAsUnverifiedQueue\QueuependingSize, delayedSize, reservedSize, creationTimeOfOldestPendingJobCache\Store / Cache\Repositorytouch
Laravel 13은 “적은 파괴적 변경, 많은 신기능”이라는 릴리스입니다. 업그레이드 작업은 최소한으로 끝나는 한편, 특히 AI SDK 와 시맨틱 검색 은 현대 애플리케이션 개발의 방식을 바꿀 가능성을 지니고 있습니다.
기존의 애플리케이션을 Laravel 12에서 13으로 업그레이드할 준비가 되었다면, 자세한 절차는 다음 가이드를 참고하세요.
Laravel 12에서 13으로의 업그레이드 가이드 파괴적 변경 목록과 단계별 업그레이드 절차를 설명하고 있습니다.