메인 콘텐츠로 건너뛰기

시작하며

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릴리스일버그 픽스 기한보안 픽스 기한
118.2 - 8.42024년 3월 12일2025년 9월 3일2026년 3월 12일
128.2 - 8.52025년 2월 24일2026년 8월 13일2027년 2월 24일
138.3 - 8.52026년 3월 17일2027년 Q32028년 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.phpserializable_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\DispatcherdispatchAfterResponse
Routing\ResponseFactoryeventStream (SSE 지원)
Auth\MustVerifyEmailmarkEmailAsUnverified
Queue\QueuependingSize, delayedSize, reservedSize, creationTimeOfOldestPendingJob
Cache\Store / Cache\Repositorytouch

정리

Laravel 13은 “적은 파괴적 변경, 많은 신기능”이라는 릴리스입니다. 업그레이드 작업은 최소한으로 끝나는 한편, 특히 AI SDK시맨틱 검색은 현대 애플리케이션 개발의 방식을 바꿀 가능성을 지니고 있습니다. 기존의 애플리케이션을 Laravel 12에서 13으로 업그레이드할 준비가 되었다면, 자세한 절차는 다음 가이드를 참고하세요.

Laravel 12에서 13으로의 업그레이드 가이드

파괴적 변경 목록과 단계별 업그레이드 절차를 설명하고 있습니다.
마지막 수정일 2026년 7월 13일