메인 콘텐츠로 건너뛰기
이 글은 소스 코드 조사에 기반한 정보입니다. 2026년 7월 시점에서 개발 중인 리포지토리입니다.

Laravel Package Skeleton이란

Laravel Package Skeleton은 Laravel 패키지를 만들 때의 스타터 템플릿입니다.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
composer install
composer install을 실행하면 대화형 설정 스크립트(configure.php)가 자동 기동하여, 패키지명 · 벤더명 · 네임스페이스 · 사용할 기능을 일문일답으로 설정합니다. 설정 후에는 즉시 개발을 시작할 수 있는 상태가 됩니다.

왜 이 스켈레톤이 필요한가

Laravel 패키지를 “자기 방식”으로 만들기 시작하면, 테스트 환경 셋업 · 정적 해석 · 코드 포맷 · GitHub Actions 설정 등, 본래의 패키지 로직과는 무관한 작업에 많은 시간을 소비합니다. Laravel Package Skeleton은 Laravel 팀이 실제 패키지 개발에서 사용하는 베스트 프랙티스를 하나의 템플릿으로 정리한 것입니다. 템플릿을 사용하면 “환경 구축”을 건너뛰고 패키지 로직 구현부터 바로 시작할 수 있습니다.

포함되는 도구

도구역할
Pest테스트 프레임워크
LarastanLaravel용 정적 해석
Pint코드 포맷터
Orchestra Testbench패키지 테스트 환경
Workbench엔드투엔드 개발용 앱

설정 가능한 패키지 기능

composer install 시의 프롬프트에서 필요한 기능만을 선택할 수 있습니다. 선택하지 않은 기능에 관한 스캐폴드는 삭제됩니다.
기능설명
Config fileconfig/에 설정 파일 추가
Routes라우트 파일 추가
ViewsBlade 뷰 추가
Translations언어 파일 추가
Migrations마이그레이션 파일 추가
Assets공개용 애셋 추가
CommandsArtisan 명령 추가
Facade파사드 클래스 추가
Boost SkillAI 에이전트용 스킬 추가

설정 가능한 도구

기능과 마찬가지로, 프로젝트에 따라 도구의 온/오프도 선택할 수 있습니다.
도구설명
Dependabot의존관계의 자동 갱신 PR
Issue TemplateGitHub Issue 템플릿
Changelog릴리스 시의 자동 CHANGELOG.md 갱신
FundingGitHub Sponsors 스폰서 링크
Security Policy보안 취약성 보고 정책

셋업의 흐름

1

템플릿에서 리포지토리 생성

GitHub의 Use this template 버튼을 눌러 새 리포지토리를 만들거나, 직접 클론합니다.
git clone https://github.com/laravel/package-skeleton.git my-package
cd my-package
2

의존관계 설치

composer install을 실행하면 configure.php가 자동 기동합니다.
composer install
스크립트를 수동으로 실행하고 싶은 경우는 --no-scripts 옵션을 사용합니다.
composer install --no-scripts
php configure.php
3

프롬프트에 응답

이하 항목을 일문일답으로 설정합니다.
  • Author Name / Email
  • Vendor 이름 (예: kawax)
  • Package 이름 (예: my-package)
  • Package 설명문
  • Class 이름 (예: MyPackage)
  • 사용할 기능의 멀티 선택
  • 사용할 도구의 멀티 선택
  • GitHub 리포지토리의 자동 생성 (gh CLI가 인증된 경우)
4

동작 확인

composer test
PHPStan → Pint → 타입 커버리지 → Pest 순으로 전 체크를 실행합니다.
5

Workbench에서 엔드투엔드 테스트

composer serve
http://localhost:8000에 패키지 확인용 간이 Laravel 앱이 기동합니다.

비대화 모드

CI나 스크립트에서 셋업하는 경우는 --no-interaction 플래그를 사용합니다.
php configure.php --no-interaction --config --routes
기능 플래그를 지정하면 지정한 기능만이 포함됩니다. 플래그를 생략하면 모든 기능이 포함됩니다.

GitHub Actions CI

스켈레톤에 포함되는 tests.yml은 여러 PHP 버전 · Laravel 버전 · OS의 조합으로 테스트를 실행하는 매트릭스 빌드입니다.
matrix:
  os: [ubuntu-latest, windows-latest]
  php: [8.3, 8.4, 8.5]
  laravel: [12.*, 13.*]
  stability: [prefer-lowest, prefer-stable]
각 잡에서 실행되는 내용:
  1. PHPStan (composer analyse) — 정적 해석
  2. Pint (composer lint:check) — 스타일 체크
  3. 타입 커버리지 (composer test:types) — 타입 커버리지 100% 확인 (Ubuntu만)
  4. Pest (composer test:unit) — 유닛 테스트 (Ubuntu만)

Changelog 자동화

update-changelog.yml이 GitHub Release를 트리거로 CHANGELOG.md를 자동 갱신합니다. release.yml에서 PR 라벨별로 변경 내용을 분류하여 릴리스 노트를 생성합니다. 릴리스 노트의 라벨:
라벨분류
breaking파괴적 변경
enhancement기능 추가
bug버그 수정
documentation문서
dependencies의존관계
maintenance메인터넌스
skip-changelog변경 이력에 포함하지 않음

configure.php가 하는 일

configure.php는 설정 스크립트로 한 번만 실행하는 bootstrap입니다. 실행 후에는 삭제됩니다.

설치 후의 GitHub 설정

README에 기재된 설치 후의 권장 설정:
  • Dependabot PR은 수동 리뷰 — 자동 머지 워크플로우는 포함되지 않음
  • 릴리스 노트 라벨 작성breaking · enhancement · bug · documentation · dependencies · maintenance · skip-changelog · duplicate
  • main 브랜치 보호 설정 — Changelog 자동화는 GitHub Actions가 CHANGELOG.md에 커밋하므로, 브랜치 보호 룰의 조정이 필요
추가 리포지토리 시크릿은 불필요합니다. 포함된 워크플로우는 GitHub의 내장 GITHUB_TOKEN을 사용합니다.

현재의 개발 상황

  • GitHub 리포지토리: laravel/package-skeleton
  • 공개 시기: 2026년 7월 (활발히 개발 중)
  • 주의: 개발 초기 단계이므로 API나 구성이 변경될 가능성이 있습니다
이제부터 Laravel 패키지를 만들기 시작하는 분은, 자기 방식의 스켈레톤을 처음부터 조립하기보다 이 템플릿에서 시작하는 것이 좋습니다. Laravel 팀이 오랜 세월의 패키지 개발에서 얻은 베스트 프랙티스가 담겨 있습니다.

laravel/package-skeleton 리포지토리

소스 코드와 최신 정보는 이곳에서 확인하실 수 있습니다.

패키지 개발 공식 문서

Laravel 패키지 개발의 기초에 대해서는 공식 문서를 참고하세요.
마지막 수정일 2026년 7월 13일