Ultralytics 오픈 소스 프로젝트 기여를 시작하기 위한 팁
Ultralytics 오픈 소스 프로젝트에 기여하는 방법을 알아보고, 문서화, PR 검토 및 필수 도구 사용과 관련된 유용한 팁을 살펴보세요.

오픈 소스 소프트웨어의 기반은 협업, 학습, 공유입니다. 오픈 소스 프로젝트는 사람들이 함께 모여 자신보다 더 큰 무언가를 만들어 가는 훌륭한 방법입니다. Ultralytics는 오픈 소스의 원칙을 중요하게 여기며, 언제나 오픈 소스 프로젝트에 기여해 주실 것을 권장합니다.
문서 작성, 코드 검토 또는 이슈 해결을 통해 기여하고 싶지만 어디서 시작해야 할지 모르거나 문제에 직면한 경우에도 시작할 수 있도록 도와드리겠습니다. 이 글에서는 Ultralytics 오픈 소스 프로젝트에 기여를 시작하기 위한 몇 가지 팁을 안내합니다. 바로 시작해 보겠습니다!
Ultralytics 커뮤니티 기여의 중요성#
기여 방법을 살펴보기 전에 기여가 왜 중요한지에 대한 질문에 답해 보겠습니다. Ultralytics 커뮤니티의 기여가 중요하다고 굳게 믿습니다. 오픈 소스 프로젝트에 참여하면 더 나은 소프트웨어를 만드는 데 도움을 주는 것 이상의 일을 하게 됩니다. 기여자는 기술이 개방적이고 협력적이며 지속적으로 발전하도록 유지하는 데 핵심적인 역할을 합니다. 여러분의 기여는 프로젝트가 계속 활발하게 운영되고, 접근 가능하며, 전 세계 사용자와 개발자에게 유용하도록 만듭니다!
최첨단 소프트웨어를 만드는 것 외에도 Ultralytics 프로젝트에 기여하는 일은 여러분이 성장할 수 있는 훌륭한 기회입니다. 경험이 풍부한 개발자와 함께 작업하며 코딩, 문제 해결, 팀워크 역량을 개발하고 지침과 모범 사례를 배울 수 있습니다. 여러분의 노력은 전 세계 수천 명이 사용하는 도구에 실질적인 영향을 미칠 수 있습니다. 커뮤니티에 참여하면 전문 네트워크를 확장하고 새로운 기회를 열며, 포트폴리오를 강화하여 고용주에게 돋보일 수 있습니다.

그림 1. 기여해야 하는 이유. 이미지 작성자: 저자.
Ultralytics 오픈 소스 기여를 시작하는 방법#
시작하기에 좋은 방법은 공식 Ultralytics 기여 가이드를 확인하는 것입니다. 이 가이드에는 기여를 최대한 활용하는 데 도움이 되는 모범 사례와 팁이 풍부하게 담겨 있습니다. 첫 단계는 기여 지침을 이해하고 코드를 살펴보면서 프로젝트에 이미 포함된 내용을 익히는 것입니다.
개발에 기여하려는 경우든 최신 코드를 살펴보려는 경우든, 다음 단계는 Ultralytics 저장소를 클론하는 것입니다. 그런 다음 프로젝트 디렉터리로 이동하여 아래 코드 스니펫에 나온 것처럼 패키지를 editable 모드로 설치할 수 있습니다.
도움이 필요한 경우 빠른 시작 가이드에 원활하게 시작하는 데 필요한 모든 내용이 있습니다.
기여할 수 있는 다양한 영역#
환경을 설정하고 프로젝트를 익혔다면 의미 있는 영향을 미칠 수 있는 다양한 영역을 살펴볼 수 있습니다. Ultralytics는 참여할 수 있는 여러 방법을 제공하며, 자신의 역량과 관심사에 따라 기여 방법을 선택할 수 있습니다.
다음과 같은 옵션이 있습니다:
- 문서: 문서에 기여하는 것은 프로젝트를 깊이 살펴보면서 글쓰기 역량을 향상할 수 있는 좋은 방법입니다. 기존 문서를 개선하거나, 누락된 세부 정보를 추가하거나, 다른 사람들이 더 쉽게 기여할 수 있도록 새 가이드를 작성할 수 있습니다.
- 버그 수정: 코딩 경험이 있다면 버그 수정을 고려해 보세요. 사소한 조정부터 더 복잡한 문제까지 다양하며, 프로젝트에 가시적인 영향을 미칠 기회를 제공합니다.
- 기능 개선: 더 깊이 참여할 준비가 되었다면 기능 개선 작업은 도전적이면서도 보람 있을 수 있습니다. 새 기능을 추가하거나, 기존 기능을 개선하거나, 프로젝트 로드맵을 작업하는 일이 포함될 수 있습니다.
- Pull Request 검토: Pull Request를 검토하는 것도 기여할 수 있는 유용한 방법이며, 특히 프로젝트의 표준과 모범 사례에 익숙한 경우 더욱 그렇습니다. 피드백을 제공하고 개선 사항을 제안하면 코드베이스의 품질과 무결성을 유지하는 데 도움이 됩니다.
- 커뮤니티 토론: 협업하고 아이디어를 공유하는 것을 좋아한다면 커뮤니티 토론에 참여하는 것은 훌륭한 기여 방법입니다. 진행 중인 대화에 참여하고, 새로운 아이디어를 제안하거나, 자신의 통찰과 해결책을 제시하여 다른 사람을 도울 수 있습니다.
각 영역은 고유한 기여 방법을 제공하므로 자신의 강점과 관심사에 가장 잘 맞는 영역을 선택할 수 있습니다. 아무리 작은 기여라도 Ultralytics가 성장하고 발전하는 데 핵심적인 역할을 한다는 점을 기억하세요.

그림 2. 성장하는 커뮤니티에서는 모든 기여를 소중히 여깁니다. 이미지 출처: Envato Elements.
Ultralytics 오픈 소스 문서에 기여하기#
Ultralytics 문서에 기여할 때는 기존 문서를 검토하고 개선이 필요한 영역을 보여 주는 이슈나 토론이 있는지 확인해야 합니다. 이렇게 하면 가장 필요한 부분에 기여가 집중되도록 할 수 있습니다.
작성하거나 편집할 때는 일관성을 유지하기 위해 프로젝트의 지침을 따르는 것이 중요하다는 점을 기억하세요. 다음은 몇 가지 서식 지정 팁입니다:
- 항상 Markdown 서식을 사용합니다.
- 각 문서는 명확한 소개로 시작하고, 간단하고 이해하기 쉬운 언어를 사용합니다.
- 목록에는 글머리 기호를 사용하고, 링크에는 설명적인 텍스트를 사용하며, 페이지가 빠르게 로드되도록 1MB 미만의 이미지를 사용합니다.
- 서식 지정에 관한 질문이 있다면 이전 문서의 서식이 어떻게 지정되었는지 확인하는 것이 서식을 다시 점검하는 쉬운 방법입니다.

그림 3. Markdown 서식의 예(왼쪽)와 최종 시각화된 문서(오른쪽)입니다. 이미지 작성자: 저자.
초안을 작성한 후에는 문서를 로컬에서 빌드하여 미리 보는 것이 중요합니다. 제출하기 전에 문제를 발견할 수 있습니다. 이를 위해 먼저 저장소를 클론하고 프로젝트 디렉터리로 이동합니다:
그다음 필요한 종속 항목을 설치합니다:
마지막으로 문서를 로컬에서 제공하여 변경 사항을 검토합니다:
웹 브라우저에서 http://127.0.0.1:8000/으로 이동하면 로컬에서 빌드된 문서를 볼 수 있습니다.
명확성, 정확성, 일관성을 검토한 후에는 작성한 문서에 대한 명확한 설명과 함께 Pull Request를 제출할 수 있습니다. 문서의 내용과 가장 잘 맞는 적절한 섹션(가이드, 솔루션, 통합 등)에 문서를 배치해야 합니다. 또한 관련 섹션이 있는 index.md 파일과 전체 mkdocs.yml 파일을 확인하고 필요에 따라 업데이트하세요. 세부 사항에 주의를 기울이면 검토 과정이 원활하게 진행되고 기여 내용이 프로젝트에 잘 통합되도록 할 수 있습니다.
오픈 소스 코드에 기여할 때 고려할 사항#
Ultralytics 프로젝트에 코드를 기여할 때는 코드를 깔끔하고 유지 관리하기 쉬우며 통합하기 쉽게 만드는 모범 사례를 따르는 것이 중요합니다. 다음은 기억해 두어야 할 몇 가지 핵심 사항입니다:
- 코드 중복 방지: 가능한 경우 기존 코드를 재사용하고 불필요한 인수를 최소화합니다.
- 더 작고 집중된 변경 사항 작성: 대규모 수정 대신 규모가 작고 대상이 명확한 변경에 집중합니다.
- 코드 단순화 또는 제거: 코드를 단순화하거나 불필요한 부분을 제거할 기회를 찾습니다.
- 효과적인 docstring** 작성**: 코드의 기능을 명확히 설명하고 관련 리소스에 연결합니다.
- 불필요한 종속 항목 방지: 반드시 필요한 경우에만 종속 항목을 추가합니다.

그림 4. 소스 코드 문서화 모범 사례.
코드베이스의 장기적인 유지 관리 가능성도 반드시 고려해야 합니다. 변경하기 전에 수정 사항이 Ultralytics를 사용하는 누군가의 기존 코드를 손상시킬 가능성이 있는지 자문해 보세요. 그렇다면 이를 해결할 방법을 고려하고 변경 사항이 최대한 호환되도록 해야 합니다.
기여할 코드를 개발했다면 테스트해야 합니다. 제출하기 전에 pytest와 같은 프레임워크를 사용하여 변경 사항을 테스트할 수 있습니다. 일관된 코드 서식도 기여에서 매우 중요한 요소입니다. Ruff Formatter와 같은 도구를 사용하면 스타일의 일관성을 유지하고 코드의 논리적 버그나 불일치를 감지할 수 있습니다.
Pull Request 검토#
Pull Request(PR)를 검토하는 것은 훌륭한 기여 방법입니다! 누군가 자신의 변경 사항을 메인 프로젝트에 병합해 달라고 요청할 때 PR이 생성됩니다. 이는 Ultralytics 프로젝트가 원활하게 운영되도록 돕습니다. PR을 검토할 때는 변경 사항이 적용된 이유를 이해해야 합니다. 작성자는 업데이트의 목적과 이점을 명확히 설명해야 하며, PR에서 철저한 테스트가 이루어졌다는 증거를 확인할 수 있어야 합니다.

그림 5. Pull Request란 무엇인가요?
집중해서 살펴봐야 할 몇 가지 핵심 사항을 알아보겠습니다.
- 단위 테스트 확인: PR에 새 기능 또는 변경 사항에 대한 테스트가 포함되어 있는지 확인하여 코드가 예상대로 작동하고 문제를 일으키지 않는지 검증합니다.
- 문서 업데이트 검토: 예제, API 참조 및 기타 관련 세부 정보를 포함하여 변경 사항이나 새 기능이 반영되도록 문서가 업데이트되었는지 확인합니다.
- 성능 영향 평가: 변경 사항이 성능에 미치는 영향을 고려합니다. 필요한 경우 성능 벤치마크 또는 추가 테스트를 요청합니다.
- CI 테스트 확인: 코드 서식 검사와 단위 테스트 결과를 포함하여 모든 지속적 통합(CI) 테스트가 통과하는지 확인합니다.
- 수정 사항에 협력: 테스트가 실패하면 PR을 승인하기 전에 작성자와 협력하여 문제를 해결합니다.
검토자는 문제나 우려 사항에 대해 구체적이고 명확한 피드백을 제공해야 합니다. 개선을 위한 제안을 제시하고 작성자가 잠재적인 문제를 충분히 검토하는 데 도움이 되는 질문을 하세요. 코딩, 테스트, 문서화에서 모범 사례를 따르도록 권장하고 도움이 될 만한 리소스를 주저하지 말고 안내하세요. 마지막으로 작성자가 PR에 기울인 노력을 항상 인정해야 합니다. 긍정적인 피드백은 오픈 소스 커뮤니티에서 친근하고 협력적인 분위기를 유지하는 데 도움이 됩니다.
기여는 모두 커뮤니티를 위한 것입니다#
Ultralytics와 같은 오픈 소스 프로젝트에 기여하면 고무적인 공동체 의식을 느낄 수 있습니다. 코드를 작성하거나, PR을 검토하거나, 문서를 업데이트하거나, 토론에 참여하는 등 모든 노력이 프로젝트의 성장과 발전에 도움이 됩니다. GitHub, Discord, Subreddit 또는 다른 포럼에서 이슈에 답변하거나 대화에 참여하는 것은 기여하고 다른 사람들과 연결되는 가치 있는 방법입니다. 아무리 작은 기여라도 큰 영향을 미치며, 참여하는 모든 사람을 위한 협력적이고 지원적인 환경을 조성하는 데 도움이 된다는 점을 기억하세요!
Ultralytics는 오픈 소스 커뮤니티의 혁신을 이끄는 데 열정을 쏟고 있습니다. GitHub 저장소를 방문하여 최신 개발 소식을 확인하세요. 활발한 커뮤니티에 참여하고 농업 및 제조와 같은 다양한 산업 분야에서 어떤 영향을 만들어 가고 있는지 확인해 보세요.









