정보공유 Tool이 있다고 Silo가 없어질 수 있을까요?

Sean Kim
52g 팀블로그
Published in
10 min readMar 24, 2022

--

누군가 저에게 물었습니다. 각자 하는 일이 명확한 회사에서 정보공유 Tool이 있다고 Silo가 없어질 수 있냐고요. 또한 이런 이야기도 해주셨습니다. 팀원이 다른 팀의 팀원에게 문서를 공유해 주었는데, 팀장이 뒤늦게 알고 ‘내 허락도 없이 왜 문서를 공유했나’고 팀원을 꾸짓으면 영원히 정보공유는 사라진다고요.

Intro

각 개인별로 일이 명확하게 구분되어 있는 회사의 경우, 명목상 협업이 필수적이지 않고, 자신의 상사외에는 업무를 보고하거나 공유할 일이 없는 조직은 태생부터 Silo로 자연스럽게 업무를 하게 됩니다.

이런 환경에서는 정보 공유의 니즈 자체가 애초에 없겠죠. 그런데, ‘나는 잘 하고 있는건가?’, ‘내가 만들어내고 결정을 했던 것들은 최선일까’, ‘누구에게 도움을 받아야 되지?’와 같은 질문에는 속수무책이 되고 맙니다.

리눅스를 만든 리누스 토발즈도 비슷한 고민이 있었나 봅니다.

Linus Torvalds: The mind behind Linux | TED Talk

리누스 토발즈가 만든 리눅스는 전세계 수천만대 이상의 컴퓨터에 설치되어 있습니다. 세상에는 15억 개 정도의 안드로이드 OS로 구동되는 모바일이 있는데, 이 장비마다 리눅스가 들어가 있습니다. 이 모든 것을 관장하는 소프트웨어 본부가 있는데, 위의 사진이 바로 리눅스 본부 입니다.

리누스 토발즈는 TED에 나와서 자신이 Linux를 시작한 계기와 Git을 만든 이유를 설명했죠. 크리스 앤더슨이라는 사회자와의 핵심적인 대화주제는 Open Source Projects 였습니다. 물론 그 이전에 Free Software 가 있었고, Linux는 이 Free Software FoundationGNU 프로젝트 산하에서 개발됩니다. (G-Not Unix로, 소스코드가 비공개로 되어 있는 Unix를 대체하기 위한 OS를 만들려는 OS 프로젝트 입니다)

사진에서 보는 것 처럼, 리눅스 본부는 리누스 토발즈의 조그마한 방이고, 무료하고 조용합니다. Fan소리가 싫어서 크고 강력한 PC를 사용하지 않는다고 합니다. 그는 여전히 혼자 일하고, 편한 복장 심지어는 자주 목욕가운을 입고 일한다고 하네요.

그는 리눅스를 공동 프로젝트로 시작하지 않았습니다. 그의 개인적인 여러 프로젝트 중의 하나로 시작했습니다. 필요해서 만들기 시작했고, 자신만을 위한 프로그램이 필요했습니다. Open Source 같은 것은 머리속에 있지 않았습니다. Silo 중에도 상 Silo 였죠.

그런데, 프로젝트가 커지면서 다른 사람들에게 보여주고 싶을 만큼 괜찮아졌다고 합니다. 그때 헬싱키 대학교의 친구 한명이 Free Software를 알려줬고 (리처드 스톨먼의 GNU에 소개되면서 전세계 개발자들이 Linux를 공동으로 개발하고, 이제는 전세계 Data Center와 Cloud가 Linux를 쓰는 흥미로운 일들이 벌어집니다) 리누스 토발즈는 자신의 작품에 대해 사람들이 어떤 피드백을 줄 지 너무나 궁금해 졌습니다. 이 대목에서 Silo 였던 자신의 업무가 Open Source Project로 바뀌는 역사의 순간이 되었습니다.

리누스 토발즈는 지금의 Linux는 아이디어를 제공한 사람들의 공이 더 크다고 말합니다. 누군가는 당신의 코딩에 관심을 보이고, 실질적인 피드백을 주기 위해 자세히 들여다 보고, 아이디어를 받게되는 과정이 너무나 짜릿했다고 하네요.

Git에서 Commit 메세지 잘 쓰는 방법

그런데, 서로 아이디어를 주고 받고, 서로의 코드를 자세히 들여다 보는 Tool이 적당하지 않았습니다. 기존에 사람들은 CVS라는 코드 버젼을 관리하는 Tool을 쓰고 있었는데, 그 툴은 서로 커뮤니케이션하고 정보를 공유하는 기능이 없었습니다. 협업의 핵심인 토론문화가 Tool에는 있지 않았던 거죠. (리누스 토발즈는 CVS를 정말 싫어했고, 그것을 만지고 싶지도 않아 했다고 합니다)

그래서 그는 같이 참여를 원하는 수천명의 사람들과 Linux를 유지보수하고 개선하기 위해 Git을 만들게 됩니다. Git은 Silo로 일하는 것 처럼 보이는 리누스 토발즈의 역작입니다. Git은 전세계 사람들을 모으고, 그들이 서로에게 아이디어를 주게 하고, 개발한 코드들을 더 좋은 코드로 만들어 갈 수 있게 해주는 엄청난 Tool 입니다.

자, 이제 우리의 모습을 되돌아 볼까요? 리누스 토발즈의 Linux 본부는 흡사 우리가 지금 하고 있는 재택 업무와 비슷해 보이는군요. 대부분의 시간을 혼자서 보내고, 자연스럽게 Silo처럼 보입니다. 하지만 사람들의 아이디어와 피드백을 통해 Linux는 보안적으로는 더욱 견고해지고 더 많은 기능들이 붙어가고 있습니다. Git이 없다면, 그는 세상과 소통하고 협업할 수 없었을 겁니다. Tool이 중요하진 않지만, 협업의 핵심철학을 담고 있는 Tool이 업무를 효율적으로 개선해 주고, 사람을 연결하고, 서로를 행복하게 해줍니다. (그래서 전세계 개발자들이 Git을 사랑하고 GitHub에 대해 감사해 하고 있습니다)

Git이라는 Tool을 활용해서 서로 의견을 어떻게 나누고 최종 결론을 어떻게 결정하는지의 Git Culture와 Commit 메세지를 어떻게 쓰면 좋을지에 대한 가이드라인에 대해서 더 자세히 알고 싶다면 아래의 링크를 클릭해 보세요

* Git culture. By Sergey Gernyak, RoR developer at… | by Samantha Wolhuter | Medium

* Commit message guidelines

역설적이게도, Silo로 조그마한 방에서 혼자 일하던 리누스 토발즈를 Open Source Project의 선구자로 만들었던 것은 ‘다른 사람이 어떻게 생각하는지 너무 듣고 싶어’ 였습니다. 누군가의 아이디어를 듣고 싶은 리누스 토발즈의 심쿵. 여러분은 어떠신가요?

역사의 시간적 순서가 바뀌긴 했지만, 이번엔 GNU의 창시자 리처드 스톨먼의 이야기를 들어볼까요?

프로그래밍 천재들이 모여서 일하고 있는 MIT Artificial Intelligence Lab의 어딘가에서, 드르륵 드르륵 소리가 오늘도 몇번 납니다. Unix 컴퓨터에 연결된 프린터가 paper jammed 걸려서 오류로 나는 소리입니다. 이 랩의 Head인 리처드 스톨먼은 보다보다 매번 고장나는 이 프린터를 다 같이 고치자고 랩에 있는 프로그래머들을 독려했습니다. 하지만, Unix의 printer에 해당하는 source code를 열어볼 수 없는 것을 발견합니다. 이유는, 그때 당시에는 Unix를 유료로 구매했고 Unix의 모든 코드는 proprietary로 code를 볼 수 없게 만들어져 있었기 때문입니다. 결국 천재들로 가득찬 MIT의 랩에서 jammed 걸린 프린터의 bug는 누구도 고칠 수 없었습니다.

돈을 주고 산 소프트웨어를 구매자가 소유권을 가지고 있지만, 자유롭게 변경할 수 없다는 것에 실망한 스톨먼은 G-Not-Unix (유닉스 같은건 아닌 다른 어떤 것) 단체를 만들고 Unix와 기능상 같은 OS를 만들고자 1983년 Free Software Foundation을 설립합니다.

여기서 Free Software는 price 문제가 아니라, 소프트웨어가 구매자들을 존중하는지, 아니면 구매했어도 자유롭게 변경하지 못하고 만들어진 채로 에러가 있어도 그대로 사용해야하는 일방적인 관계를 강요하는지와 같은 Freedom의 문제에서 시작합니다. 그는 이 문제를 moral issue라고 생각했던 겁니다. 프로그램이 유저를 control하는지, 유저가 프로그램을 control 하는 지로 생각해 볼 수 있습니다. 이를 society에 대한 respect문제로 본거죠.

소프트웨어가 나를 Control 할지 VS. 더 나은 코드를 위해 코드를 공부하고 아이디어를 제안할지

스톨먼이 소프트웨어에 대한 Freedom을 4개로 나눴는데요. 재미있어서 소개해 드립니다.

* Freedom 0: 소프트웨어를 구동시키는 자유

* Freedom 1: 소스코드의 일부를 변경해서 구동시킬 수 있는 자유

* Freedom 2: 소프트웨어를 공유해서 누군가에게 copy를 주고, 그 누군가가 자유롭게 구동시킬 수 있는 자유

* Freedom 3: 변경된 코드를 누군가와 공유해서 변경된 copy를 주고, 그 누군가가 자유롭게 구동시킬 수 있는 자유

Free Software Foundation에서는 GNU GPL(GNU General Public License)이라는 라이선스를 만들었습니다. 이 라이선스를 가지면, 소프트웨어의 실행, 연구, 공유, 수정의 자유를 최종 사용자에게 보장하게 됩니다. 대표적인 제품이 리누스 토발즈가 전세계 개발자와 협업해서 만든 Linux (엄밀히는 Linux Kernel) 입니다.

이 라이선스를 바탕으로 소프트웨어를 사용하는 일반 사용자도 아이디어를 내고, 개발자는 소스코드를 공부해서 일반 사용자의 아이디어를 구현하기도 합니다. 스톨먼은 이렇게 이야기 합니다 ‘It‘s a matter of freedom, not price’.

GNU가 만들어진지 15년 후인 1998년에, Netscape는 넷스케이프 브라우저의 모든 소스코드를 공개합니다. 엄청난 부를 거머쥘 수도 있지만 이를 용기있게 공개한 것에 개발자 사회는 한껏 고무됩니다. 이에, 팀 오라일리, 리누스 토발즈, 브루스 페렌스, 에릭 레이먼드와 같은 소프트웨어 개발 거장들이 Free Software를 rebrand해서 Open Source라는 단어를 선택하고 Open Source Initiative를 만듭니다.

Open Source Projects를 통해, 리누스 토발즈와 같이 Silo로 조그마한 방에서 혼자 일하는 전세계 개발자들이 더 나은 퀄리티의 제품을 만들기 위해 Git을 이용해서 협업을 하고 있습니다.

우리는 우리가 속한 회사를 위해 일하고, 더 나아가 더 나은 사회를 만들기 위해 일하고 있습니다. 우리가 만들어 낸 지식 — 이것을 소프트웨어라고 본다면 — 을 회사의 구성원들에게 공개하고, Freedom을 가지고 사용하고 (Freedom 0), 더 나은 퀄리티로 수정하고 (Freedom 1), 이 지식을 다른 팀에 전파하며 (Freedom 2), 수정되어 보완된 지식을 전파하여 (Freedom 3), 건강한 사회로 진화하기를 많은 사람들이 원하고 있습니다.

역설적이게도 Tool은 Tool일 뿐이지만, Git이라는 Tool은 Open Source 생태계의 발전을 더욱 가속화 시켜줬습니다. 우리 사회 또는 우리 직장에서는 어떤 Tool을 사용하고 있나요? 여러분은 어떤 Freedom을 가지고 일하고 계신가요? 여러분의 직장 상사는 여러분에게 어떤 Freedom을 제공해 주고 계신가요?

일하는 문화에 대해서 많은 기업이 강조하고 있지만, 우리 회사의 모습은 Unix와 같나요 아니면 Linux와 같나요? 우리가 일하는 회사는 Free Software의 철학, Open Source Projects의 정신을 이해하고 있는지요? 이를 격려하고 보장하고 있는지요? 당신의 회사는 어떤가요?

Free Software에 대해 궁금하시다면, 퇴근길에 아래의 Youtube를 둘러보세요

--

--