Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

기여를 시작하는 방법

Rust에 기여하는 데 관심을 가져 주셔서 감사합니다! 기여하는 방법에는 여러 가지가 있으며, 저희는 그 모든 것을 소중히 여깁니다. 이 문서는 다른 Rust 기여자들과 연락하고 Rust 프로젝트에 기여를 시작하는 방법을 설명합니다.

다시 한번 알려드리자면, 모든 기여자는 저희 행동 강령을 따라야 합니다.

질문하기

먼저, 잠재적인 기여와 관련해 궁금한 점이 있다면 다음 장소에서 다른 기여자들에게 물어볼 수 있습니다.

  • Rust Zulip 서버는 대부분의 Rust 팀과 기여자를 위한 주요 소통 공간입니다. 또한 무슨 일이 진행되고 있는지 살펴보기에도 좋은 곳입니다.
  • internals.rust-lang.org(IRLO)는 Rust 개발을 논의하는 포럼입니다.

더 많은 자료를 원하시면 공식 웹사이트의 팀 및 워킹 그룹 목록커뮤니티 페이지도 참고하십시오.

질문해 주십시오! 많은 분들이 “전문가의 시간을 낭비하는 것 같다“고 느낀다고 말씀하시지만, 저희는 그렇게 생각하지 않습니다. 기여자는 저희에게 중요합니다.

또한 편하게 느끼신다면 공개된 주제에서 질문하는 것을 선호해 주십시오. 이렇게 하면 다른 사람들도 질문과 답변을 볼 수 있고, 나아가 이 가이드에 다시 반영할 수도 있기 때문입니다 :)

: 영어가 모국어가 아니고 글쓰기에 자신이 없으시다면, 번역기를 활용해 보십시오. 다만 길고 복잡한 단어를 생성하는 LLM 도구 사용은 피하십시오. 일상적인 팀 작업에서는 간단하고 명확한 단어가 이해하기 쉬워서 가장 좋습니다. 사소한 오타나 문법 실수가 있더라도 사람처럼 느껴지게 만들며, 사람들은 사람과 더 잘 소통합니다.

저희의 LLM 정책도 참고하십시오.

실질적인 변경 사항을 기여하고 싶으시다면, 먼저 해당 변경 사항과 관련된 팀에 연락하시기를 권장드립니다. 각 팀마다 선호하는 작업 방식이 다르므로, 사전 논의와 팀의 동의를 얻기 위해 권장되는 경로를 따라 주십시오.

  • 컴파일러 팀: 주요 변경 제안(MCP) 또는 RFC(더 알아보려면 여기를 참고하십시오)
  • Rustdoc 팀: 팀의 Zulip 채널에서 연락하십시오
  • 라이브러리 팀: GitHub에서 API 변경 제안(ACP)을 열거나 Zulip에서 팀에 연락하십시오(더 알아보려면 여기를 참고하십시오)
  • Bootstrap 팀: 팀의 Zulip 채널에서 문의하십시오

의문이 있는 경우 언제든지 Zulip에서 질문하셔도 됩니다.

예절

질문에 최대한 유용한 정보를 포함해 주시기를 부탁드리지만, Rust 기여에 익숙하지 않으실 경우 이것이 어려울 수 있다는 점을 저희도 알고 있습니다.

맥락 없이 누군가를 그냥 멘션하는 것은 다소 성가시고 소음만 만들어낼 수 있으므로, 팀원들이 하루에 많은 멘션을 받는다는 점을 유념해 주시기를 부탁드립니다.

기여를 어떻게 시작할까요?

Rust 프로젝트는 상당히 크기 때문에 프로젝트의 어느 부분에 도움이 필요한지, 또는 초보자에게 좋은 시작점이 어디인지 알기 어려울 수 있습니다. 여러분이 기여를 시작할 수 있는 rust-lang 프로젝트 목록을 (전부는 아니지만) 소개합니다. 그중 일부는 기여자 가이드와 도움이 필요하다고 표시되었거나 첫 이슈로 좋다고 표시된 이슈를 가지고 있습니다.

프로젝트기여 가이드첫 기여로 좋은 이슈설명
컴파일러rustc-dev-guide도움이 필요함Rust 컴파일러 및 관련 도구
표준 라이브러리std-dev-guideRust 표준 라이브러리
RustdocRustdoc 개요Rust 문서 생성기
CargoCargo 기여자 가이드초보자에게 좋은 이슈Rust 패키지 매니저 및 빌드 시스템
ClippyClippy 기여자 가이드첫 기여로 좋은 이슈Rust 린터
RustfmtRustfmt 기여 가이드첫 기여로 좋은 이슈Rust 포매터
Rust analyzer기여 빠른 시작첫 기여로 좋은 이슈IDE용 Rust 컴파일러 프런트엔드 및 LSP
MiriMiri 기여 가이드초심자를 위한 이슈Rust 인터프리터 및 UB 탐지기
RustupRustup 개발자 가이드도움이 필요합니다Rust 툴체인 설치 프로그램
crates.iocrates.io 기여 가이드이슈 트래커Rust 패키지 레지스트리
Borsbors 개발 가이드도움이 필요합니다Rust CI 병합 봇
rustc-perf도움이 필요합니다Rust 컴파일러 벤치마크 스위트
Triagebot처음 시작하기 좋은 이슈Rust 자동화 봇
Rust playground도움이 필요합니다Rust 온라인 playground
RustlingsRustlings 기여 가이드이슈 트래커Rust 연습 문제
MdBookMdBook 기여 가이드도움 필요Rust로 작성된 책 생성기

영감을 얻고 싶으시다면 rust-lang의 모든 저장소를 확인해 보십시오!

에티켓

FOSS1 프로젝트에서 기여를 시작하는 것이 때로는 혼란스러울 수 있다는 것을 알고 있으며, 저희는 기여자와 리뷰어 모두가 프로젝트에서 협업할 때 최상의 경험을 하기를 바랍니다.

이 목표를 달성하기 위해, 저희는 서로의 시간과 노력에 대한 신뢰와 존중을 쌓고자 합니다. 저희가 권장하는 것은 다음과 같은 간단한 지침을 따르는 것입니다:

  • 작게 시작하십시오. 첫 기여로 커다란 코드 덩어리를 제출하는 것은 신뢰를 쌓는 데 도움이 되지 않습니다
  • 제출하는 작업물은 본인의 것이어야 하며, 이는 그 모든 부분을 완전히 이해하고 있음을 의미합니다
  • 제출하기 전에 작업물을 세심하게 검토해야 하며, 확신이 서지 않는 부분은 질문을 하거나(인라인 코멘트나 todo!()를 통해) 저희에게 알려 주십시오
  • 이슈를 고치고 싶지만 설계에 대해 의문이 있으시다면, 저희 Zulip 서버에 참여하셔서 조언을 구하셔도 좋습니다
  • 리뷰어의 시간을 존중해 주십시오: 리뷰 사이에 며칠의 간격을 두고, 코드가 컴파일되고 테스트를 통과할 때만 리뷰를 요청하거나, 그 단계에서 리뷰를 요청하는 이유를 설명해 주십시오(준비가 될 때까지 초안 상태로 유지할 수 있습니다)
  • 코멘트는 간결하게 유지하도록 노력하십시오. 완벽한 문어체 표현에 대해서는 걱정하지 마십시오. 명료함과 요점을 벗어나지 않는 것을 추구하십시오
  • 프로젝트 내 소통의 일관성을 위해 (커밋 메시지 등을 포함하여) 영어로 소통해 주십시오(영어는 저희 프로젝트에서 통용되는 공용어로 채택되어 있습니다). 문법이나 문장이 완벽할 필요는 전혀 없습니다!

저희의 LLM 사용 정책도 참고해 주십시오.

다양한 종류의 기여

Rust 프로젝트에 기여할 수 있는 방법에는 여러 가지가 있습니다:

  • 코드를 작성하는 것이 가장 명백한 방법입니다. 하지만 반드시 Rust로만 작성해야 하는 것은 아닙니다! 저희 프로젝트 대부분이 물론 Rust로 작성되어 있기는 하지만, 다른 기술도 함께 사용합니다. 예를 들어, GitHub CI 워크플로, 자동화 Python 스크립트를 개선하거나 HTML/CSS/JS로 웹 프런트엔드에 기여하실 수 있습니다(예: Rustdoc이나 벤치마크 스위트 웹사이트). 여러분의 강점을 살려 보십시오!

  • 문서 개선은 아마도 기여를 시작하기에 가장 쉬운 방법 중 하나일 것입니다. 오타를 발견하셨거나, 불분명한 내용이 있거나, 이 페이지나 Forge의 다른 곳, 또는 다른 Rust(사용자 대상) 문서에서 유용한 정보가 빠져 있다고 느끼셨습니까? 좋습니다, 그렇다면 풀 리퀘스트를 보내주시면 기여자가 되실 수 있습니다! :)

    현재로서는 내부 문서에 대한 타이포그래피/맞춤법 수정(대개 그 수고나 리뷰 시간만큼 가치가 없습니다)이나 저희 테스트 스위트에 대한 수정(의도치 않게 코드 회귀를 일으킬 수 있습니다)은 받지 않고 있음을 알려 드립니다

  • 테스트를 개선하는 것 또한 매우 가치 있는 일입니다. 테스트는 아무리 많아도 부족하기 때문입니다. 여기에는 기존 테스트를 문서화하거나, 이미 수정되었지만 제대로 된 테스트가 없는 이슈에 대해 테스트를 작성하는 것도 포함될 수 있습니다.

  • 저희 저장소의 이슈 트래커를 개선하는 데도 도움을 주실 수 있습니다. 이슈 트리아지를 돕거나, 오래된 이슈를 재현하여 여전히 유효한지 확인하는 방식으로 가능합니다.

  • 또는 프로그래밍 언어에 관한 논의를 좋아하신다면, 저희 RFC 프로세스에 참여하실 수도 있습니다.

  • users.rust-lang.org(URLO)나 StackOverflow에서 다른 Rust 사용자들을 돕기 위해 질문에 답변하실 수도 있습니다.


  1. 자유-오픈 소스 프로젝트, 참고: https://en.wikipedia.org/wiki/Free_and_open-source_software