데스크탑 API 클라이언트 Yaak, 오픈소스로 전환
(yaak.app)- 3개월 전에 Yaak이 오픈 소스가 되지 않을 이유에 대해 설명하는 글 "Why Not Open Source"를 공개했음
- 과거 오픈 소스 프로젝트에서 번아웃을 경험했기에 다른 이들에게 의사 결정 과정이 도움이 될 것이라 생각하고 공유함
- Yaak 사용자들은 대부분 동의했지만, 더 넓은 오픈 소스 커뮤니티에서는 대부분의 내용에 강하게 반대함
오픈 소스 커뮤니티의 반응
-
"오픈 소스/자유 소프트웨어를 깃허브의 특정 사회적 모델이나 기여와 혼동하지 마라" - lobste.rs
-
"그러나 그런 것들은 모두 폐쇄 소스 소프트웨어에도 해당된다" - ycombinator.com
-
"이 글의 주장은 완전한 허튼소리다. 이 '앱'이 무엇인지도 모르겠다. 필요없다. 역사의 쓰레기통으로 가라" - reddit.com
- 대부분의 답글은 건설적이지 않았지만, 500단어로 된 lobste.rs의 댓글은 정말 훌륭했음. 이걸 보고 내가 틀렸을지도 모른다고 생각이 들었음
오픈 소스의 장점
- 오픈 소스가 반드시 오픈 컨트리뷰션을 의미하지는 않음
- 코드를 공개하는 것만으로도 대부분의 장점을 얻을 수 있음:
- 보안 감사에 개방
- 투명한 기능(수상한 것 없음)
- 유연성(포크하고 수정할 수 있음)
- 개발자가 떠나도 실행 가능
오픈 소스로 전환하되 제한적인 컨트리뷰션 허용
- SQLite와 같이 오픈 소스이지만 외부 기여를 허용하지 않는 프로젝트가 존재함
- Litestream은 초기에는 기여를 허용하지 않았지만 결국 버그 수정만 허용하도록 변경
- Yaak 도 이 모델을 채택해 MIT 라이선스로 오픈 소스화하고 버그 수정만 기여 허용
글 내용에 포함된 500자 lobster.rs 댓글 요약입니다.
이 댓글은 원글 Why Not Open Source ? 에 대해서 적은 것입니다.
- 결론부터 말하자면, "오픈소스" / "자유 소프트웨어" 와 깃헙의 특정 소셜 모델인 Drive-by Contribution, 또는 Contribution 자체와 혼동하지 마세요
- 오픈 소스가 작동하지 않는 이유에 대한 설명으로 동의하기 어려움
- 제시된 많은 점들이 거짓 이분법임. 예를 들어 "기능 추가는 현실적으로 어려우며, 유지보수자가 직접 구현하는 것이 더 빠른 경우가 많음"
- 폐쇄 소스라면 항상 스스로 해야 하지만, 오픈 소스라도 원한다면 그렇게 할 수 있음. 다른 사람의 기여를 받아들일 의무는 없음
각 포인트별 반박
기능 추가 가능 - 🟥 현실적으로는 어려움
- 오픈 소스가 되기 위해 누구나 제출한 것을 받아들일 필요는 없음
투명성이 높아짐 - 🟧 투명성을 위해서 오픈 소스가 필요하지 않음. 코드뿐 아니라 공개 로드맵 등으로도 가능
- 좋은 지적임. 하지만 코드만 있는게 아니라, 코드도 있는 것임. 투명한 코드와 로드맵도 가질 수 있음
보안이 개선될 것 - 🟧 경우에 따라 다름. 사용자가 오픈 소스 프로젝트의 코드를 감사하고 문제를 공개할 수 있음
- 오픈 소스로 만들어도 나빠지지는 않음. 개선될 가능성은 적어도 단점은 없음
커뮤니티가 성장할 것 - 🟧 노력을 투자해야만 가능. 오픈 소스에만 국한된 것은 아님
- 역시 나빠지진 않지만, 저자도 크게 연관이 없다는 점은 인정함
단점에 대한 반박
무례한 피드백 다루기 어려움
- 폐쇄 소스에서도 피드백을 받게 됨. 어느 쪽이든 받아들일 필요는 없음
오랜 피드백 사이클 관리하기 어려움
- 피드백/변경사항 제출을 받지 않으면 됨. 개선 사이클이 없어짐
승인 없이 제출된 기여를 거절하기 어려움
- readme에 "기여를 받지 않음"이라고 적고 모든 PR을 자동으로 닫으면 됨
프로젝트가 성숙해지면 대부분을 거절하기 어려움
- 폐쇄 소스라도 사용자는 계속 요청할 것임
좋은 기여자가 떠나면 어려움
- 다른 기여자를 받아들이지 않으면 됨. 오픈/폐쇄 소스나 차이 없음
사람들이 무급으로 일한다는 사실을 받아들이기 어려움
- 자유 소프트웨어가 무료를 의미하는 건 아님. 상용 자유 소프트웨어도 가능하고, 다른 사람이 무급인 걸 받아들일 필요 없음
1000개 이상의 미해결 이슈가 있다는 것이 좋지 않음
- 자동으로 닫으면 됨
끝이 없다는 게 어려움
- 폐쇄 소스에서 사용자/고객을 갖는 것도 마찬가지