'개발자가 취직을 하려면~' 혹은 '개발자에게 포트폴리오란~'으로 시작하는 말에는 꼭 Github라는 말이 등장합니다.
개발자가 본인의 이력을 보여주기 위해서는 꼭 필요하다는 취직의 필수 요소라는데
사실 사이트에 들어가 보면 복잡하게 생겨서 어떻게 사용하는지 감이 잘 안옵니다.
하지만 필수라고 하니 써야는 할 것 같지요!
그래서 이번에는 필수 요소라고 하는 Github에 대해 알아봅시다!
Git이란?
Git이 무엇인지 이번에도 네이버 지식백과에서 한 번 검색해 봅시다.
Subversion이 중앙 서버에서 모든 소스 코드를 보관 관리하는 시스템이라면, Git는 분산 소스 버전 관리 시스템(
Distributed VCS)으로서 서버를 분산시켜 구축할 수 있다.
[네이버 지식백과] Git (유닉스 리눅스 명령어 사전, 2010. 11. 30., 우종경, 박종오)
이게 대체 무슨 소리일까요?? 어려워 보이는 데 하나씩 풀어봅시다.
"Subversion이 중앙 서버에서 모든 소스 코드를 보관 관리하는 시스템" 이라는데
풀어서 말해보면 그냥 한 곳에 모든 코딩한 내용을 저장해놓는다는 말입니다.
회사에서 큰 저장공간을 두고 코딩한 내용을 전부 거기에 저장한다고 생각하면 됩니다.
"Git는 분산 소스 버전 관리 시스템" 은 말 그대로 Git은 여기저기 분산되어 있는 코드를 관리하기 위해서 만들어졌다는 겁니다.
이를 이해하기 위해서 Git이 만들어진 배경을 간단히 살펴봅시다.
어느 날 '리누스 토발즈'라는 천재 외국 개발자가 새로운 운영체제를 만들고 싶어 졌는데, 일이 너무 큰 겁니다.
이 새로운 운영체제는 '리눅스'라는 아이인데 이 리눅스의 코드가 몇 줄일까요?
무려 3억 줄이 넘어갑니다. 사람 한 명이서 할 수 있는 양이 아닌 거지요.
그래서 이 천재 개발자는 혼자는 물론이고 한 회사가 하기에도 너무 큰 일이니 이걸 모두에게 공개해서
수많은 사람들이 이 일을 같이 할 수 있도록 만든 겁니다.
그런데 여기서 또 문제가 생기는데..
지금까지 소스 코드의 보관 방식은 '자기껀 자기가(Subversion)' 이였기 때문에
수많은 사람들이 아무 때나 막 고치는 리눅스의 코드를 관리하기엔 너무 안 맞았던 겁니다.
일단 공개하는 순간 여럿이 한 번에 고칠 수도 있고, 그러다 잘못 고치면 다시 예전 것으로 돌아가야 했는데
누군가 이미 만져서 과거 기록이 없다면? 큰 문제가 되겠지요.
게다가 여러분 레포트나 글을 쓸 때
수정본
수정본1
최종
진짜 최종
진짜진짜 최종
완전 마지막
이런 식으로 저장해두는 경우가 있지요?? 이렇게 해두고 나중에 여러분이 이 파일들의 이름을 보게 된다면
내가 저장한 것이지만 저 중에 무엇이 진짜인지 알기 어려울 겁니다.
더군다나 여럿이 개발하는 환경이라면?
다른 사람이 내가 저장해 둔 것을 보고 이어가야 하는데 저렇게 되어있으면 뭐가 완성본인지 알 수가 없지요.
그리고 여럿이 같이 한다는 것은
모두가 저런 식으로 자기 것을 저장한다는 것입니다.
그럼 더더욱 진짜 최종본을 찾기는 너무 어렵겠지요?
그렇다고 다 덮어쓰기 저장을 하자니, 그러다가 고친 것보다 예전 코드가 좋았다는 걸 깨달았을 때 되돌아 갈 수가 없고요. 그래서 이 천재 개발자는 이런 여럿이 나눠서 개발하는, 분산되어 있는 소스 코드를 보관, 관리하기 쉽도록
'Git'이라는 새로운 시스템을 만들어냅니다.
이런 등장 배경이 있기 때문에 Git은 각자가 자신의 코드 파일을 과거 기록까지 보관해서 언제든지 다시 볼 수 있게 하는 등 폴더/파일 관리를 편하게 할 수 있도록 만들어져 있습니다.
각 파일의 과거 기록을 보관하는 것은 '버전 관리'라고 합니다.
다시 한번 정리하자면, Git은 여럿이 큰 프로젝트를 할 때 도움이 되려고 만든 것으로, 코드를 보관, 관리하거나 각 파일의 변천사를 보관, 관리해주는 코드 관리 도구이자 버전 관리 도구인 겁니다.
Github란?
Github에서 일단 우린 Git이 뭔지는 대강 알았습니다.
그렇다면 Github는 무엇일까요?
hub의 영어단어 뜻은 '중심부, 중추'라는 뜻입니다.
일상생활에도 교통의 hub/ 무역의 hub 등으로 자주 사용하는 단어이지요.
즉 hub란 여러 개를 연결하는 핵심, 중심부라는 것입니다.
그렇다면 Github는?
코드 관리를 하는 Git의 내용을 다른 사람들도 볼 수 있도록 올리게 해 줌으로써 여러 개발자들을 연결해주는 중심부 역할의 사이트인 겁니다.
왜 Github를 써야 할까?
지금까지 우리는 Git과 Github에 대해서 알아봤습니다.
그렇다면 왜 이들을 사용해야 할까요?? 이유는 총 3가지입니다.
- 원격 저장소인 github에 올림으로써 매번 코딩할 때마다 '해당 파일을 저장, 압축, 이메일로 전송 & 다운, 코드 복사, 개발도구에 넣기' 등 일렬의 귀찮은 과정을 하지 않고, github에 로그인해서 그 파일을 받아볼 수 있는 편리함이 있다.
- 다양한 사람들과 공유함으로써 더 질이 높은 파일을 만들 수 있다.
- 자신의 코드를 공개하는 곳이기에 취업의 이력서로써 강력한 힘을 가지고 있다.
이런 이유들로 인해 개발자를 뽑는 대다수의 회사들이 이 Github 이력을 매우 중요하게 보고, 그렇기에 우리는 슬프게도 또 열심히 해야 합니다.
그렇기에 앞으로 같이 이 Github를 정복해봅시다!
다음 포스팅부터는 사용법에 대해서 이야기해 봅시다!
다음에 만나요!!