Open Source for You (한글번역)

이 글은, 호주에서 오픈 소스 개발자로 활동하고 있는 Stephen McDonald (@stephen_mcd)의 글을 번역했습니다. 읽고 느낌이 좋아, 번역해 보려고 했는데 쉽지는 않군요. 원문의 뜻이 잘 전달되기를 바래봅니다. (오역 또는 더 나은 번역이 있다면, feedback 주세요.)

+2012년 3월 6일, engfordev.com 의 피드백 (GoogleDocs:http://bit.ly/xdxahu)을 받아서, 번역품질을 높였습니다. 참여해주신 nassol님, 원강민님 감사합니다.

출처 (원문 English) : http://blog.jupo.org/2011/09/12/open-source-for-you/

작성일 : 2011년 9월 12일
작성자 : Stephen McDonald

오픈 소스는 여러분을 위한 것

나는 얼마전, 내가 일하는 회사의 개발팀을 대상으로 오픈 소스 활동에 관한 프리젠테이션을 하게 되었다. 오픈 소스에 대한 사람들의 공통된 인식은 대략 이러했다. 오픈 소스 커뮤니티에서 개인은 보상을 거의 받지 않고, 이타주의적인 마음을 가지고 운영하는 거대한 사회적 히피집단 같다는 것이 오픈 소스 커뮤니티에 대한 공통된 인식이었다. 나는 이런 근거 없는 믿음을 깨뜨렸다. 그리고 오픈 소스 커뮤니티에서는 사람들이 자신을 위해, 그리고 자신의 이익을 위해 오픈 소스 활동에 참여한다고 설명하였다. 내가 초점을 맞춘 부분에는 몇가지 불편한 진실도 있기는 했지만, 개발팀은 발표내용을 잘 받아들였다.

힘들고 짜증나는 업무(는 이제 그만), 프로그래밍을 다시 즐거운 놀이로 만들자

만약 여러분이 전형적인 회사에서 9시부터 5시까지 일하는 정규직 소프트웨어 엔지니어라면, 여러가지 이유로 인해 업무에 짜증을 느끼고 있을 가능성이 높다. 여러분은 항상 같은 종류의 프로젝트에 참여하고, 같은 기술을 가지고 일을 해야 한다. 심지어는 낡은 기술을 사용하기도 하고. 사실 그 기술보다 더 세련된 기술이 존재하지만, 회사에서는 아직 검증되지 않았다는 이유로 실무에 적용하는 것을 허락하지 않을 것이다. 또한 일정의 마감시간도 지켜야 하고. 마감시한은 최대한 빨리 기능들을 만들어 내도록 요구하기 때문에 (그것은 결국 결과물의 품질에 좋지 않은 영향을 주고) 여러분은 때로 개발자로서의 자존심을 버리고, 막코딩을 하게 된다.

만약 이런 일이 여러분의 유일한 프로그래밍 경험이라면, 금방 싫증도 나고, 모든 게 전혀 재미도 없을 것이다. 하지만 정반대의 경우라면, 프로그래밍은 정말 굉장히 재밌을 수 있다! 이렇게 상상해 보자. 여러분의 회사에 수백가지의 프로젝트가 있다. 그리고 여러분은 그 중에 여러분이 원하는 하나의 프로젝트를 선택할 수 있다고. 게다가, 회사에서는 여러분이 원하는 기술을 사용할 수 있도록 허락하고, 최종 결과물이 충분히 멋지게 나올 때까지 일정을 주겠다고 말한다. 마치 슈퍼 개발자처럼. 꿈처럼 들린다고? 아니, 오픈 소스 프로젝트를 할 때 만큼은 여러분이 슈퍼 개발자이다. 업무를 고르고, 사용할 기술을 선택하자. 일정도 마음대로 짜자. 그리고 제품의 품질까지도 말이다.

협업을 통해 더 훌륭한 개발자가 되자

더 좋은 개발자가 되기 위해서는 두가지 방법이 있다: 하나는 코드를 작성하는 것이고, 다른 하나는 코드를 읽는 것이다.
혼자서만 개발하면 이 두가지 방법을 쓸 수가 없다. 자신이 작성한 코드를 읽으면 흐뭇할지는 몰라도 배우는 게 별로 없다. 그리고 혼자 코드를 작성할 수는 있겠지만, 스스로 배우는 것 외에는 아무런 교훈이 없을 것이다. 너무나 당연하지만 진짜로 배우는 것은 다른 개발자들과의 상호작용하는 과정에서 나온다. 다른 개발자들이 검토해보고 피드백을 줄 수 있는 코드를 작성하면서 말이다. 그리고 더 많은 경험을 가진 개발자가 작성한 코드를 읽으면서, 그리고 여러분과는 다른 접근법을 가진 개발자가 쓴 코드를 읽으면서 진정 뭔가를 배울 수 있다.

여러분이 일하는 회사에 대해 생각해 보자. 여러분이 직접 협업하는 개발자는 몇명이나 되는가? 두세명? 열댓명? 작은 집단에서도 여러분은 많은 것을 배울 것이다. 그러나 배우는 범위 면에서는 아무래도 한계가 있을 것이다. 오픈 소스 커뮤니티는 수천명의 개발자들이 있다. 그리고 이들은 수년간 수백만 줄의 코드를 작성했다. 이들은 여러분이 일하는 곳을 벗어나지 않고서는 접할 수 없는 품질의 코드를 작성한다.

금전적 수입을 얻자

오픈 소스 개발에 대해 오해가 많이 있는데, 그 중 가장 심한 오해중 하나는 오픈 소스 개발에 참여해서 돈을 벌 수 없다는 것이다. 어느 정도까지는 사실이지만, 실제로 금전적인 수익을 낼 수 있는 몇가지 방법이 있다. 직접적인 방법도 있고, 간접적인 방법도 있다.

여러분은 고정된 직장을 가진 상태일수도 있다. 그리고 자신이 고정수입을 갖는 월급쟁이라고 생각할 수도 있다. 다음 수입이 어디서 나올지 알 수 없는 프리랜서나 사업가와는 다르다고 생각할지도 모른다. 미안하지만 틀린 생각이다. 여러분의 사장과 마찬가지로 여러분도 사업을 하는 것이나 다름없다. 여러분에게는 고객이 한 명있다. 바로 여러분을 고용한 사장이다. 어떤 때에는 이 직장 일에 얽매여 있다고 느낄 지도 모른다. 하지만 실은 한 명의 고객에게 얽매여 있는 셈이다.

그럼 더 많은 고객을 만들고, 더 좋은 고객을 만들기 위해선 어떻게 해야 할까? 답은 여러분의 비지니스 코스를 홍보하는 거다. 오픈 소스는 여러분의 개발자로서의 능력과 여러분을 더욱 돋보이게 해주는 멋진 방식을 제공해준다. 오픈소스 프로젝트에 참여하면 여러분은 개발자로서의 능력을 더욱 돋보이게 하는 기회를 얻을 수 있다.
그래픽 디자이너와 개발자들은 항상 화려한 포트폴리오를 보여줄 수 있다. 고용 가능성이 있고, 고용 협상에 대한 자리에서 오픈 소스에 참여한 경험은 이미 열정으로 가득 차 있다는 걸 입증해 주고, 그러므로 그 자리에서 그러한 능력을 보여줄 필요도 없이, 다른 사람들보다 더욱 유리한 입장에 설 수 있다.

오픈소스 프로젝트를 일정 품질에 준하게 만들고, 사람들이 이 프로젝트를 사용하여 실제로 무언가를 만든다면, 이 자체만으로도 큰 성과이다. 이로부터 돈을 받고 일할 수 있는 기회가 생겨난다. 오픈소스 프로젝트를 사용하는 기업 사용자의 경우에 기업에 맞게 소프트웨어를 커스터마이즈해달라고 요청할 수도 있다. 또한 이들이 여러분이 생각지도 못했던 좋은 기능을 프로젝트에 추가해달라고 요청할지도 모른다. 이런 과정을 통해 여러분의 프로젝트는 한 단계 업그레이드 될 것이다. 이런 기능을 제일 잘 개발할 수 있는 사람은, 최초개발자가 아니고 누구이겠는가? 나는 이런 경험을 직접 몇 번 하였고, 몇몇 회사에서는 내가 생각했던 기능을 추가하는 것에 대해서 금전적인 지원을 해주었다. 지원을 해주지 않았더라도, 나는 그 기능을 어쨌든 개발했을 것이다.

기술 이외의 경험을 폭넓게 하자

코드를 작성하는 것은 소프트웨어 개발의 전체 과정중 일부분에 불과하다. 성공적으로 제품을 판매하는 전 과정에 관한 많은 학문 분야들이 있다. 이런 학문에는 프로젝트 관리, 커뮤니티 구축, 격식을 갖춘 글쓰기, 제품 개발 및 마케팅이 있다. 프리랜서나 1인 기업의 경우에는 이런 학문 분야를 접할 기회가 있을지도 모른다. 그러나 일반 회사에서 일하는 개발자의 경우에는 매일 코딩 외에는 다른 분야를 접할 기회가 없다.

오픈 소스 프로젝트를 운영해보면, 기술(technology) 이외의 분야에 관한 스킬을 익힐 수 있을
것이다. 나는 내 프로젝트 중에서 가장 인기있는 프로젝트 관련 작업을 하는데 시간을 많이 쓴다. 이 시간중에 코딩 작업에 쓰는 시간은 그 비중이 얼마 안된다. 시간 중 대부분은 다른 개발자들과 기능에 대한 아이디어를 나누고 토론하는데 쓴다. 어떤 기능을 넣을지, 뺄지를 의논하는데 쓴다. 이런 작업은 어렵기는 하지만 멋지고 의미있는 경험이다.

이런 일들에서 알 수 있듯이, 오픈 소스에 참여하고 싶어하는 많은 사람들이 기술적인 분야와는 무관하므로 자신은 기여할 무언가가 없다고 생각한다. 하지만, 모든 것은 연관되어 있어서 기술과는 관련없는 부분이 가장 유익한 참여중 하나라 볼 수 있다. 만약 여러분도 그렇다면, 시작을 주저하지 말아야 한다. 여러분의 참여는 상상이상으로 큰 의미가 있다.

좋은 사람이라고 느끼기

오픈 소스 참여의 가장 확실한 장점은, 애타주의로 타인에게 도움을 주는 거라고 생각한다. 전에도 얘기했지만, 작지 않은 오픈 소스 프로젝트를 관리하는 일은 고생을 동반하게 된다. 오픈소스에 참여하다보면 좋을 때도 있고 나쁠 때도 있다. 때로는 끝이 없는 일처럼 느껴지기도 한다. 하지만 가끔, 나는 어떤 동기를 가진 공개모임에서가 아닌, 순수한 진심을 담은 개인적인 감사 메일을 받기도 한다. 직접 해보기 전까지는 그 일이 딱히 의미가 있다고 생각해본 적은 없었다. 내가 실제로 직접 경험해 보고 나니, 진정한 긍지와 만족감을 채워주고 궁극적으로 모든 것을 가치있게 만들어준다는 것을 알게 되었다.

지금 당장 시작하자

중국의 철학자 노자는 이렇게 말했다:

천리의 여행도 한 걸음에서 시작된다.
(千里之行 始於足下)

시작하려고 하는데 겁이 날 수도 있다. 작은 것부터 시작하자. 여러분의 오픈소스는 아무에게도 쓸모 없을 것이라고 내면에서 속삭이는 목소리를 무시하자. 그럴 수도 있다. 하지만 그래도 상관없다. 그래도 하자. 내 프로젝트 중 많은 것은 몇 십줄 짜리 코드였다. 그런데 사람들은 내가 상상하지도 못했던 방식으로 그 소스를 유용하게 사용하였다.

아이디어는 잘 오지 않는다. 내 아이디어중에 대부분은 내가 아쉬워했던 것들이었다. 예를 들어 내가 관심있는 기술 영역에서 제품이 개발되어 있지 않는 경우에 내가 개발할 수 있겠다는 생각에서 개발 아이디어를 얻었다. 또는 내가 일상적으로 하는 루틴한 것들을 자동화하거나 개발할 수 있겠다는 지점에서 아이디어를 얻었다.

여러분이 어떤 오픈소스 소프트웨어를 사용하는데, 소프트웨어가 완벽하지 않을 수도 있다. 여러분이 생각하는 것과는 다른 방식으로 작동할 수도 있고, 또 어떤 부분은 도움말에 나와 있지가 않아서 찾기 위해 고생해야 할지도 모른다. 요즘은 이런 일이 있을 때, 무려(!) 공짜로 사용하고 있는 소프트웨어에 대해서 원하는 대로 작동하지 않는다고 불평만 하고 두 손 들고 포기해 버리는게 기본 반응인 듯 하다. 그러지 말자. 그 문제에 대해 여러분이 할 수 있는 게 있다. 소스 코드를 살펴보자. 뭔가 손을 빌려주자. 자신의 능력도 향상시키고, 뭔가를 만들어가는 과정의 일부가 되자.

출처 (원문 English) : http://blog.jupo.org/2011/09/12/open-source-for-you/

태그 지정됨 ,

3 thoughts on “Open Source for You (한글번역)

  1. jinjin말하길

    좋은 글 감사합니다.
    저두 오픈소스프로젝트 경험하고 싶은데 어디서 어떻게 시작할지 모르겠어요.
    가르쳐주시면 감사하겠습니다.
    건강하세요

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중