brunch

You can make anything
by writing

C.S.Lewis

by 김근희 Apr 16. 2019

당신을 구원할 깃(Git) 그리고 깃허브(GitHub)

차근차근 GIt에 대해 알아볼까요



친구들, 요즘 깃(Git)에 대해서 다들 한 번쯤은 들어보았겠지?

현업에서는 이 깃(Git)을 통해서 깃허브(GitHub) 자신의 프로젝트를 올려놓고 하나의 포트폴리오로 사용하기도 하고, 또는 협업 프로젝트를 진행할 때 버전 관리(VCS)로 사용하기도 해.


점차적으로 점유율이 높아 VCS에서 막강한 영향력을 발휘하고, 세계의 프로그래머들의 방식을 바꿔놓은 이 에 대해서 한번 다뤄보고자 해.


세상은 이런 작은 혁신들 하나로 변화한다고 생각해



01. 먼저 깃이 탄생하게 된 유래부터 한번 알아보도록 할까?


리누스 토르발스는 초기에 리눅스 커널 소스 코드를 관리할 때 기존의 버전 관리 시스템을 사용하지 않았어.  대부분은 사람들이 보내오는 메일링 리스트를 받아 기여 내용을 관리하였었는데 점차 데이터가 방대해지자 버전 관리 시스템을 사용하게 되었지.


초기에는 BitKeeper라는 프로그램을 사용했다고 해. 이 프로그램은 상용 S/W 였지만, 리누스 토르발스가 필요로 하는 기능들이 있었기에 사용하였고 이러한 선택은 자유 소프트웨어 진영으로부터 많은 지탄을 받게 되었지. 하지만 그러함에도 마땅한 대안들이 없었기에 계속 사용하게 되었어.  오픈 소스 소프트웨어에 상용 S/W를 사용하다니 논란거리가 될 수밖에 없었겠지.



그러다 BitKeeper 쪽에서 리버스 엔지니어링을 문제로 개발자들을 제한하는 일이 발생하였고, 토르발스는 기존의 프로그램을 사용할 것인지 다른 버전 관리 시스템을 사용할지 결정해야 했는데, 우리의 예상과 다르게 그냥 자신이 버전 관리 시스템을 만들어버렸지. 능력자는 역시 다르다는 걸 보여주는 클래스.  [참고]  그렇게 만들어진 것이 바로 Git이야.  뭐, 속설로는 2주 만에 만들었다는 이야기도 있고.


리누스 토르발스의 블로그 관심 있으면 한번 들어가서 봐보는 것도 좋아.






개발자의 선택로 인하여 기존의 BitKeeper는 유료 정책도 포기하고 무료로 풀었으며, 아파치 라이선스 소스로까지 공개하였지만 대세는 Git이 되어버렸지. 이 글을 쓰는 나도 약간은 자유 소프트웨어 진영의 의견(사상)을 좋아하는 편인데, 한 개발자(라고 하기엔 천재)의 시도가 세상을 바꿀 수 있다는 멋진 예라고 생각해.


여하튼, GIt은 압도적인 점유율을 갖게 되었고, 오픈 소스에 대해 보수적인 입장을 취했던 마이크로소프트마저 Git의 대표적인 저장소인 GitHub를 인수하기까지 이르렀고,  마이크로소프트는 깃허브를 이용하던 수많은 개발자들까지 얻는 부가적 효과까지 누리게 되었지.   물론 마이크로소프트 전체가 오픈 소스에 대해 보수적인 입장을 취한 건 아니야. CEO마다 조금씩 결이 달랐지. 이 내용은 밑에서 다룰게.


지금은 구글 트위터 등에서도 사용될 만큼 Git은 압도적인 점유율을 갖고 있는 상황이지.


그렇다면 이 글을 읽고 있는 친구는 세계의 수많은 개발자들이 현재 사용하고 있고, 정보를 나누며 그들의 아이디어와 경험, 결과물이 아낌없이 공유되는 자유 소프트웨어의 성지인 Git과 GIthub를 사용하지 않는다면, 그만큼의 정보와 경험에서 외톨이가 되지 않을까?


이러한 시대의 트렌드,  신입 개발자나 대학생이라고 해서 이런 트렌드를 간과하고 넘어간다면 깃을 통해 얻을 수 있는 수많은 이점을 포기하는 것이겠지.  


사회에 나가면 대부분의 협업에 있는 사람들이 사용하고, 작은 기업에서는 프로젝트의 버전 관리를 위해 외부와의 협업을 위해서라도 사용하고 있는 이 깃에 대해서 미리 알고 준비해서 취업전선에 나가게 된다면 깃을 모르는 사람에 비해서 조금이나마 경쟁력을 갖출 수 있게 될 거야.


아니, 그전에 내가 인간다운 개발자의 삶을 살기 위해서라도 하나의 버전 관리 시스템은 사용해야 한다고 생각해!





02. 깃의 특징.


대표적인 분산 버전 관리 시스템으로 주로 소프트웨어 개발에서 소스 코드 관리에 집중되어 사용되지만, 특정 파일의 변경사항을 지속적으로 추적하기 위해 사용될 수도 있어.  또한 클라이언트-서버 단으로 묶인 시스템이 아닌 독립적으로 동작하는 저장소이기도 하지.  


즉, 깃 파일을 저장하기 위해 서버가 필요하지 않다는 것이지.

물론 분산 서버 관리 시스템으로써 갖출 기능들은 대부분 갖추고 있고!  




03. 깃 허브란 무엇일까.


깃은 독자적으로 작동할 수 있다고 이야기하였지? 하지만 그 깃 저장소를 웹 상에 저장(동기화)하여서 어디서든 작업 환경에 구애받지 않고 쉽게 작업을 할 수 있다면 개발자의 인간다운 삶을 사는데 도움이 되지 않겠어? 그렇게 해서 탄생한 것이 대표적 웹 저장소 Github 라고 할 수 있지. 이 외에도 다양한 GIt 저장소가 있지만 나는 Github를 사용해.


깃 허브의 특징은 GitHub Pages라는 이름으로 웹 사이트 호스팅도 지원하고 있는데, 간단한 사이트 같은 경우에는 호스팅을 따로 유지하지 않아도 이 사이트를 통해서 운용할 수 있지. 이는 비용 측면에서 꽤나 큰 도움이 되기도 하고,  프런트 개발 작업 물들을 이 쪽에 올려서 테스트 용으로 확인해보기도 하지.


이 프런트 개발 작업에 대한 내용으로 나는 'REACT'에 관하여 다룰 예정인데 이 내용은 차차 다뤄보도록 할게.



또한 기존의 깃을 사용하기 위해서는 콘솔에서 명령어를 입력하는 방식을 사용해야 했는데, GitHub Desktop을 이용하면 GUI 방식을 통해서 깃을 편리하게 사용할 수 있지. 이게 꽤나 편리하고 좋아. 물론 명령어 자체가 어려운 건 아니지만 그래도 GUI방식이 좀 더 편리하다면 편리하겠지.






참고로, 깃허브는 어마어마한 적자를 기록하고 있었어. 그래서 어딘가에 인수되는 것을 희망하고 여러 기업들과 논의를 하던 중이었는데, 오픈 소스에 친화적인 입장이었던 마이크로소프트 CEO 나델라와 논의 후, 2018년 6월 4일에 인수 소식을 발표하게 되었지.  인수금액은 75억 달러 정도.


대부분의 IT 업계에서는 프로그래머 면접에서 GitHub 계정이 이제는 일종의 포트폴리오 역할을 하게 되었어. 입사 지원서에도 위 계정의 URL을 요구하는 곳도 늘어나고, 다양한 방면에서 사용되고 있지.


프로그래밍을 공부하기에도 좋은 매체이기도 하고.  다양한 사람들이 다양한 작업 물들을 올릴 수 있기 때문에 돌아다니다 보면 재미있는 프로젝트도 발견할 수 있어.   [아폴로 11호에 사용된 컴퓨터의 소스가 있다든지]




* 다음 내용에는 이 깃(허브)을 사용하는 방법에 대해서 한번 다뤄볼까 해.



- 위의 자료 내용은 기본적으로 알고 있던 내용과 다양한 사이트의 정보들을 토대로 작성했음.

- 이 내용은 대학교에서 학생들을 대상으로 한 강의 내용으로 작성되었어요.  학생들의 이해에 맞게 설명하고자 설명이 길어진 부분도 있고, 약간 내용을 간략히 수정한 부분도 있어요.

- 내용들은 점차적으로 계속 수정, 보안할 예정이에요.

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari