오픈소스 시작하기

컴퓨터공부/오픈소스 2017.01.01 11:48 Posted by 아는 개발자 아는 개발자

사오정이란 말이 난무하지만 정작 사십오세까지 직장을 다니기도 버거운 고용불안 시대에 한 회사에만 나의 운명을 맡길 수 없어 입사 2년차인 2017년 올해 부터는 회사 안에서 뿐만 아니라 밖에서도 링크드인에 남길만한 이력을 채우는 것을 새해 목표로 삼았다.


하지만 머릿 속에선 '뭘 해야 하지?' 라는 질문이 먼저 들었다. 안드로이드이나 윈도우 응용 애플리케이션을 개발하는 개인 프로젝트를 해볼까 했지만 이런건 모든걸 혼자 해야한다. 아이디어도 혼자 생각해야하고 기획도 혼자 해야하고 디자인도 혼자 해야하고 개발도 혼자 (그것도 잘)해야한다. 개인 프로젝트이기에 개발과정에서 나오는 이슈들을 같이 고민하는 사람들이 없다(스택 오버플로우에 물어보면 좀 모를까). 산적한 문제들을 해결하다 보면 순수한 마음으로 시작했던 마음이 어느새 짜증으로 바뀌게 되고 혼자 수전투구 하다 회사일에 치여 결국 뒷전으로 몰아지다가 나중에는 포기하게 된다. 이미 작년에 회사 다니면서 한번 겪어본 경험담이다.


그래서 선택한 것이 오픈소스이다. 오픈소스는 나 혼자 하는게 아니라 여러 사람들이 같이 개발한다. 그중에는 명성이 자자한 개발자도 있고 로고와 아이콘을 디자인하는 디자이너도 있고 처음 오픈 소스를 개발하는 초짜 개발자도 존재한다. 크게 두 분류로 나누면 프로젝트를 담당하는 메인테이너(Maintainer)와 여기에 기능을 추가하는 코드를 넣는 커미터(Commiter)가 있다. 메인테이너의 역할은 프로젝트를 리드 하는 역할이다. 이번 달은 이러이러한 기능을 구현하고 언제 까지 하겠다 는 기획을 주로 맡고 뿐만 아니라 추가된 코드들이 코드 문법에 맞춰서 작성 되었는지, 혹시 모를 버그는 없는지 확인하고 관리하는 역할을 한다. 커미터는 메인테이너가 세워둔 기획에 맞춰 기능을 구현하고 작성 한 코드를 커밋(commit)한다. 역할상으로 구분하면 메인테이너는 관리의 역할이고 커미터는 개발자가 되는 셈이다. 물론 이는 그냥 역할상의 구분일 뿐이고 실제로는 메인테이너가 커밋을 하는 경우도 있다.


그런데 어떤 오픈소스를 해보지...?


이미 오픈소스로 안드로이드나 리눅스가 있는건 알겠지만 운영체제 영역이라 내가 진입하기엔 어려워 보이고(임베디드 회사를 1년 다녔지만 나에겐 아직도 어렵다) 이미 구현이 다돼버려서 내가 뭘 할 수 있을까 하는 고민이 든다. 그렇다고 나의 도메인 영역 밖인 html, CSS 단으로 가기엔 내가 코드 한 줄 넣을 수 있는 능력이 안될 것 같았다.


그래도 능력이 부족한 거야 스스로 공부해서 해결 할 수 있다쳐도 문제는 어떤 오픈소스가 있는지를 모르겠다는 것이다. 오픈소스가 그렇게 만다는데 도대체 막상 찾으려면 내가 할 수 있는게 뭔지 보이질 않는다. 그래서 한 번 찾아봤다. 내가 할 수 있을 만 한 오픈소스가 뭐가 있을 지...


몇차례 사이트를 돌아 다니다 보니 Google Code in 에서 관리(?) 하는 오픈소스 조직들이 있었다. 



https://codein.withgoogle.com/organizations/


처음 들어보는 오픈소스들이 대부분이었고 주제는 신박했다. 다양한 OS에서 실행 가능한 소프트웨어 개발처럼 사용자 편의성에 맞춘 것에서 부터 개발도상국에서 사용 할 수 있는 소프트웨어 개발, HIV/AIDS 치료를 위한 환자 데이터 베이스 개발하는 비영리 단체들도 있었다. View info 버튼으로 간략한 설명을 볼 수 있고 추가 적으로 나오는 View TASK에서는 현재 진행중인 작업들을 볼 수 있다. Beginner라는 태그를 달아 처음 하는 사람도 쉽게 할 수 있다고 알려준다.



이들이 정확히 무슨 일을 하는지는 오픈소스 조직이 운영하는 사이트에 들어가보면 자세히 나온다. 각 사이트 마다 User Guide 뿐만 아니라 Developer Guide까지 있어서 처음 접하는 개발자가 어떻게 환경 설정 해야하는지 어떤 툴을 설치해야 하는지 등등이 잘 나와있었다(무대뽀로 가르치는 우리 회사보다 체계적이란 느낌이 든다 ㅡㅡ) 가장 맘에 들었던 점은 처음 하는 사람들이 어떤 일을 맡았으면 좋겠다고 친절히 알려주는 점이다. '우리 프로젝트의 코딩 스타일은 이러이러 한데 공부겸사 코드 보면서 혹시 스타일에 안맞는거 있으면 고쳐주세요!'처럼 간단한 일부터 시작한다. 오픈 소스를 하는 사람이 가장 먼저 생각하는 불안감을 이들도 어느 정도 공감하고 배려하는 것 같다.


다른 사이트도 찾아 보려고 했는데 그냥 여기 있는 내용 만으로도 충분 할 것 같아서 여기 내에서 고르기로 결정 했다. 다루고 있는 주제들도 마음에 든다. HIV/AIDS 치료를 위한 DB 개발을 하는 OpenMRS처럼 공익적인 오픈소스가 특히 끌린다. 내가 만드는 코드 한 줄이 사회적 약자에게 도움이 된다면 얼마나 뜻깊은 일일까. 

'컴퓨터공부 > 오픈소스' 카테고리의 다른 글

오픈소스 라이센스 정리  (0) 2019.06.09
FFmpeg  (0) 2018.10.31
자동차시장 오픈소스 - 2  (0) 2017.01.31
자동차 시장 오픈소스 - 1  (0) 2017.01.15
이런 오픈 소스도 있다!  (0) 2017.01.07
오픈소스 시작하기  (0) 2017.01.01