kenu
56k
2021-05-22 15:31:31
2
3064

오픈 소스 시작해 보려면


글자 그대로 프로그램 소스를 공개하는 것 외에, 소스 코드 저장소를 중심으로 한 여러 사람들의 상호작용을 통해 소프트웨어를 발전시키고, 참여자의 기술적, 사회적 성장을 가능하게 하는 활동이다.

용어

* 오픈 소스: 프로그램 소스의 저장소가 공개된 것

* 저장소: 프로그램의 변경이력을 포함하는 곳, 대표적으로 GitHub, GitLab 등이 있다.

* 이슈 관리: 버그 신고, 기능 추가 등의 작업목록이 관리되는 곳으로 저장소에 함께 있는 기능


오픈 소스 활동의 종류

오픈 소스는 다음과 같이 활동의 종류를 구분할 수 있다.

역할

활동

비고

개발자(Committer)

직접 개발, 프로젝트 멤버

극소수

기여자(Contributor)

버그 신고, 기능 패치 제안, 번역

소수, 매뉴얼 작성

조정자(Configurer)

설정 및 커스터마이징

기여자 전 단계

파워사용자(Power User)

여러 기능 사용

블로그 작성, 사용 전파

사용자(User)

기본 기능 사용

기본 사용 단계


개발자는 저장소에 있는 코드를 변경(Commit)할 수 있는 권한을 가진다.


기여자는 프로젝트에 직접 참여하는 권한이 없기 때문에, 버그를 신고하거나 기능 개선을 제안하는 활동을 한다. 프로그래밍 기술이 있다면 자기가 수정한 버전을 만들어서 개발자에게 전달한다. 이 과정을 Pull Request라고 하고, 개발자는 해당 내용을 검토해서 프로젝트에 적용할 수 있다.


조정자는 여러 요소를 자기가 원하는 대로 수정해서 사용할 수 있는 사람이다. 다만 자기 혼자서 사용하며, 개발자에게 자기가 수정한 것을 알리지는 않는 단계이다.


파워사용자는 오픈 소스의 세세한 기능까지 깊게 이용하는 단계이다. 블로그나 사용 영상 컨텐츠를 만들어서 사람들과 공유하는 사람이며, 간접적으로 기여하는 사람이다.


사용자는 오픈 소스의 기본적인 기능을 사용하는 단계이다. 오픈 소스 활동의 시작점이며, 사용하다 막히는 부분은 인터넷 검색을 통해서 해결한다.


오픈 소스 활동 참여하기

자기가 시작한 프로젝트라면 공개된 저장소에 올리면서 개발자부터 가능하다. 하지만 이런 경우보다 프로젝트 외부인인 경우가 많기 때문에 사용자부터 단계를 올려갈 수 있다.


사용자(User)

일반적으로 오픈 소스 활동에 참여하는 방법은 사용자 단계부터 시작한다. 프로젝트에서 제공하는 문서를 참고해서 설치하고 사용하는 것이다. 일반적으로 README 파일이나 설치 문서를 보고 따라하면 쉽게 사용할 수 있다. 설치해서 처음 사용하려면 `Quick Start` 또는 `Getting Started` 같은 제목의 링크를 따라가면 된다. 5분에서 한 시간 정도면 설치된 소프트웨어의 맛보기 사용이 가능하다.


파워사용자(Power User)

사용하고 있는 오픈 소스 프로젝트가 맘에 들고, 경험이 쌓이면 이를 블로그나 영상 콘텐츠를 만들어서 공유한다. 인기가 많은 오픈 소스의 경우 많은 정보들이 인터넷 상에 있지만, 자신의 상황과 경험이 녹아들어간 내용은 다른 사람들에게 큰 도움이 될 것이다.


조정자(Configurer)

사용하는 오픈 소스 소프트웨어와 관련된 기술을 갖고 있거나, 관련 기술에 관심이 있는 경우 설정을 바꾸거나, 코드를 수정해서 사용할 수 있다. 이러한 활동을 통해서 많은 것들을 배울 수 있다.


기여자(Contributor)

오픈 소스로 만들어진 프로젝트에 버그를 신고하거나, 기능 개선을 요청하는 활동으로 프로젝트에 기여할 수 있다. 소스를 수정해서 실행할 수 있는 버전으로 빌드할 수 있는 기술이 있다면 프로젝트를 복사(fork)해서 자기가 수정한 내용을 반영(commit)해서 원천 프로젝트에 보낼 수 있다. 이 기능을 `Pull Request`라고 하며, 원천 프로젝트의 개발자는 검토한 후에 승인 또는 거절할 수 있다. 이런 경우 프로젝트의 오타(typo)부터 시작하는 경우가 다수 있다.


영어로 된 프로젝트가 있다면, 자국어로 번역하는 활동도 있다. 일반적으로 오픈 소스와 함께 사용 매뉴얼이 같이 제공되는데, 대체로 매뉴얼만 독립적인 프로젝트 저장소를 갖는 경우가 많다. 이 문서 프로젝트를 복사해 와서 자국어로 번역하고 이를 원천 개발자에게 제안할 수 있다.


개발자(Committer)

프로젝트의 멤버가 되면, 소스를 직접 변경할 수 있다. 프로젝트의 계획을 기간별로 설정한 마일스톤에 따라 기능을 추가하는 일과, 코드의 재구성(리팩토링)을 통해서 유연하고 안정적인 동작을 하게 만든다. 그리고, 이슈 관리 목록에 신고된 버그와 기능 개선 요구를 검토하고 프로젝트에 적용하는 활동을 한다.



참고



11
10