오픈소스란 무엇일까

매일 수정하는 GNOSS LV5·2021년 10월 16일
1

AndroidStudio

목록 보기
25/83

오픈소스란 무엇일까

전 세계 사람들과 함께 진행할 수 있는 공동 프로젝트입니다. 무슨말일까요?

대부분의 오픈소스는 GitHub를 통하여 진행되는 경우가 많이 있습니다.
특히 개발을 진행하던 중 원하는 기능, UI, 설정, 권한을 쉽게 사용하기위해 라이브러리를 참고해본 경험이 있을것입니다. 여러 라이브러리가 있는데 예를들면 Retrofit , TedPermission, MPChart등등 이 있을겁니다.

하루종일 기본 안드로이드에서 제공하는것을 이용하여 진행하려고 끙끙 앓다가
OOOOLibrary를 치고 곰곰히 읽어봅니다.
라이브러리에 적혀있는대로 implementation해서 설치하고 사용법에 따라 코드를 작성하면 복잡한 부분은 알아서 해결해주는 마법이 펼쳐집니다!

이런 라이브러리를 복사해서 가져다쓸때는 몰랐지만 function을 클릭하고 타고 넘어가다보면 이걸 어떻게 작성했을까...하는 놀라움이 생기기 마련입니다. 이걸 혼자서했을까요?

아닙니다! 이런 유용한 라이브러리가 배포되고 완성되기까지에는 수십 수백명의 contributor들이 있었을 겁니다.
오픈소스 프로젝트를 진행하던 중 미국인 B씨가 코드의 간결함을 위해 PR을 날려주고 영국인 C씨가 에러가 발생한는 부분에 대해 issue를 알려 토론을 할 수도 있고 한국인 S 씨가 Read Me를 고쳐줄 수도 있습니다.

즉 오픈소스 프로젝트에서는 누구나 프로젝트를 보고, 사용하고, 수정하고, 배포할 수 있습니다. 
이러한 권한은 오픈소스 라이선스를 통해 적용됩니다.


그렇다면 오픈소스 프로젝트는 어떻게 시작할까요?

  1. 목표 설정

자신이 프로젝트를 진행하기 위해서는 목표가 필요합니다.
목표가 분명하고 뚜렷할 수록 프로젝트의 정체성이 확고해지고 그 의도를 정확히 전달해야 다른 사람들이 도와줄 수 있을것입니다.

흔히 ReadMe를 통하여 해당 프로젝트의 목표가 무엇인지 어떻게 진행할것인지, 기여를 원하는지 안원하는지, 작업의 분배는 어떻게 진행하는지 등등 작성할 수 있습니다.

ReadMe에는 다음의 내용에 답할 수 있어야 합니다.

  • 이 프로젝트는 무슨 일을 하나요?
  • 이 프로젝트가 유용한 이유는 무엇인가요?
  • 어떻게 시작해야 하나요?
  • 필요하다면 어디에서 더 많은 도움을 받을 수 있을까요?
  1. 프로젝트의 기본 틀 작성

다른 개발자가 조언을 해주기 위해서는 프로젝트의 기본적인 틀이 잡혀있어야 합니다. 건물의 뼈대도 없이 맨땅인데 누군가가 디자인에 대해 조언해 주기는 어렵겠죠?
여러분의 작업물을 보고 피드백을 제공하기에 불편함이 없을 때 프로젝트를 오픈소스화 시키면 됩니다.
대신 이 단계에서 필요한 것들이 있습니다.

기여 가이드라인

  • 버그 보고서를 제출하는 방법 (이슈와 PR 템플릿을 사용해 보세요)
  • 새로운 기능을 제안하는 방법
  • 환경 설정 및 테스트 실행 방법

기술적 세부 사항과 더불어 여러분이 어떤 기여를 기대하는지 전달할 수도 있습니다.

  • 원하는 기여 유형
  • 프로젝트 로드맵 또는 비전
  • 기여자가 여러분과 연락하는 데 사용할 (혹은 사용하지 말아야 할) 방법
  1. 라이선스 선택하기

오픈소스 라이선스는 사람들이 여러분의 프로젝트에 영향을 주지 않고 사용, 복사, 수정 및 기여할 수 있도록 보장합니다. 또한 난처할 수 있는 상황으로부터 당신을 보호합니다. 오픈소스 프로젝트를 시작한다면 반드시 라이선스를 포함해야 합니다.

MITApache 2.0, 그리고 GPLv3가 가장 인기있는 오픈소스 라이선스지만 선택할 수있는 다른 옵션도 있습니다.

GitHub에서 새 프로젝트를 만들면 라이선스를 선택할 수 있는 옵션이 제공됩니다. 오픈소스 라이선스를 포함하면 GitHub 프로젝트를 오픈소스로 만들 수 있습니다.

  1. 행동규칙 정하기

마지막으로 행동 강령은 프로젝트 참가자의 행동에 대한 기본 규칙을 정하는 데 도움이 됩니다

자세한 내용은 행동강령 가이드를 참조하세요.

행동 강령은 참여자가 어떻게 행동하기를 기대하는지 전달하는 것 외에, 이러한 기대가 누구에게 적용되는지, 언제 적용되는지, 위반할 경우 어떻게 하는지 등을 다루기도 합니다.

오픈소스 라이선스와 마찬가지로 행동 강령에 대한 새로운 표준도 있으므로 직접 작성할 필요는 없습니다. Contributor Covenant는 Kubernetes, Rails 및 Swift를 포함한 40,000개 이상의 오픈소스 프로젝트에서 사용되는 행동 강령입니다. 어느 것을 사용하든, 필요에 따라 행동 강령을 시행할 준비가 되어 있어야 합니다.

행동 강령을 저장소의 CODE_OF_CONDUCT 파일에 직접 붙여넣으세요. 파일을 쉽게 찾을 수 있게 프로젝트 최상위 폴더에 저장하고 README에 링크를 첨부하세요.

최근 작업을 하면서 오픈소스 프로젝트를 진행해 보고 싶은것이 생겨서 알아보면서 포스팅했습니다.

작업의 반복 - 내부에서 클래스화해서 사용 - 라이브러리 검색 - 에라이! 내가 만들어야겠따! 순서의 의식의 흐름으로 일이 진행되고 있습니다. 기본 틀이 잡히게 된다면 블로그에 포스팅할 예정입니다

profile
러닝커브를 따라서 등반중입니다.

0개의 댓글