본문 바로가기

Git 그리고 GitHub

Git 그리고 GitHub의 기본 개념

요즘 많이 사용되고 있는 Git과 GitHub에 대해 얘기해보도록 하겠습니다. 우선은 버전관리에 대해 알아보도록 하겠습니다.



버전관리란 무엇인가?


처음듣는 얘기같지만 사실 우리는 이미 버전관리를 하고 있습니다. 요즘 게임을 많이 합니다. 게임을 할 때 어디까지 했는지 저장을 했다가 다음에 시작할 때 거기서 부터 다시 시작합니다. 매번 처음부터 시작한다면 우리는 게임을 하지 않거나 멈추지 않을 것입니다. 워드작업을 할때도 실수한 부분이 있다면 ctrl+z를 눌러서 한단계씩 뒤로 갈 수 있습니다. 이는 어떤 시점(버전)으로 이동할 수 있게해주는 버전관리이며, 이를 도와주는 툴이 버전관리 시스템입니다. 위에서 설명한 내용들은 개인 컴퓨터에서 혼자 사용하는 프로그램이라면 별 상관이 없지만 만약 여러 사람이 함께 만드는 프로그램이라면 어떨까요?


팀 프로젝트에서 사용할 공용 폴더를 만들고 그곳에 소스코드를 올려 놓는다고 가정해보겠습니다. 이곳에 올려진 최초의 소스코드를 '00 버전'이라고 해보겠습니다. 팀원 A가 '00 버전'의 소소코드를 수정해서 '01버전'으로 저장하고, 팀원 B가 '01 버전'을 수정해서 '02 버전'으로 저장할 수 있을 것입니다. 하지만 팀원 B와 팀원 C가 동시에 '01 버전'을 수정해서 '02 버전'으로 저장한다면 어떻게 될까요? 팀 프로젝트에 참여하는 인원이 많을 수록 프로젝트 기간이 길수록 어느 파일이 최종 업데이트 화일인지 확인할 길이 막막해집니다. 그래서 여럿이 함께 작업하는 협업프로젝트에는 버전 관리가 필요합니다. 제가 예전에 어떤 프로젝트에 들어가서 작업을 할 때 두명의 개발자가 동시에 화일을 수정하는 경우가 발생했었습니다. 이렇게되면 나중에 저장한 사람의 내용만 저장되고 미리 저장한 사람이 수정한 내용은 지워지게 됩니다. 그 당시는 오래전이라 버전관리라는 말도 없었고 그런 개념도 희박했었습니다. 그래서 서로 조심하고 물어보면서 작업을 했습니다. 이후로 버전관리라는 개념이 생기고 여러가지 툴이 존재했었습니다. 초기에는 지금처럼 웹이 없었기때문에 서버에 버전관리시스템을 설치하고 작업을 했었습니다. 요즘에는 Git그리고 GitHub가 생겨서 많은 사람들이 이것을 이용하고 있습니다. 요즘은 거의 개발자들의 필수코스라고 볼 수 있습니다. 회사에 취직하려면 Git을 사용할 줄 아느냐라고 물어보는 회사들도 많이 생겨났습니다.



Git 그리고 GitHub


ctrl+z 키를 사용해서 이전 단계로 되돌리는 것 이상으로, 내가 원하는 시점마다 깃발을 꽂고, 깃발이 꽂힌 시점으로 자유롭게 이동할 수 있다면 편안하게 새로운 소스코드를 추가하거나 삭제할 수 있을 것입니다. 소소코드 오류가 일어난다면 바로 전에 꽂은 깃발 시점으로 돌아가면 되니까요.

이를 가능하게 해주는 소스코드 버전관리 시스템이 바로 Git입니다. Git은 소스코드 버전 사이를 오가는 시간 여행 이상의 기능을 제공합니다. 전 세계적으로 수많은 개발자가 Git으로 협업하고 있습니다.


Git은 데이터를 저장할 공간만 있다면 어디서나 사용할 수 있습니다. 개인 컴퓨터에만 저장한다면 나 혼자 사용할 수 있을 것이고 USB에 저장한다면 휴대하면서 어디서든 내가 작업하던 프로젝트를 사용할 수 있을 것입니다. 만약 드롭박스, 구글 드라이브와 같은 클라우드 서버에 올려둔다면 팀 프로젝트를 하는 다른 팀원과 함께 인터넷을 통해 버전관리를 할 수 있습니다.


이렇게 Git으로 관리하는 프로젝트를 올려둘 수 있는 Git 호스팅 사이트 중 하나가 바로 GitHub입니다.  블로그를 만들 수 있는 곳이 네이버, 다음, 워드프레스 등 다양한 것처럼 Git으로 관리하는 프로젝트를 올릴 수 있는 사이트도 GitHub뿐 아니라 GitLab, BitButchet 등 다양합니다. 여기서는 GitHub에 대해 설명하도록 하겠습니다. GitHub에 소스코드를 올려두면 시간, 공간의 제약 없이 협업할 수 있습니다. 또한 프로젝트를 공개저장소로 만들면 이름도, 얼굴도 모르는 전 세계 개발자와 협업할 수 있죠. 이렇게 누구든지 기여할 수 있는 공개저장소 프로젝트를 오픈소스라고 합니다.

'Git 그리고 GitHub' 카테고리의 다른 글

Git 설및 및 로컬저장소 만들기  (0) 2020.08.17
GitHub 가입하기  (0) 2020.08.11