본문 바로가기

기여하기

번역일: 2026년 6월 20일

기여하기

버그 리포트

Laravel은 단순한 버그 리포트보다 적극적인 풀 리퀘스트(PR) 참여를 권장합니다. PR은 "검토 준비 완료(ready for review)" 상태일 때만 검토되며, 드래프트(draft) 상태로 오랫동안 방치된 PR은 며칠 후 자동으로 닫힐 수 있습니다. 새로운 기능을 추가하는 PR이라면 관련 테스트도 모두 통과해야 합니다.

버그 리포트를 작성할 때는 명확한 제목과 문제 설명을 포함하고, 버그를 재현할 수 있는 코드 예시와 관련 정보를 최대한 함께 제공해 주세요. 버그 리포트의 핵심 목적은 같은 문제를 겪는 다른 개발자들과 함께 해결책을 찾아가는 것입니다.

버그 리포트를 올렸다고 해서 누군가가 즉시 수정해 줄 것이라고 기대하기는 어렵습니다. 리포트는 문제 해결의 출발점을 마련하는 역할을 합니다. 직접 기여하고 싶다면 이슈 트래커에 등록된 버그를 수정하는 방식으로 참여할 수 있습니다. 전체 이슈 목록을 보려면 GitHub 로그인이 필요합니다.

DocBlock 오류, PHPStan 경고, IDE 경고 등을 발견했다면 GitHub 이슈를 등록하지 말고, 직접 수정한 내용을 PR로 제출해 주세요.

Laravel의 소스 코드는 GitHub에서 관리되며, 각 프로젝트별 저장소는 다음과 같습니다:

지원 질문

GitHub 이슈 트래커는 버그 추적과 기능 논의를 위한 공간입니다. 사용법 질문이나 일반적인 도움 요청은 아래 채널을 이용해 주세요:

핵심 개발 논의

새로운 기능 제안이나 기존 동작 개선에 대한 아이디어는 Laravel 프레임워크 저장소의 GitHub 토론 게시판에서 논의할 수 있습니다. 새 기능을 제안할 때는 해당 기능을 구현하는 코드를 일부라도 직접 작성할 의향이 있어야 합니다.

버그, 신규 기능, 기존 기능 구현에 관한 자유로운 토론은 Laravel Discord 서버#internals 채널에서 이루어집니다. Laravel 메인테이너인 Taylor Otwell은 보통 평일 오전 8시~오후 5시(UTC-06:00, 미국 시카고 기준) 사이에 채널에 접속해 있으며, 그 외 시간에도 간헐적으로 참여합니다.

어떤 브랜치로?

PR을 어느 브랜치에 보내야 할지 헷갈릴 수 있습니다. 아래 기준을 참고하세요.

버그 수정은 현재 버그 수정을 지원하는 최신 버전(현재 12.x) 브랜치로 보내야 합니다. 다가오는 릴리스에서만 존재하는 기능의 버그가 아니라면, 버그 수정을 master 브랜치로 보내지 마세요.

현재 릴리스와 완전히 하위 호환되는 소규모 기능 추가는 최신 안정 브랜치(현재 12.x)로 보낼 수 있습니다.

하위 호환을 깨는 변경 사항이 포함된 주요 신기능은 반드시 다음 릴리스를 담당하는 master 브랜치로 보내야 합니다.

컴파일된 에셋

laravel/laravel 저장소의 resources/cssresources/js 디렉터리에 있는 파일처럼 컴파일이 필요한 파일을 변경할 때는 컴파일된 결과물을 커밋에 포함하지 마세요. 파일 크기가 크기 때문에 메인테이너가 실질적으로 검토하기 어렵고, 악의적인 코드를 숨겨 삽입하는 경로로 악용될 수 있습니다. 이를 방지하기 위해 모든 컴파일된 파일은 Laravel 메인테이너가 직접 생성하고 커밋합니다.

AI 생성 기여

모든 PR에 감사드립니다. 다만 AI 도구로 생성된 코드를 사람이 충분히 검토하거나 이해하지 않고 그대로 제출한 기여는 받아들이지 않습니다.

AI 도구를 활용해 기여하는 경우, 제출 전에 생성된 코드를 직접 꼼꼼히 검토하고 테스트하며 완전히 이해한 상태여야 합니다.

AI가 전적으로 생성한 이슈나 PR을 대량으로 제출하는 행위는 용납되지 않습니다. 이러한 PR은 검토 없이 닫히며, 해당 사용자는 저장소에서 차단될 수 있습니다.

기여자들이 기존 코드베이스를 충분히 파악하고, 커뮤니티와 소통하며, 문제를 스스로 이해하고 고민한 결과물을 PR로 제출해 주시길 권장합니다.

보안 취약점

Laravel에서 보안 취약점을 발견했다면 GitHub 이슈로 공개하지 말고, Taylor Otwell(taylor@laravel.com)에게 이메일로 직접 제보해 주세요. 모든 보안 취약점은 신속하게 처리됩니다.

코딩 스타일

Laravel은 PSR-2 코딩 표준과 PSR-4 오토로딩 표준을 따릅니다.

PHPDoc

아래는 Laravel에서 사용하는 올바른 PHPDoc 블록 예시입니다. @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

코딩 스타일이 완벽하지 않더라도 걱정하지 않아도 됩니다. PR이 머지된 후 StyleCI가 자동으로 스타일 수정 사항을 Laravel 저장소에 반영합니다. 덕분에 코드 스타일보다 기여의 내용 자체에 집중할 수 있습니다.

행동 강령

Laravel의 행동 강령은 Ruby의 행동 강령을 기반으로 합니다. 위반 사항은 Taylor Otwell(taylor@laravel.com)에게 신고할 수 있습니다:

  • 참여자는 서로 다른 견해를 존중해야 합니다.
  • 참여자는 개인 공격이나 비하적인 발언을 삼가야 합니다.
  • 타인의 말과 행동을 해석할 때는 항상 선의를 가정해야 합니다.
  • 합리적으로 괴롭힘으로 간주될 수 있는 행동은 용납되지 않습니다.

이 문서는 Laravel 공식 문서(MIT)를 한국 개발자를 위해 번역·재구성한 것입니다.

번역일: 2026년 6월 20일