이 글은 소스 코드 조사에 기반한 정보입니다. 2026년 7월 시점에서 개발 중인 리포지토리입니다.
Laravel Package Skeleton이란
Laravel Package Skeleton은 Laravel 패키지를 만들 때의 스타터 템플릿입니다.composer install을 실행하면 대화형 설정 스크립트(configure.php)가 자동 기동하여, 패키지명 · 벤더명 · 네임스페이스 · 사용할 기능을 일문일답으로 설정합니다. 설정 후에는 즉시 개발을 시작할 수 있는 상태가 됩니다.
왜 이 스켈레톤이 필요한가
Laravel 패키지를 “자기 방식”으로 만들기 시작하면, 테스트 환경 셋업 · 정적 해석 · 코드 포맷 · GitHub Actions 설정 등, 본래의 패키지 로직과는 무관한 작업에 많은 시간을 소비합니다. Laravel Package Skeleton은 Laravel 팀이 실제 패키지 개발에서 사용하는 베스트 프랙티스를 하나의 템플릿으로 정리한 것입니다. 템플릿을 사용하면 “환경 구축”을 건너뛰고 패키지 로직 구현부터 바로 시작할 수 있습니다.포함되는 도구
| 도구 | 역할 |
|---|---|
| Pest | 테스트 프레임워크 |
| Larastan | Laravel용 정적 해석 |
| Pint | 코드 포맷터 |
| Orchestra Testbench | 패키지 테스트 환경 |
| Workbench | 엔드투엔드 개발용 앱 |
설정 가능한 패키지 기능
composer install 시의 프롬프트에서 필요한 기능만을 선택할 수 있습니다. 선택하지 않은 기능에 관한 스캐폴드는 삭제됩니다.
| 기능 | 설명 |
|---|---|
| Config file | config/에 설정 파일 추가 |
| Routes | 라우트 파일 추가 |
| Views | Blade 뷰 추가 |
| Translations | 언어 파일 추가 |
| Migrations | 마이그레이션 파일 추가 |
| Assets | 공개용 애셋 추가 |
| Commands | Artisan 명령 추가 |
| Facade | 파사드 클래스 추가 |
| Boost Skill | AI 에이전트용 스킬 추가 |
설정 가능한 도구
기능과 마찬가지로, 프로젝트에 따라 도구의 온/오프도 선택할 수 있습니다.| 도구 | 설명 |
|---|---|
| Dependabot | 의존관계의 자동 갱신 PR |
| Issue Template | GitHub Issue 템플릿 |
| Changelog | 릴리스 시의 자동 CHANGELOG.md 갱신 |
| Funding | GitHub Sponsors 스폰서 링크 |
| Security Policy | 보안 취약성 보고 정책 |
셋업의 흐름
의존관계 설치
composer install을 실행하면 configure.php가 자동 기동합니다.--no-scripts 옵션을 사용합니다.프롬프트에 응답
이하 항목을 일문일답으로 설정합니다.
- Author Name / Email
- Vendor 이름 (예:
kawax) - Package 이름 (예:
my-package) - Package 설명문
- Class 이름 (예:
MyPackage) - 사용할 기능의 멀티 선택
- 사용할 도구의 멀티 선택
- GitHub 리포지토리의 자동 생성 (gh CLI가 인증된 경우)
비대화 모드
CI나 스크립트에서 셋업하는 경우는--no-interaction 플래그를 사용합니다.
GitHub Actions CI
스켈레톤에 포함되는tests.yml은 여러 PHP 버전 · Laravel 버전 · OS의 조합으로 테스트를 실행하는 매트릭스 빌드입니다.
- PHPStan (
composer analyse) — 정적 해석 - Pint (
composer lint:check) — 스타일 체크 - 타입 커버리지 (
composer test:types) — 타입 커버리지 100% 확인 (Ubuntu만) - 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_TOKEN을 사용합니다.
현재의 개발 상황
- GitHub 리포지토리: laravel/package-skeleton
- 공개 시기: 2026년 7월 (활발히 개발 중)
- 주의: 개발 초기 단계이므로 API나 구성이 변경될 가능성이 있습니다
laravel/package-skeleton 리포지토리
소스 코드와 최신 정보는 이곳에서 확인하실 수 있습니다.
패키지 개발 공식 문서
Laravel 패키지 개발의 기초에 대해서는 공식 문서를 참고하세요.