[번역] 오픈소스 에티켓

Jung Han
Jung-han
Published in
4 min readOct 21, 2019

오픈소스를 사용할 때 지키면 좋은 것들

원글: https://gomakethings.com/open-source-etiquette/

나는 오픈소스 코드를 만들고, 사람들의 멋진 일을 지켜보는 것을 좋아한다.

그러나..프로젝트의 인기가 높아짐에 따라 아직 존재하지 않는 기능에 대한 요구, 같은 질문의 반복 등 여러가지 불필요한 시간을 소비하는 일에 많은 시간을 보내게 된다. 대부분의 사람들은 의미있는 실수를 하고, 몇몇은 멍청한 실수를 한다.

오늘은 오픈소스를 사용할 때 지켜야 할 몇가지 기본 에티켓을 다루려 한다.

난 당신에게 빚진 것이 없다

“ASSHOLE”처럼 말하고 싶지 않지만, 한가지 분명하고 싶은 것이 있다. 난 당신에게 아무것도 빚진 것이 없다.

누구든지 무료로 사용할 수 있는 코드를 유지하기 위해 내 상당한 시간을 코드를 작성하고, 테스트하며 사용하고 있다. 당신이 관심있는 기능을 구현하고 싶지 않다면 그건 나의 권리다.

GitHub은 어떤 공개 프로젝트도 쉽게 fork하여 수정할 수 있도록 기능을 제공하고 있다. 내 코드를 Fork해서 당신이 원하는 코드를 추가해라. 내가 하고 싶지 않다고 화내지 말고..

다시 말하지만, 대부분의 사람들은 이런 부분들을 이해하고 있다. 하지만 나의 몇몇 큰 프로젝트에 존재하는 몇몇 소수의 사람들은 내가 원하지 않는 기능에 대해 권한을 가진 것처럼 행동한다.

문서가 있으면, 읽어라

나는 문서를 작성하는데 상당한 시간을 보낸다.

뉴비로써 나는 오픈소스 프로젝트의 잘못된 내용 혹은 존재하지 않는 문서에 대해 큰 좌절을 느꼈었다. 실제 코드를 읽고, 어떻게 동작하는지 이해하기 전에는 다른 사람들의 코드들을 사용하는 것은 정말 어려웠다.

결과적으로, 나는 모든 수준의 사람들이 사용할 수 있도록 문서를 작성하는데 엄청난 시간을 소비한다.

그럼에도 불구하고, 나는 문서에 존재하는 내용을 그대로 질문을 받곤한다. 만약 초심자이고, 불분명한 부분이 존재한다면 더 잘 이해하도록 도울 것이다.

하지만, 무언가를 묻기 전에 문서를 읽어라.

새로운 이슈를 열기 전에 존재하는 이슈를 봐라

Github 이슈는 검색이 가능하다. 질문이 있거나, 버그를 발견했다고 생각이 든다면 새 이슈를 올리기 전에 이미 관련 이슈가 올라 왔는지 검색해봐라.

만약 , 이슈가 이미 존재하고 그 이슈에서 발견한 문제를 해결할 수 없다면, 기존에 존재하는 이슈에 본인의 이야기를 더하라.

버그를 리포팅할때 최대한 많은 정보를 제공하라

나는 종종 이런 종류의 버그 리포트를 받곤 한다.
“이 오픈소스가 내 사이트에서 작동하지 않아요. 뭐가 잘못되었나요?”

그게 전부다. 링크도 없고, 코드도 없다. 추가적인 정보 또한 없다.

당신이 제공할 수 있는 최선의 작업은 함축된 테스트 케이스를 제공하는 것이다. 사이트의 다른 모든 플러그인과, 스타일을 제거하여 여전히 문제가 발생하는 사이트를 만들어라.

이런 테스트 케이스는 내가 문제를 식별하기 쉽게 해줄 뿐만 아니라, 당신이 스스로 문제를 해결하는데 도움을 준다.

사용중인 브라우저, OS, 사용중인 오픈소스의 버전을 알려주는 것 또한 도움이 된다.

기여(Contributing) 가이드라인이 존재한다면, 따르라

진심으로.

프로젝트에 PR을 통해 기여하고 싶다면, 가이드라인을 따라라. Github은 모든 새로운 이슈와 PR 맨위에 Contributing 가이드라인 링크를 제공한다.(프로젝트에 CONTRIBUTING.md 파일이 존재하는 경우)

“스페이스 말고 탭을 사용하세요"라고 작성되어 있다면 탭을 써라. JSDoc스타일의 주석을 사용한다고 작성되어 있다면, JSDoc을 써라. 빌드 과정을 거칠 때 버전 숫자를 변경해야 한다고 하면, 그렇게 하라. 어떻게 하는지 모른다면, PR에서 메인테이너에게 요청하면 된다.

가이드에서 제공하는 약속을 따르지 않는다면 메인테이너에게 더 많은 일을 시키는 것이기도 하며, 프로젝트에 일관성이 없도록 느껴지게 한다.프로젝트에 여러 메인테이너가 있다 하더라도, 한 사람이 작성한 것처럼 느껴져야 한다.

“Thank You” 하기

때때로, 사용자에게 버그 리포팅을 받고, 그들이 무엇을 잘못하였는지, 어떻게 수정하는지를 알려준다. 어떤 때는, 타당한 버그여서, 가능한 한 빨리 수정한다.

나는 사용자들이 “Thank you”라고 말하지 않는 빈도에 매우 놀랐다.

나는 당신의 작동하지 않는 프로젝트를 되게 하기 위해 가족과 시간을 보내거나, 책을 읽거나, 티비를 보는 시간을 보내지 않고 있다. 나의 시간을 당신의 이익을 위해 무료로 제공하고 있다.

“Thank You”라고 하자. 그게 좋은 매너다.

--

--

Jung Han
Jung-han

개인용 블로그로 사용하고 있습니다. 좋은 개발자가 꿈입니다. > https://www.notion.so/Han-Jung-c43f4bcd2b3f4b3d85b93aee41c5e098