본문 바로가기
← 패키지 목록

Laravel Data

spatie/laravel-data

제출자 Laravel Korea Discovery Bot
최신 v4.23.1라이센스 MIT배포 2026년 10월 28일
큐·작업

통합 리소스와 데이터 전송 객체(DTO)를 만들어 보세요

Laravel을 위한 강력한 데이터 객체

Latest Version on Packagist Tests PHPStan Check & fix styling Total Downloads

이 패키지를 사용하면 다양한 용도로 활용할 수 있는 풍부한 데이터 객체를 만들 수 있습니다. 데이터를 한 번만 정의해 두면 됩니다.

  • 폼 리퀘스트 대신 데이터 객체를 사용할 수 있습니다.
  • API 트랜스포머 대신 데이터 객체를 사용할 수 있습니다.
  • TypeScript 정의를 직접 작성하는 대신... 🥁 역시 데이터 객체를 사용할 수 있습니다.

laravel-data 전용 객체는 Data를 상속하는 평범한 PHP 객체입니다.

use Spatie\LaravelData\Data; class SongData extends Data { public function __construct( public string $title, public string $artist, ) { } }

Data를 상속하면 다음과 같은 기능을 사용할 수 있습니다.

  • 데이터 객체를 (Laravel API 리소스처럼) 리소스로 자동 변환
  • 지연(lazy) 프로퍼티로 데이터 객체 중 요청된 부분만 변환
  • 요청 데이터로부터 데이터 객체를 자동 생성하고 유효성 검증
  • 데이터 객체 내부 프로퍼티의 유효성 검증 규칙을 자동으로 추론
  • 원하는 어떤 타입으로부터든 데이터 객체를 생성 가능
  • 데이터 객체 생성 시 자동 유효성 검증 지원
  • 데이터 객체로부터 프론트엔드에서 쓸 수 있는 TypeScript 정의 생성
  • 데이터 객체를 Eloquent 모델의 프로퍼티로 저장
  • 그 밖에도 다양한 기능

왜 이 패키지를 사용할까요?

  • 앱에서 나가는 데이터와 프론트엔드에서 다시 돌아오는 데이터가 모두 타입으로 보장되어 오류가 크게 줄어듭니다.
  • 같은 프로퍼티를 리소스, 데이터 전송 객체(DTO), 요청 유효성 검증에서 세 번씩 작성할 필요가 없습니다.
  • PHP 타입 시스템만으로 알 수 있는 규칙은 자동으로 처리되므로 유효성 검증 규칙을 훨씬 적게 작성해도 됩니다.
  • 데이터 객체에 대응하는 TypeScript 타입을 별도 작업 없이 얻을 수 있습니다.

영상으로 배우고 싶으신가요?

Laracon에서 발표된 Laravel Data 소개 영상을 확인해 보세요.

후원 안내

Spatie는 최고 수준의 오픈 소스 패키지를 만드는 데 많은 자원을 투자하고 있습니다. 유료 제품 구매로 후원하실 수 있습니다.

사용 중인 패키지를 적어 고향에서 보낸 엽서를 보내 주시면 큰 힘이 됩니다. 주소는 문의 페이지에서 확인할 수 있으며, 받은 엽서는 모두 가상 엽서 월에 게시합니다.

설치

Composer로 패키지를 설치할 수 있습니다.

composer require spatie/laravel-data

설치 관련 안내는 문서 사이트에서 확인하세요: https://spatie.be/docs/laravel-data/v4/installation-setup.

문서

전체 문서는 별도의 문서 사이트에서 볼 수 있습니다.

테스트

composer test

변경 내역

최근 변경 사항은 CHANGELOG를 참고하세요.

기여하기

자세한 내용은 CONTRIBUTING을 참고하세요.

보안 취약점

보안 취약점을 신고하는 방법은 보안 정책을 확인하세요.

크레딧

라이선스

MIT 라이선스(MIT)를 따릅니다. 자세한 내용은 라이선스 파일을 참고하세요.