기여하기
번역일: 2026년 6월 20일
기여하기
버그 리포트
Laravel은 단순한 버그 리포트보다 적극적인 Pull Request 참여를 권장합니다. Pull Request는 "ready for review" 상태로 표시되어 있고, 새 기능에 대한 모든 테스트가 통과된 경우에만 검토됩니다. "draft" 상태로 방치된 비활성 Pull Request는 며칠 후 자동으로 닫힙니다.
버그 리포트를 작성할 경우에는 명확한 제목과 문제 설명을 포함해야 합니다. 가능한 한 많은 관련 정보와 버그를 재현할 수 있는 코드 샘플을 함께 첨부하세요. 버그 리포트의 목적은 본인을 포함한 다른 사람들이 버그를 쉽게 재현하고 수정 방법을 찾을 수 있도록 돕는 것입니다.
버그 리포트는 같은 문제를 겪고 있는 다른 사람들과 함께 해결책을 찾아나가기 위한 출발점입니다. 리포트를 올렸다고 해서 자동으로 누군가가 바로 수정해줄 것을 기대하지는 마세요. 직접 기여하고 싶다면 이슈 트래커에 등록된 버그 목록을 확인하고 수정에 참여해보세요. 전체 이슈를 보려면 GitHub 인증이 필요합니다.
Laravel을 사용하다가 잘못된 DocBlock, PHPStan 경고, IDE 경고를 발견한 경우에는 GitHub 이슈를 생성하지 말고, 직접 Pull Request를 통해 수정해주세요.
Laravel의 소스 코드는 GitHub에서 관리되며, 각 프로젝트별 저장소는 다음과 같습니다:
- Laravel Application
- Laravel Art
- Laravel Documentation
- Laravel Dusk
- Laravel Cashier Stripe
- Laravel Cashier Paddle
- Laravel Echo
- Laravel Envoy
- Laravel Folio
- Laravel Framework
- Laravel Homestead
- Laravel Homestead Build Scripts
- Laravel Horizon
- Laravel Jetstream
- Laravel Passport
- Laravel Pennant
- Laravel Pint
- Laravel Prompts
- Laravel Sail
- Laravel Sanctum
- Laravel Scout
- Laravel Socialite
- Laravel Telescope
- Laravel Website
지원 질문
GitHub 이슈 트래커는 사용 중 발생하는 질문이나 도움 요청을 위한 공간이 아닙니다. 기술적인 질문이 있다면 아래 채널을 활용해 주세요:
코어 개발 논의
새로운 기능 제안이나 기존 동작 방식 개선 아이디어는 Laravel 프레임워크 저장소의 GitHub 토론 게시판에서 제안할 수 있습니다. 새 기능을 제안할 때는 해당 기능 구현에 필요한 코드 일부를 직접 작성할 의지가 있어야 합니다.
버그, 새 기능, 기존 기능 구현에 관한 자유로운 토론은 Laravel Discord 서버의 #internals 채널에서 이루어집니다. Laravel 메인테이너인 Taylor Otwell은 평일 오전 8시~오후 5시(UTC-06:00, 미국/시카고 기준)에 주로 채널에 상주하며, 그 외 시간에는 간헐적으로 참여합니다.
어떤 브랜치로?
모든 버그 수정은 현재 버그 수정을 지원하는 최신 버전(현재 10.x)으로 Pull Request를 보내야 합니다. 버그 수정은 다음 릴리즈에서만 존재하는 기능을 수정하는 경우가 아닌 한, 절대 master 브랜치로 보내면 안 됩니다.
현재 릴리즈와 완전히 하위 호환되는 소규모 기능 추가는 최신 안정 브랜치(현재 10.x)로 보낼 수 있습니다.
주요 신규 기능이거나 하위 호환성을 깨는 변경 사항은 반드시 다음 릴리즈가 담길 master 브랜치로 보내야 합니다.
컴파일된 에셋
laravel/laravel 저장소의 resources/css나 resources/js 디렉터리처럼 컴파일된 파일에 영향을 미치는 변경 사항을 제출할 때는 컴파일된 파일을 커밋에 포함하지 마세요. 파일 크기가 커서 메인테이너가 실질적으로 검토하기 어려우며, 악의적인 코드를 삽입하는 경로로 악용될 수 있습니다. 이를 방지하기 위해 모든 컴파일된 파일은 Laravel 메인테이너가 직접 생성하고 커밋합니다.
보안 취약점
Laravel에서 보안 취약점을 발견한 경우, Taylor Otwell(taylor@laravel.com)에게 이메일로 알려주세요. 모든 보안 취약점은 신속하게 처리됩니다.
코딩 스타일
Laravel은 PSR-2 코딩 표준과 PSR-4 오토로딩 표준을 따릅니다.
PHPDoc
아래는 Laravel에서 사용하는 올바른 문서 블록 예시입니다. @param 속성 뒤에 공백 두 칸, 인자 타입, 공백 두 칸, 변수명 순서로 작성하는 것에 주의하세요:
/**
* 컨테이너에 바인딩을 등록합니다.
*
* @param string|array $abstract
* @param \Closure|string|null $concrete
* @param bool $shared
* @return void
*
* @throws \Exception
*/
public function bind($abstract, $concrete = null, $shared = false)
{
// ...
}네이티브 타입 선언으로 인해 @param이나 @return이 불필요하게 중복되는 경우에는 생략할 수 있습니다:
/**
* Job을 실행합니다.
*/
public function handle(AudioProcessor $processor): void
{
//
}단, 네이티브 타입이 제네릭(generic)인 경우에는 @param 또는 @return으로 구체적인 타입을 명시해야 합니다:
/**
* 메일 메시지의 첨부 파일 목록을 반환합니다.
*
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
*/
public function attachments(): array
{
return [
Attachment::fromStorage('/path/to/file'),
];
}StyleCI
코드 스타일이 완벽하지 않더라도 걱정하지 마세요! StyleCI가 Pull Request가 머지된 후 스타일 수정 사항을 자동으로 Laravel 저장소에 반영해줍니다. 덕분에 코드 스타일보다 기여 내용 자체에 집중할 수 있습니다.
행동 강령
Laravel의 행동 강령은 Ruby의 행동 강령을 기반으로 합니다. 위반 사항은 Taylor Otwell(taylor@laravel.com)에게 신고할 수 있습니다:
- 참여자는 반대 의견을 존중해야 합니다.
- 참여자는 개인 공격이나 비하 발언이 없는 언행을 유지해야 합니다.
- 타인의 말과 행동을 해석할 때는 항상 선의로 이해해야 합니다.
- 합리적으로 괴롭힘으로 간주될 수 있는 행동은 용납되지 않습니다.