본문 바로가기
형상관리

Git이 뭘까?

by 개발자doc 2024. 5. 12.
목차
1. Git이란
2. 버전관리 시스템을 사용하는 이유
3. 집중형 vs 분산형

 

1. Git이란
  • 컴퓨터 파일의 변경사항을 저장하고 여러 작업자들의 간의 파일에 대한 작업을 조율하는데 사용하는 분산 버전 관리시스템

git은 2005년 리누스 토르발스에 의해 개발되었다. 대규모 오픈 소스 프로젝트인 linux 커널을 개발하면서 버전관리를 위해 BitKeeper라는 것을 사용하였으나 유료로 전환되면서 비용이 만만치 않아 무료로 사용할 버전관리 시스템이 필요해졌고 그런 시스템을 찾기보다 직접 만들어버리는 사태에 이른다. 

git을 개발하면서 Bitkeeper을 사용했던 경험을 토대로 목표를 세우고 지금까지 초기 목표를 유지하고 있다.

▪️ 빠른 속도
▪️ 단순한 구조
▪️ 비선형적 개발
▪️ 완벽한 분산
▪️ 대형 프로젝트에 유용

분산형 버전 관리 시스템은 각 소스코드가 서버에도 있지만 각 사용자의 컴퓨터 git저장소에도 있기 때문에 중앙 서버에 문제가 있어도 사용자의 pc를 통해 복구가 가능하다는 장점이 있다.

 

2. 버전관리 시스템을 사용하는 이유

그렇다면 그냥 버전 구분만 할 수 있게 하면되지 굳이 버전관리 시스템을 사용하는 이유가 뭘까?

버전 관리에 대한 시스템이 없었을 때는 단순히 파일명에 버전을 체크했을 것이다. 

그러나 이런 방식은 누가 어느 내용을 어떻게 바꿨는지 언제 바뀌었는지 추적이 어렵고 버전의 이름이 제각각으로 되기 때문에 어떤 것이 최신 버전의 파일인지 알기가 힘들다.

하지만 버전 관리 시스템을 사용하게 되면

작업한 파일의 내용에 대해 수정사항과 수정일, 누가 수정했는지 등이 자동으로 관리가 된다. 이는 작업자가 수정했던 내용에 문제가 생겼을 때 추적이 쉬워 코드 관리가 용이해진다.

 

3. 집중형 vs 분산형

버전 관리 시스템은 git과 같은 분산형만 있는 것이 아니다. 중앙집중형 버전관리 시스템도 있는데 왜 git을 많이 사용하는지 각각의 특징을 알아보도록 한다.

집중형 분산형
별도의 서버에 소스코드 저장

중앙 서버에서 파일을 받아 사용

서버 하나만 관리하면 되므로 관리가 용이

중앙서버에 문제 발생시 복원이 어려움
서버가 존재하나 사용자와 코드를 공유

코드와 이력을 복제하여 사용

로컬에서 버전관리가 이루어짐

서버에 문제가 생겨도 사용자의 저장소를 통해 복원가능

각각의 버전관리 시스템의 장단점이 있다. 하지만 코드 관리에 대해서는 분산형이 편리함과 더불어 서버 문제에 대해 대응하기에 더 좋다고 느껴진다.

 

참조

아이콘 : https://icon-icons.com/ko/아이콘/서버/126280