오픈소스 개발을 위해 많은 사람이 이용하는 서비스가 있습니다. 바로 ‘깃(Git)’이라는 서비스인데요. 특히, 깃을 기반으로 만든 깃허브(GitHub)는 전 세계 오픈소스 개발자들의 놀이터라고 볼 수도 있습니다. 오늘은 깃과 깃허브에 대해 자세히 알아보도록 하겠습니다. 깃과 깃허브에 익숙해지면 오픈소스 개발자로 입문하는 데 많은 도움이 되실 것입니다.
이때 필요한 것이 버전 관리 시스템입니다. 버전 관리 시스템을 이용하면 파일 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 불러올 수 있습니다. 또한, 누가 어떤 코드를 수정했는지 기록하고 추적하기도 쉬워집니다.
사실 깃 이전에도 코드를 공유하는 기본적인 기능은 있었습니다. 리누스 토발즈는 이러한 도구를 이용하다가 ‘확장성’ 부분에 문제가 있다고 느꼈다고 합니다. 다시 말해 수십 명, 수천 명이 동시에 한 시스템을 같이 만들기에는 적합하지 않은 도구들이었죠. 라이선스 문제도 있었습니다.
그렇게 개발된 것이 깃입니다. 깃은 1,000명이 동시에 이용할 수 있을 만큼 확장성이 좋습니다. 리누스 토발즈는 깃의 기본 개념을 제공하는 수준으로 기여했고, 이후에는 주니오 하마노(Junio Hamano)라는 개발자가 깃을 개발하고 관리하고 있습니다.
깃의 가장 큰 특징은 데이터를 다루는 방식입니다. 과거 소스코드 관리 도구는 파일 목록을 관리하면서 데이터의 변화를 기록했습니다. 깃은 다릅니다. 깃은 파일을 새로 저장하는 것이 아니라 새로운 프로젝트가 생성되는 순간을 더 중요하게 여깁니다. 예를 들어, 이전 상태로 돌아갈 수 있는 링크를 계속 저장합니다. 더 작은 파일 시스템이라고 할 수 있죠. 이러한 과정에서 프로젝트가 망가질 걱정 없이 특정 상태로 되돌리기를 할 수 있습니다.
또한, 브랜치 모델을 적용하기도 좋은 도구입니다. 깃에선 브랜치를 만들고, 코드를 복제하고 여러 방식으로 코드를 작성하고 다시 통합할 수 있습니다. 다른 버전 관리 도구들도 브랜치를 지원하긴 하나 깃의 브랜치 모델은 훨씬 더 가벼운 특징이 있습니다. 현재 깃은 GNU 일반 공중 사용 허가서 버전 2(GNU General Public License version 2) 라이선스로 배포되고, 독립된 프로젝트로 운영되고 있습니다.
l Github ‘Octocat’ (출처: https://github.com/logos)
깃허브의 가장 강력한 기능은 ‘포크(fork)’입니다. 각 코드 저장소에는 ‘포크’라는 버튼이 항상 보이는데요. 이 버튼을 누르면 누구나 자신의 계정으로 해당 소스코드를 복사하고 활용할 수 있습니다. 포크와 별도로 ‘스타(star)’라는 버튼도 있습니다. 이 기능은 일종의 즐겨찾기 기능으로 마음에 드는 소스코드 저장소를 나중에 확인할 수 있도록 도와줍니다. 깃허브 내의 인기 소스코드 저장소를 판단하는 기준에 ‘포크’ 수나 ‘스타’ 수가 많이 참고되곤 합니다.
깃허브는 단순히 서비스로 국한되는 것이 아니라 전 세계 오픈소스 정보가 모이는 곳이기도 합니다. 인기 오픈소스 순위나 분석 데이터를 제공하기도 하고 별도의 교육, 콘퍼런스도 진행합니다. 깃허브가 역할이 점점 커지자 많은 기업이 자체 홈페이지를 버리고 소스코드 저장만큼은 깃허브에서 하는 경우도 많아지고 있습니다.
구글의 경우 수백 개의 오픈소스 프로젝트를 원래 ‘구글 코드’라는 내부 저장소에 공개했지만 2015년 내부 호스팅 서비스를 폐쇄하고, 깃허브로 모든 소스코드를 옮기는 결정을 발표했습니다. 마이크로소프트(MS) 역시 2017년 ‘코드플랙스’라는 내부 코드 저장소를 폐쇄하고 깃허브로 모든 오픈소스 코드를 옮겼습니다. 그 결과 현재 깃허브 사용자는 2,000만 명이 넘었고, 깃허브에 내에 저장된 소스코드 저장소는 약 5,700만 개라고 합니다.
l 깃허브 프로젝트 (출처: https://github.com/atom/atom)
* 해당 콘텐츠는 저작권법에 의하여 보호받는 저작물로 LG CNS 블로그에 저작권이 있습니다.
* 해당 콘텐츠는 사전 동의없이 2차 가공 및 영리적인 이용을 금하고 있습니다.
'IT Insight' 카테고리의 다른 글
Digital Transformation, 어떻게 시작할까? (0) | 2017.04.19 |
---|---|
2017, IT와 금융의 융합 #3 인공지능이 몰고 온 자산관리 혁신, 로보어드바이저 (0) | 2017.04.19 |
[4차 산업혁명 쇼크] 인공지능 ‘음성비서’가 왔다 (0) | 2017.04.11 |
자동차 HUD로 상상해보는 AR의 미래 (0) | 2017.04.03 |
4차 산업혁명, 클라우드 로봇시장 열다 (0) | 2017.03.23 |