본문 바로가기
Git

[Git] 깃(Git)과 깃허브(Github)란?? "많이 들어보긴 했는데 이게 뭔가요??"

by 개발하는 지토 2019. 12. 11.

안녕하세요! 개발하는 지토입니다.

 

오늘은 개발자라면 누구나 한 번쯤은 들어봤을 깃(Git) 깃허브(Github)에 대한 이야기로 끄적이겠습니다.

 

 

 

자 먼저 깃(Git)이란 버전 관리 시스템(VCS: Version control system)입니다. 그중에서도 중앙 서버에서만 관리를 하는 게 아니라 각 개발자가 중앙 서버에 접속하지 않은 상태에서도 코드 작업을 할 수 있는 분산 버전 관리 시스템(DVCS: Distributed Version Control Systems) 입니다.

 

그리고 깃허브(Github)는 위에서 설명한 깃(Git)을 사용하는 프로젝트를 지원하는 웹호스팅 서비스입니다. 간단하게 말하면 깃(Git)의 데이터를 저장하고 있는 서버라고 할 수 있습니다. 깃(Git)의 데이터를 저장하기 위한 서버는 자체적으로 구축할 수도 있지만 편하게 하기 위해 깃허브(Github)를 대부분 사용하고 있습니다. 그리고 깃허브(Github)는 오픈소스에 대해서 무료로 서버가 제공되고 비공개 소스도 일정 부분까지는 무료로 서버가 제공되고 있습니다. 그리고 사용자도 많고 커뮤니티도 활성화돼있어서 다른 사람들과 코드에 대한 의견을 나누거나 직접 참여까지 자유롭게 할 수 있습니다. 이를 통해 오픈소스들이 발전하고 모두에게 도움이 되고 있습니다. 

 

저는 이 깃(Git)을 학원에서 진행했던 프로젝트를 할 때 처음 접하게 되었는데요, 팀 프로젝트를 진행함에 있어서 소스에 대한 버전 관리가 필요했는데 여러 가지의 버전 관리시스템 중 깃(Git)을 선택하여 프로젝트에 적용하게 되었었습니다. 저의 경우에는 버전 메인 관리를 제가 하고, 나머지 팀원들이 각각의 브랜치(Branch)에서 작업을 한 뒤에 커밋(Commit) 한 결과 소스들을 확인하고 종합하여 최종 Master 브랜치푸시(Push)를 하여 Master에서는 완벽한 소스만을 관리하도록 작업했습니다. (첫 프로젝트에서 경험했던 깃(Git)의 사용법이라 이 방법이 무조건 정답이라고는 장담할 수 없습니다.)

 

여기서 중요한 것은깃(Git)과 같은 버전 관리 시스템(VCS)을 사용하는 이유입니다. 혼자 진행하는 프로젝트의 소스를 관리할 때도 필요하지만, 특히 개발은 사람들과 협업하여 팀으로 진행하는 경우가 대부분인데 이때 각자 작업하는 소스들을 관리하기가 편하다는 것입니다. 

그리고 어떤 프로그램이 버전 1로 출시했다고 예를 들어봅시다. 이후에 업데이트할 작업이 존재하여 버전 2로 업데이트를 하는 과정에서 문제가 생겼고 다시 버전 1로 다운그레이드를 해야 할 상황에 놓입니다. 그런데 버전 관리 시스템(VCS) 사용하지 않게 되면 버전 2로 업그레이드를 진행하면서 어떤 소스들을 추가, 삭제했는지 기억이 안 날 수도 있고 애매한 상황이 닥칠 수 있습니다. 하지만 버전 관리 시스템(VCS) 사용하면 이전 버전으로 손쉽게 다시 작업할 수 있습니다.

 

이제 모든 프로젝트에는 깃(Git)과 같은 버전 관리 시스템은 필수적이라고 생각이 됩니다.

 

제가 현재 진행 중인 프로젝트도 깃(Git)은 아니지만 SVN(Subversion)으로 버전 관리를 진행하고 있습니다.

 

이 글을 보시는 분들 중 막 개발을 시작하고 이런 버전 관리 시스템(VCS) 개념을 처음 보신 분이라면!!

깃(Git)을 한번 사용해보시길 추천드립니다!!

댓글