릴리스 노트 (Release Notes)
버전 관리 방식 (Versioning Scheme)
Laravel과 그 밖의 first-party 패키지는 Semantic Versioning을 따릅니다. 주요 프레임워크 릴리스는 매년 한 번씩(~1분기) 출시되며, 마이너 및 패치 릴리스는 매주 출시될 수도 있습니다. 마이너 및 패치 릴리스에는 절대 호환성을 깨는 변경 사항이 포함되어서는 안 됩니다.
애플리케이션이나 패키지에서 Laravel 프레임워크 또는 그 구성 요소를 참조할 때는 항상 ^13.0과 같은 버전 제약을 사용해야 합니다. Laravel의 주요 릴리스에는 호환성을 깨는 변경 사항이 포함되기 때문입니다. 하지만 새로운 주요 릴리스로 하루 이내에 업데이트할 수 있도록 항상 노력하고 있습니다.
명명된 인수
명명된 인수는 Laravel의 하위 호환성 지침에 포함되지 않습니다. Laravel 코드베이스를 개선하기 위해 필요할 경우 함수 인수 이름을 변경할 수 있습니다. 따라서 Laravel 메서드를 호출할 때 명명된 인수를 사용할 때는 매개변수 이름이 향후 변경될 수 있음을 이해하고 신중하게 사용해야 합니다.
지원 정책 (Support Policy)
모든 Laravel 릴리스에는 18개월 동안 버그 수정이 제공되며, 2년 동안 보안 수정이 제공됩니다. 그 밖의 모든 추가 라이브러리는 최신 주요 릴리스에만 버그 수정이 제공됩니다. 또한 Laravel에서 지원하는 데이터베이스 버전도 확인하시기 바랍니다.
| 버전 | PHP (*) | 출시일 | 버그 수정 제공 기한 | 보안 수정 제공 기한 |
|---|---|---|---|---|
| 10 | 8.1 - 8.3 | 2023년 2월 14일 | 2024년 8월 6일 | 2025년 2월 4일 |
| 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년 3분기 | 2028년 3월 17일 |
(*) 지원되는 PHP 버전
Laravel 13 (Laravel 13)
Laravel 13은 AI-native 워크플로, 더 강력한 기본값, 더 표현력 있는 개발자 API에 중점을 두며 Laravel의 연간 릴리스 주기를 이어갑니다. 이 릴리스에는 first-party AI 기본 기능, JSON:API 리소스, 시맨틱 / 벡터 검색 기능, 큐, 캐시, 보안 전반의 점진적인 개선 사항이 포함됩니다.
최소한의 호환성 깨짐 변경
이번 릴리스 주기 동안 주요 초점은 호환성을 깨는 변경 사항을 최소화하는 것이었습니다. 대신 기존 애플리케이션을 깨뜨리지 않는 지속적인 사용성 개선을 한 해 동안 제공하는 데 집중했습니다.
따라서 Laravel 13 릴리스는 업그레이드에 필요한 노력 측면에서는 비교적 작은 업그레이드이지만, 동시에 상당한 새 기능을 제공합니다. 이러한 점을 고려하면 대부분의 Laravel 애플리케이션은 애플리케이션 코드를 많이 변경하지 않고도 Laravel 13으로 업그레이드할 수 있습니다.
PHP 8.3
Laravel 13.x에는 최소 PHP 버전 8.3이 필요합니다.
Laravel AI SDK
Laravel 13은 first-party Laravel AI SDK를 도입합니다. 이 SDK는 텍스트 생성, 도구 호출 에이전트, 임베딩, 오디오, 이미지, vector-store 통합을 위한 통합 API를 제공합니다.
AI SDK를 사용하면 일관된 Laravel-native 개발자 경험을 유지하면서, 특정 제공자에 종속되지 않는 AI 기능을 만들 수 있습니다.
예를 들어, 기본 에이전트는 한 번의 호출로 프롬프트를 전달할 수 있습니다.
use App\Ai\Agents\SalesCoach;
$response = SalesCoach::make()->prompt('Analyze this sales transcript...');
return (string) $response;
Laravel AI SDK는 이미지, 오디오, 임베딩도 생성할 수 있습니다.
시각적 생성 사용 사례를 위해 SDK는 자연어 프롬프트로 이미지를 생성하는 깔끔한 API를 제공합니다.
use Laravel\Ai\Image;
$image = Image::of('A donut sitting on the kitchen counter')->generate();
$rawContent = (string) $image;
음성 경험을 위해서는 어시스턴트, 내레이션, 접근성 기능에 사용할 자연스러운 오디오를 텍스트에서 합성할 수 있습니다.
use Laravel\Ai\Audio;
$audio = Audio::of('I love coding with Laravel.')->generate();
$rawContent = (string) $audio;
그리고 시맨틱 검색과 검색 기반 워크플로를 위해 문자열에서 직접 임베딩을 생성할 수 있습니다.
use Illuminate\Support\Str;
$embeddings = Str::of('Napa Valley has great wine.')->toEmbeddings();
JSON:API 리소스
Laravel은 이제 first-party JSON:API 리소스를 포함하여, JSON:API 명세를 준수하는 응답을 간단하게 반환할 수 있도록 합니다.
JSON:API 리소스는 리소스 객체 직렬화, 연관관계 포함, 희소 필드셋, 링크, JSON:API 호환 응답 헤더를 처리합니다.
요청 위조 보호
보안을 위해 Laravel의 요청 위조 보호 Middleware가 개선되고 PreventRequestForgery로 공식화되었습니다. 이를 통해 토큰 기반 CSRF 보호와의 호환성을 유지하면서, origin을 인식하는 요청 검증이 추가됩니다.
큐 라우팅
Laravel 13은 Queue::route(...)를 통해 클래스별 큐 라우팅을 추가합니다. 이를 사용하면 특정 job에 대한 기본 큐 / 연결 라우팅 규칙을 중앙에서 정의할 수 있습니다.
Queue::route(ProcessPodcast::class, connection: 'redis', queue: 'podcasts');
확장된 PHP 속성
Laravel 13은 프레임워크 전반에서 first-party PHP attribute 지원을 계속 확장합니다. 이를 통해 일반적인 설정과 동작 관련 관심사를 더 선언적으로 표현하고, 클래스와 메서드 가까이에 함께 배치할 수 있습니다.
주요 추가 사항으로는 #[Middleware], #[Authorize]와 같은 컨트롤러 및 인가 attribute가 있으며, #[Tries], #[Backoff], #[Timeout], #[FailOnTimeout]와 같은 큐 중심 job 제어 기능도 포함됩니다.
예를 들어, 컨트롤러 Middleware와 policy 검사를 이제 클래스와 메서드에 직접 선언할 수 있습니다.
<?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)
{
// ...
}
}
Eloquent, 이벤트, 알림, 유효성 검증, 테스트, 리소스 직렬화 API 전반에도 추가 attribute가 도입되어, 프레임워크의 더 많은 영역에서 일관된 attribute-first 옵션을 사용할 수 있습니다.
Cache TTL 연장
Laravel에는 이제 Cache::touch(...)가 포함됩니다. 이를 사용하면 기존 캐시 항목의 값을 가져와 다시 저장하지 않고도 해당 항목의 TTL을 연장할 수 있습니다.
시맨틱 / 벡터 검색
Laravel 13은 네이티브 벡터 쿼리 지원, 임베딩 워크플로, 그리고 검색, 쿼리, AI SDK에 걸쳐 문서화된 관련 API를 통해 시맨틱 검색 기능을 더욱 강화합니다.
이러한 기능을 사용하면 문자열에서 직접 생성한 임베딩을 대상으로 유사도 검색을 수행하는 것을 포함하여, PostgreSQL + pgvector를 활용한 AI 기반 검색 경험을 간단하게 구축할 수 있습니다.
예를 들어, 쿼리 빌더에서 직접 시맨틱 유사도 검색을 실행할 수 있습니다.
$documents = DB::table('documents')
->whereVectorSimilarTo('embedding', 'Best wineries in Napa Valley')
->limit(10)
->get();