> ## Documentation Index
> Fetch the complete documentation index at: https://kawax.biz/llms.txt
> Use this file to discover all available pages before exploring further.

# Laravel 13 신기능 정리

> 2026년 3월에 릴리스된 Laravel 13의 주요 신기능과 개선점을 설명합니다.

## 시작하며

Laravel 13은 2026년 3월 17일에 릴리스되었습니다. 매년 정기적인 메이저 릴리스이지만, Laravel 13은 특히 **AI 네이티브한 워크플로우**, **더 안전한 기본값**, **더 표현력 풍부한 개발자 API**에 초점을 맞추고 있습니다.

파괴적 변경은 최소한으로 억제되어, 대부분의 애플리케이션은 적은 수정으로 업그레이드할 수 있습니다. 한편, Laravel AI SDK나 시맨틱 검색 등 모던한 애플리케이션 개발을 크게 변화시키는 신기능이 다수 추가되어 있습니다.

<Info>
  Laravel 13 서포트 정책: 버그 픽스는 2027년 Q3까지, 보안 픽스는 **2028년 3월 17일**까지 제공됩니다.
</Info>

***

## 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다운 개발자 경험을 유지할 수 있습니다.

**텍스트 생성 (에이전트)**

```php theme={null}
use App\Ai\Agents\SalesCoach;

$response = SalesCoach::make()->prompt('이 세일즈 트랜스크립트를 분석해 주세요...');

return (string) $response;
```

**이미지 생성**

```php theme={null}
use Laravel\Ai\Image;

$image = Image::of('키친 카운터 위의 도넛')->generate();

$rawContent = (string) $image;
```

**음성 합성**

```php theme={null}
use Laravel\Ai\Audio;

$audio = Audio::of('Laravel에서 코딩하는 것을 정말 좋아합니다.')->generate();

$rawContent = (string) $audio;
```

**임베딩 생성**

```php theme={null}
use Illuminate\Support\Str;

$embeddings = Str::of('나파 밸리의 와인은 최고입니다.')->toEmbeddings();
```

자세한 내용은 [Laravel AI SDK 문서](https://laravel.com/ai)를 참고하세요.

***

### 시맨틱 / 벡터 검색

AI SDK와 연동한 네이티브 벡터 쿼리 지원이 추가되었습니다. PostgreSQL + `pgvector`를 사용한 시맨틱 검색을 쿼리 빌더에서 직접 실행할 수 있습니다.

```php theme={null}
$documents = DB::table('documents')
    ->whereVectorSimilarTo('embedding', '나파 밸리의 최고의 와이너리')
    ->limit(10)
    ->get();
```

임베딩 열 추가부터 쿼리까지 Laravel 에코시스템 내에서 완결할 수 있습니다.

***

### JSON:API 리소스

Laravel에 퍼스트파티 [JSON:API](https://jsonapi.org/) 리소스 지원이 추가되었습니다. JSON:API 사양을 준수하는 응답을 손쉽게 반환할 수 있게 됩니다.

* 리소스 오브젝트 시리얼라이제이션
* 릴레이션십 인클루드
* 스파스 필드셋
* 링크
* JSON:API 준수 응답 헤더

***

### PHP 어트리뷰트 확장

Laravel 13은 PHP 어트리뷰트에 의한 선언적 설정을 프레임워크 전체로 확대했습니다.

**컨트롤러에 적용**

```php theme={null}
<?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)
    {
        // ...
    }
}
```

**큐 잡에 적용**

```php theme={null}
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(...)`를 사용하여 특정 잡에 대한 기본 큐 · 접속 라우팅 룰을 한 곳에서 정의할 수 있게 되었습니다.

```php theme={null}
use App\Jobs\ProcessPodcast;
use Illuminate\Support\Facades\Queue;

Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
```

잡 클래스에 큐 이름을 하드 코딩할 필요가 없어져, 인프라 설정을 코드에서 분리할 수 있습니다.

***

### 캐시 TTL 연장

`Cache::touch(...)`를 사용하여 캐시 아이템의 값을 취득 · 재저장하지 않고 TTL을 연장할 수 있게 되었습니다.

```php theme={null}
// 현재 값을 바꾸지 않고 TTL을 3600초 연장
Cache::touch('expensive-computation', 3600);
```

***

## 보안 강화

### CSRF 보호 강화 (`PreventRequestForgery`)

CSRF 미들웨어가 `VerifyCsrfToken`에서 `PreventRequestForgery`로 리네임되어, `Sec-Fetch-Site` 헤더를 이용한 요청 발신처의 검증이 추가되었습니다.

```php theme={null}
use Illuminate\Foundation\Http\Middleware\PreventRequestForgery;

// 테스트에서 미들웨어 제외
->withoutMiddleware([PreventRequestForgery::class]);
```

`VerifyCsrfToken`은 비권장 별칭으로 남지만, 새 클래스 이름으로의 마이그레이션이 권장됩니다.

### 캐시의 디시리얼라이제이션 제한

`config/cache.php`에 `serializable_classes` 옵션이 추가되었으며, 기본은 `false`입니다. 이것으로 `APP_KEY`가 유출된 경우의 PHP 디시리얼라이제이션 공격을 방지합니다.

```php theme={null}
// 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](https://github.com/laravel/boost)는 퍼스트파티 MCP 서버입니다. Claude Code, Cursor, OpenCode, Gemini, VS Code 등의 AI 에디터와 연동하여 `/upgrade-laravel-v13` 슬래시 명령으로 업그레이드를 반자동화할 수 있습니다.

```shell theme={null}
composer require laravel/boost:^2.0 --dev
```

### 컨트랙트 추가

이하의 컨트랙트에 새로운 메서드가 추가되었습니다:

| 컨트랙트                               | 추가 메서드                                                                         |
| ---------------------------------- | ------------------------------------------------------------------------------ |
| `Bus\Dispatcher`                   | `dispatchAfterResponse`                                                        |
| `Routing\ResponseFactory`          | `eventStream` (SSE 지원)                                                         |
| `Auth\MustVerifyEmail`             | `markEmailAsUnverified`                                                        |
| `Queue\Queue`                      | `pendingSize`, `delayedSize`, `reservedSize`, `creationTimeOfOldestPendingJob` |
| `Cache\Store` / `Cache\Repository` | `touch`                                                                        |

***

## 정리

Laravel 13은 "적은 파괴적 변경, 많은 신기능"이라는 릴리스입니다. 업그레이드 작업은 최소한으로 끝나는 한편, 특히 **AI SDK**와 **시맨틱 검색**은 현대 애플리케이션 개발의 방식을 바꿀 가능성을 지니고 있습니다.

기존의 애플리케이션을 Laravel 12에서 13으로 업그레이드할 준비가 되었다면, 자세한 절차는 다음 가이드를 참고하세요.

<Card title="Laravel 12에서 13으로의 업그레이드 가이드" icon="arrow-up-right" href="/ko/blog/upgrade-12-to-13">
  파괴적 변경 목록과 단계별 업그레이드 절차를 설명하고 있습니다.
</Card>


## Related topics

- [PHP 어트리뷰트](/ko/advanced/php-attributes.md)
- [Laravel LSP — Language Server Protocol에 의한 IDE 기능 확장](/ko/blog/laravel-lsp-introduction.md)
- [Laravel Pennant](/ko/pennant.md)
- [2026년 3월 Laravel 업데이트](/ko/blog/changelog/202603.md)
- [Inertia.js로 SPA 구축하기](/ko/blog/inertia-introduction.md)
