오픈 소스 에티켓
아직 오픈 소스 프로젝트(OSP)에서 작업해본 적이 없다면, MDN 웹 문서나 다른 오픈 소스 프로젝트에 기여하기 전에 이 글을 읽어보세요. 여기에는 여러분과 다른 프로젝트 기여자들이 가치있고 안전하게 여겨지며, 생산성을 유지할 수 있도록 도울 아주 좋은 활동이 몇 가지 있습니다.
이 글은 오픈 소스에 기여하는 것에 대해 모든 것을 가르쳐 주지는 않습니다. 대신 오픈 소스에 기여 시 생각해볼 만한 좋은 출발점을 제공합니다.
오픈 소스에 기여하고 싶은 이유에 대해 생각해보세요
오픈 소스 프로젝트에 기여하기 전에, 왜 그렇게 하고 싶은지 스스로에게 물어보세요. 이 질문에 대한 답이 단지 "지루해서 시간을 생산적으로 보내고 싶다"여도 괜찮지만, 아마도 이보다 더 깊이 생각해볼 수 있을 것입니다.
더 좋은 이유로는 다음의 것들이 있습니다.
- 이 도구를 항상 사용하고 있으며, 버그를 발견했거나 개선하고 싶다.
- 다른 사람들이 이 도구를 더 잘 사용할 수 있도록 돕고 싶다.
- 다른 사람들이 프로젝트에 더 성공적으로 기여할 수 있도록 돕고 싶다.
- 자신의 기술을 향상시키고 싶다.
- 대학 또는 대학교 과정의 일환으로 자신의 기술을 공개적으로 증명하고 싶다.
- 취업 기회를 높이기 위해 자신의 기술을 공개적으로 증명하고 싶다.
이런 이유 중 일부는 자신의 이익을 위한 것이지만, 괜찮습니다. 무료로 프로젝트를 위해 시간을 쓰고 있으므로 그에 대한 보상을 기대하는 것은 당연합니다. 또, 기여하는 명확한 이유가 있으면 어떤 것을 먼저 작업할 지 결정하는 데 도움이 됩니다.
당신은 프로젝트에 있어서 생산적이어야 하며, 다른 사람들이 생산적이지 못하도록 방해해서는 안 됩니다.
정중하고 친절해야 하며, 선동적이거나 공격적인 언어는 피하세요
우리는 이것을 "다른 사람에게 친절하세요" 라고 줄여 말할 수 있습니다. 이것이 오픈 소스에 기여하기 시작하는 모든 사람에게 드리는 가장 중요한 조언입니다.
프로젝트의 다른 모든 기여자들에게 친절하게 대하면 더 행복하고 생산적인 공간이 될 것입니다. 여기에는 다음과 같은 일이 있습니다.
- 누군가 도와주면 감사의 인사를 전하세요.
- 적절한 상황에서 다른 사람들에 대한 축하를 아끼지 마세요. 예를 들어 첫 번째 풀 리퀘스트를 성공적으로 완료했거나, 특히 어려운 버그를 수정한 경우가 있습니다.
- 답이 너무 당연하거나 반복되는 질문에도 항상 존중하는 태도로 응답하세요.
- 풀 리퀘스트 리뷰나 질문에 답변할 때, 사람들이 다음 번에 더 잘할 수 있도록 도와주세요. 예를 들어 "이건 잘못되었습니다" 또는 "정답은 이것입니다" 대신 "이것도 괜찮지만, 이렇게 해보면 더 좋을 것 같아요. 더 많은 아이디어는 이 블로그 게시글을 참조하세요" 또는 "답은 여기에 있습니다. 자주 묻는 질문에 대해서는 이 링크를 참조해 주세요"라고 말하는 것이 훨씬 더 도움이 됩니다.
여러분을 포함한 다른 모든 기여자들은 프로젝트에 긍정적으로 이바지하고자 여기 있는 것이지만, 그들에 대해 그 이상 아무것도 추정할 수 없습니다. 주로 다음의 것들이 있습니다.
- 프로젝트와 이를 위해 사용된 기술에 대한 지식
- 성별, 성적 지향, 나이, 언어, 위치, 정치적 견해, 종교 또는 기타 개인적인 특성
- 오픈 소스 프로젝트 경험
- 자신감
- 기대치
- 유머 감각
따라서 작성하는 주제에 대해 최대한 주의하고, 종교나 정치와 같은 논란의 여지가 있는 주제는 피해야 합니다. 누군가와 의견이 다르거나, 그들이 내린 결정이 마음에 들지 않더라도 지원적이고 존중하는 태도를 유지하세요
또한, 특정인을 대상으로 하지 않더라도 욕설이나 공격적인 언어는 지양해야 합니다. 이는 전혀 필요한 기여가 아니며, 일부 사람들은 이에 대해 매우 민감합니다.
모든 좋은 오픈 소스 프로젝트에는 기여자가 프로젝트에 기여하는 동안 불편함을 느끼지 않도록 보호하는 규칙이 있습니다. 이는 보통 GitHub의 CODE_OF_CONDUCT.md 파일에 명시되어 있습니다.
예를 들어, MDN의 저장소는 Mozilla 커뮤니티 참여 안내서를 바탕으로 관리됩니다. MDN 웹 문서 저장소에서의 경미한 공격적 행동 (예를 들어 지속적으로 주제에서 벗어나거나 방해하는 언행, 무례한 태도)은 보통 경고로 시작하여, 최종 경고 다음에는 일시적 또는 영구적인 금지 조치로 이어질 수 있습니다. 혐오 발언이나 다른 기여자에 대한 위협 같은 심각한 행동은 용납되지 않으며, 즉각적인 금지 조치로 이어질 가능성이 큽니다.
만약 여러분을 불쾌하게 만드는 어떠한 것들을 수신했다면, 행동 강령으로 제공된 메커니즘을 통해 이를 보고해 주세요.
효과적인 기여 선택하기
프로젝트에서 어떤 것을 하고 싶은지 생각해 보세요. 예를 들어, 다양한 유형으로 나누어진 기여자 할 일 보드에 많은 작업 목록이 있습니다.
MDN의 글을 읽는 동안 발견한 문제를 수정하기 위해 풀 리퀘스트로 기여할 수도 있습니다.
MDN의 많은 작업은 문서 작성과 코드 예제를 중심으로 이루어지지만, 기여할 수 있는 다른 많은 방법들도 있습니다.
- 들어오는 이슈 선별 분류
- 오타 수정
- 문법 개선 및 이해도 증진을 위한 페이지 개선
- 문제를 해결하고자 하는 사람들 멘토링
모든 개선은 작더라도 유용하며, 어떤 수정도 거절하지 않습니다. 그럼에도 수정이 과연 생산적인지 한 번 확인해 보는 것이 좋습니다. 다음과 같은 기여는 지양해주세요.
- 개인의 기호에 따른 코드 스타일 업데이트
- 개인의 기호에 따른 언어 스타일 업데이트
- 미국 영어에서 영국 영어로의 변경
- 실질적 문제 개선이 아닌 다수의 구두점 추가 및 제거
- 개인의 취향에 따라 이미 사용하고 있는 테스트 프레임워크 교체
많은 경우에, 오픈 소스 프로젝트에서 적용하는 규칙은 그만한 이유가 있습니다. 그들이 스타일 가이드를 제공한다면 반드시 읽어보세요. 어떤 것이 생산적인지 확신이 서지 않는다면, 일단 항상 질문하는 것이 좋습니다!
매뉴얼 읽기
좋은 오픈 소스 프로젝트는 항상 기여자가 문서에 쉽게 접근할 수 있도록 합니다. GitHub 프로젝트에서는 보통 저장소의 CONTRIBUTING.md 파일이나, 때로 프로젝트의 README.md 파일에 있습니다. 문서화 프로젝트인 MDN 콘텐츠는 README와 웹사이트에 기여자를 위한 문서가 잘 정리되어 있습니다 (참조 MDN 웹 문서에 기여하기).
도움을 요청하는 것을 두려워하지 마세요. 동시에 질문하기 전에 항상 먼저 스스로 답을 찾으려고 노력하셔야 합니다. 이렇게 하면 프로젝트에 대한 지식을 쌓고 덜 의존적으로 활동할 수 있게 되며, 다른 기여자들에게 불필요한 부담을 주지 않을 수 있습니다.
물론, 문서가 항상 완벽하지는 않습니다. 설명이 찾기 어렵거나 충분하지 않다면, 이슈를 제기하거나 직접 수정하려는 풀 리퀘스트를 만들어 보세요.
질문할 장소 찾기
항상 어느 곳이 질문할 최적의 장소인지 찾아보세요. 좋은 오픈 소스 프로젝트는 문서에서 이를 명확히 안내합니다 (참조: 연락하기). 일반적인 질문을 하고 싶다면, 항상 이러한 채널을 이용하세요. 모든 질문에 대해 GitHub에 이슈를 제기하지 마세요. 이는 프로젝트에 불필요한 소음이 됩니다 (아래 "소음보다는 진전을 만드세요" 참조).
소음보다는 진전을 만드세요
프로젝트에서 소통하는 방식에 주의하세요. 다른 기여자의 일에 보탬이 되는 것이 아니라 일을 더 어렵게 만드는 일은 지양해야 합니다. 버그를 수정하기 위해 풀 리퀘스트를 제출하는 것은 좋지만, 그것이 정말로 유용하고 검토하기 쉬운가요? 문제를 제기하고 다른 대화에 참여하는 것도 좋지만, 당신의 이슈와 댓글이 주제에 맞는가요? 아니면 단순히 소음을 발생시키고 있나요?
다음 규칙을 따르는 것을 권장합니다.
- 이슈 당 하나의 주제 논의 — 문제에 더 집중할 수 있고, 생산적일 수 있습니다.
- PR 당 한가지 이슈 수정 — 여러분에게는 약간의 작업이 추가될 수 있지만, 하나의 명확한 수정을 검토하는 편이 훨씬 쉽습니다.
- 유용한 점을 제시하거나 다른 사람의 질문에 답할 수 있다면 다른 스레드에 기여하세요.
- 어떤 것이 좋을 지 확신이 서지 않거나 간단한 질문이 있다면 채팅방이나 포럼과 같은 다른 메커니즘을 사용해 질문하세요.
- 질문하기 전에 지침서를 먼저 읽고 스스로 답을 찾아보세요.
다음 사항은 권장하지 않습니다.
- 여러가지 사항을 한꺼번에 논의하거나 주제와 관련 없는 댓글을 달아 이슈를 복잡하게 만들지 마세요.
- 여러 수정을 한 번의 풀 리퀘스트에 담으려 하지 마세요. 검토하기 훨씬 어려워지고, 의심스러운 행동으로 여겨질 수 있습니다 (유효한 수정 사항 사이에 악성 코드를 집어넣으려고 했다고 생각될 수 있습니다).
- 모호한 질문을 포함한 이슈를 지나치게 많이 열지 마세요.
- 스스로 문제를 해결하려고 노력하지 않고 질문하지 마세요.
오픈 소스 프로젝트는 (대부분) 민주적입니다
오픈 소스 프로젝트는 상당히 민주적입니다. 많은 결정이 투표로 이루어지며, 다른 사람을 방해하지 않는 한 원하는 방식으로 기여할 수 있습니다.
하지만 일부 사항은 소규모의 핵심 기여자 집단에 의해 주로 결정되기도 합니다. 어떤 결정에 반대 의견을 제시할 자유가 있지만, 때때로 조정자가 당신의 의견에 반하는 결정을 내릴 수도 있습니다. 이러한 결정을 존중하고 수용해야 합니다.
프로젝트의 조정자에 대해 알아두는 것도 좋습니다. 예를 들어, 풀 리퀘스트나 이슈 스레드에서 도움을 요청할 때 누구에게 문의해야 할 지 알 수 있기 때문입니다.
인내심을 가지고, 시의적절하게 행동하세요
오픈 소스 프로젝트에 참여하는 대부분이 자신의 여가 시간에 무보수로 작업하고 있으며, 대체로 매우 바쁘다는 사실을 명심하세요. 풀 리퀘스트 검토나 질문에 대한 답변을 기다리고 있다면 인내심을 가지세요.
며칠 정도 기다린 후, 정중하게 시간이 괜찮은지 다시 여쭤보는 것이 합리적입니다. 만약 그들이 너무 바쁘다면, 일주일 정도 더 기다렸다가 다시 연락해 보세요.
빠른 답변을 재촉하는 등, 이와 관련한 사항에 대해 요구하는 것은 적절하지 않습니다.
누군가가 여러분이 무언가를 해주기를 계속 기다리고 있다면 여러분도 똑같은 예의를 갖춰야 하지만, 동시에 가능한 한 신속하게 응답하려고 노력하세요. 정말로 시간이 나지 않는다면, 그들에게 상황을 알리고 유지보수자에게 도움을 요청하여, 다른 사람이 그 작업을 대신 수행할 수 있도록 하세요.