Laravel 13.0.0영향도 높음메이저13.x

Laravel 13.0.0 업데이트

릴리스: 2026년 3월 17일

평가: 2026년 8월 28일

Laravel 13.0.0은 메이저 버전으로, PHP 8.3이 최소 요구 버전으로 상향되었고 Symfony 7.4/8.0 및 신규 symfony/console·symfony/translation 버전 지원, PHPUnit 13 지원 등 의존성 전반이 갱신되었습니다. 다수의 신규 기능(속성 기반 라우팅/미들웨어, Cache touch/flushLocks, insertOrIgnoreReturning, saveOrIgnore 등)이 추가되었고 일부 계약(interface)에 메서드가 추가되어 커스텀 구현체는 수정이 필요할 수 있습니다....

예상되는 하위 호환성 문제

  • PHP 8.3 최소 버전 요구심각도 높음

    릴리스 노트의 'Requires PHP 8.3 as minimum version' (#54763)에 따라 PHP 8.1/8.2 환경에서는 Laravel 13으로 업그레이드할 수 없습니다.

    영향 범위: PHP 런타임 버전, composer.json platform 설정

  • 여러 Contract(인터페이스)에 메서드 추가심각도 높음

    Queue, Mailer, Dispatcher, MustVerifyEmail, Monitor, Enumerable 등 다수의 인터페이스에 새 메서드(dispatchAfterResponse, cc, markEmailAsUnverified, starting, hasSole/hasMany 등)가 추가되었습니다. 이 인터페이스들을 직접 구현한 커스텀 클래스는 새 메서드를 구현하지 않으면 치명적 오류가 발생합니다.

    영향 범위: Queue/Mailer/Dispatcher/MustVerifyEmail 등 Illuminate contract를 직접 구현한 커스텀 클래스

  • Request forgery 방지에 origin 검증 추가심각도 보통

    'Add origin verification to request forgery protection' (#58400)에 따라 요청 위조 방지 로직에 origin 검증이 추가되어, 기존에 통과하던 일부 요청이 차단될 수 있습니다.

    영향 범위: CSRF/VerifyCsrfToken 미들웨어를 사용하는 폼 제출, API 클라이언트

  • boot 중 새 모델 인스턴스 생성 제한심각도 보통

    'Do not allow new model instances to be created during boot' (#55685)에 따라 서비스 프로바이더의 boot() 단계에서 Eloquent 모델을 새로 생성하던 코드가 영향을 받을 수 있습니다.

    영향 범위: ServiceProvider::boot() 내에서 Eloquent 모델 인스턴스를 생성하는 코드

  • Cache touch() 시그니처 변경심각도 보통

    'Make Cache touch() TTL required and remove redundant value fetching' (#59121)에 따라 touch() 메서드의 TTL 인자가 필수로 변경되었습니다.

    영향 범위: Cache::touch() / Store::touch()를 직접 호출하는 코드

  • PendingRequest pool() 기본 동시성 변경심각도 낮음

    'Default PendingRequest@pool() to use 2 for concurrency' (#57972)로 인해 기존에 concurrency를 지정하지 않던 코드의 기본 동작이 달라질 수 있습니다.

    영향 범위: Http::pool()을 동시성 옵션 없이 사용하는 코드

패키지 관리자가 확인할 것

  • Http (illuminate/http)위험도 보통

    PendingRequest::pool() 기본 concurrency 변경, ResponseFactory 계약에 eventStream 시그니처 정합성 수정 등이 포함되어 이 패키지를 확장하거나 오버라이드한 코드가 있다면 확인이 필요합니다.

  • Scout (laravel/scout)위험도 낮음

    프레임워크 전반의 Enumerable/Collection 관련 인터페이스 변경(hasSole, hasMany 추가 등)이 있어 Scout 내부에서 이를 확장한 부분이 있다면 호환성 확인 필요. 릴리스 노트에 Scout 직접 언급은 없음.

  • Socialite (laravel/socialite)위험도 낮음

    직접적인 breaking change 언급은 없으나, PHP 8.3 최소 요구 및 Symfony 7.4/8.0 지원 변경으로 인해 의존성 트리 충돌 여부를 composer 업데이트 시 확인해야 함.

대응 체크리스트

  • PHP 버전 확인 및 업그레이드즉시

    운영 서버 및 CI 환경이 PHP 8.3 이상인지 확인하고, 미달 시 PHP 업그레이드를 먼저 진행해야 합니다.

  • 커스텀 Contract 구현체 점검즉시

    Queue, Mailer, Dispatcher, MustVerifyEmail, Monitor 등 Illuminate contract를 직접 구현(implements)한 클래스가 있는지 검색하고, 새로 추가된 메서드(cc, dispatchAfterResponse, markEmailAsUnverified, starting 등)를 구현했는지 확인하세요.

  • CSRF/origin 검증 동작 테스트가까운 시일

    폼 제출 및 API 요청이 새로운 origin 검증 로직에 의해 차단되지 않는지 스테이징 환경에서 테스트하세요.

  • Cache::touch() 호출부 수정가까운 시일

    코드베이스에서 Cache::touch() 또는 Store::touch()를 TTL 없이 호출하는 곳이 있는지 검색하고 TTL 인자를 추가하세요.

  • composer update로 의존성 충돌 확인가까운 시일

    symfony/console 8, symfony/translation, brick/math, pda/pheanstalk 8.0+ 등 의존성 버전 상향에 따른 충돌 여부를 composer update --dry-run으로 사전 확인하세요.

  • Http::pool() 사용부 검토선택

    동시성 옵션 없이 Http::pool()을 사용하는 코드가 있다면 기본값 변경(2)에 따른 동작을 확인하세요.

자동 생성상세 평가

요약

Laravel 13.0.0은 메이저 릴리스로 PHP 8.3을 최소 요구 버전으로 올렸고, Symfony 7.4/8.0, PHPUnit 13 등 핵심 의존성을 갱신했습니다. 다수의 신규 기능(속성 기반 라우팅/미들웨어/폼 요청, Cache touch/flushLocks, insertOrIgnoreReturning, saveOrIgnore, schedule pause/resume 등)이 추가되었으며, 여러 Illuminate contract에 메서드가 추가되어 커스텀 구현체에 영향을 줄 수 있습니다.

주요 변경

  • PHP 8.3 최소 버전 요구 (#54763)
  • Queue, Mailer, Dispatcher, MustVerifyEmail, Monitor, Enumerable 등 다수 contract에 메서드 추가
  • Request forgery 방지에 origin 검증 추가 (#58400)
  • boot() 중 새 Eloquent 모델 인스턴스 생성 제한 (#55685)
  • Cache::touch() TTL 인자 필수화 (#59121)
  • PendingRequest::pool() 기본 concurrency를 2로 설정 (#57972)
  • MySQL DELETE...JOIN 시 ORDER BY/LIMIT 컴파일 지원 (#57196), inOrderOf(), fluent string validation rule builder 등 다수 신규 기능 추가

하위 호환성

메이저 버전답게 다수의 contract 변경과 최소 PHP 버전 상향이 포함되어 있어, 프레임워크 인터페이스를 직접 구현하거나 확장한 코드는 수정이 필요할 가능성이 높습니다. 단순 애플리케이션 코드(컨트롤러, 모델, 잡 등)는 대부분 영향이 제한적이나, 패키지 저자나 프레임워크 확장을 다루는 경우 주의가 필요합니다.

패키지 관리자가 확인할 것

  • Http (illuminate/http): PendingRequest::pool() 기본 동시성 변경, ResponseFactory 계약 정합성 수정 확인.
  • Scout, Socialite 등 나머지 등록 패키지에 대한 직접적 breaking change 언급은 release notes에 없음. 다만 PHP 8.3 요구 및 Symfony/PHPUnit 버전 상향에 따른 간접적 의존성 충돌 가능성은 각 패키지의 composer.json 제약과 함께 점검 필요.

대응 체크리스트

  1. 운영/CI 환경 PHP 버전이 8.3 이상인지 확인
  2. Queue/Mailer/Dispatcher/MustVerifyEmail/Monitor 등 contract를 직접 구현한 클래스 검색 및 신규 메서드 구현 여부 확인
  3. CSRF/origin 검증 관련 폼 제출·API 요청 스테이징 테스트
  4. Cache::touch() / Store::touch() 호출부에 TTL 인자 명시
  5. composer update --dry-run으로 의존성 충돌 사전 확인
  6. Http::pool() 사용부에서 동시성 옵션 명시 여부 검토

GitHub 릴리스 노트를 근거로 언어 모델 (claude-sonnet-5)이 작성했으며, 사람이 검수하지 않았습니다. 실제 적용 전에는 공식 릴리스 노트와 업그레이드 가이드를 함께 확인하세요.

GitHub 원문 릴리스 노트 보기
GitHub 공식 릴리스 노트 보기 →