개발 이야기/Git

[GIT] Git이란?

제이온 (Jayon) 2020. 11. 23.

 

 

안녕하세요? 코딩중독입니다.

 

오늘은 Git이 무엇인지 알아보겠습니다.

 

 

버전 관리란?

먼저, Git을 알기 위해서는 버전 관리가 무엇이고, 버전 관리가 왜 중요한지 알아야 합니다.

 

버전 관리의 구체적인 정의보다는 사례를 한 번 들어 보겠습니다. 우리는 어렸을 때부터 자연스럽게 버전 관리를 해 왔기때문이죠.

 

가령, 우리가 어떠한 교양 보고서를 하나 작성한다고 가정해 봅시다.

 

 

 

 

그리고 어떻게 하다보니, 하루만에 보고서를 완성하였습니다. 그런데, 동기와 이야기하다보니 제 보고서의 뭔가 부족한 부분이 있는 것 같아서 수정을 하였고, 그 전에 있던 파일을 왠지 지우면 안될 것 같아서 수정본을 새로 만들었습니다.

 

 

 

 

진짜 다 했다고 생각했는데, 교수님이 빠진 주제가 있다고 추가로 글을 작성하라고 과제 내용을 변경하셨습니다. 그래서 어쩔 수 없이 위 보고서에서 또 내용을 첨가하였죠. 마찬가지로, 왠지 이전에 있던 파일들을 지우기 뭐해서 냅두고 새 파일을 만들었습니다.

 

 

 

 

이렇게 하나의 과제를 하는 데만 벌써 3개의 파일이 생겼습니다. 하지만, 버전 관리를 하고 있는 것은 많습니다. 어떠한, 의미있는 변화에 대해서 각각의 이름을 부여하고, 서로 비교할 수 있고, 과거로 돌아갈 수 있도록 만들었기 때문이죠.

 

다만, 위 일련의 과정이 효율적이라는 생각은 들지 않습니다. 만약, 이것이 반복되어 10개의 파일이 생겼다면, 파일의 제목만으로 어떤 파일이 최신인지도 헷갈리고 어떤 내용이 이전과 다르게 수정되었는지 확인하기가 어렵습니다.

 

이러한 버전 관리를 혼자한다면 그나마.. 그나마 커버를 칠 수 있지만, 여러 명이서 공유 폴더를 생성하여 버전 관리를 위 방식처럼 한다면 어떤 팀원이 실수로 잘못된 파일에 수정하거나 삭제하는 참사가 생길 수 있습니다.

 

따라서, 좀 더 똑똑하게 버전 관리를 해야하는데, 이를 도와주는 도구가 바로 버전 관리 도구입니다.

 

그리고 그 도구 중에서도 개발자들 사이에 가장 많이 쓰이는 것이 바로 Git입니다.

 

 

Git의 장점 및 특징

1. 소스코드를 usb나 메신저 등으로 파일 자체에 대해 주고 받을 필요 없고, 같은 파일을 여려 명이 동시에 작업하는 병렬 개발이 가능합니다.

 

2. 소스코드의 수정 내용은 커밋이라는 단위로 관리할 수 있고, 패치라는 형식으로 배포가 가능하기때문에 프로그램의 변동 과정을 체계적으로 관리할 수 있습니다.

 

3. 과거의 버전으로 되돌아갈 수 있습니다.

 

4. 분산버전관리이기 때문에, 인터넷이 연결되지 않은 곳에서도 개발을 진행할 수 있으며, 중앙 저장소가 날아가도 다시 원상복구할 수 있습니다.

 

5. Local에서 대부분의 작업을 할 수 있고, 이러한 이유로 속도도 빠릅니다.

 

 

번외) GitHub는 뭘까?

여기까지 Git에 대해서 느낌적인 느낌은 알 수 있으실 겁니다. 그런데, 우리는 Git하면 떠오르는 단어가 GitHub가 있을 것이고, 이 두 개의 차이를 잘 모를 수도 있습니다.

 

간단하게 말해서 Git은 버전 관리 도구이고, GitHub는 Git을 기반으로 소스 코드를 호스팅하고, 협업 지원 기능들을 지원하는 마이크로소프트Microsoft의 웹 호스팅 서비스입니다.

 

 

정리

여기까지 버전 관리와 Git, GitHub에 대해서 간략하게 알아 보았습니다.

 

다음 시간에는 한 번 직접 Git을 설치해 보도록 합시다.

댓글

추천 글