안녕하세요. J4J입니다.
이번 포스팅은 Git이란 무엇인가에 대해 적어보는 시간을 가져보려고 합니다.
Git이란?
Git은 형상 관리 도구, 버전 관리 시스템 등으로 불리는 것으로 프로젝트에 사용되는 소스코드들을 효과적으로 관리할 수 있도록 도와주는 무료 오픈소스입니다.
소스코드를 관리할수 있도록 도와주는 것들은 Git뿐만 아니라 SVN, CVS 등 다양한 것들이 존재하는데 그중 Git이 가장 최근에 등장하기도 했으며 또한 가장 각광받고 있는 것 중 하나입니다.
그렇기 때문에 Git을 사용하지 않는 곳에서는 형상 관리 도구를 Git으로 전환하려는 움직임이 많이 보이고 있고 개인적으론 대다수의 회사들은 Git을 현재 사용하고 있을 거라고 생각합니다.
사용 이유
Git을 왜 사용할까요?
간단하게 말씀드리면 여러 사람들과 협업을 하는 과정속에서 개인들이 구현한 코드들을 효과적으로 합칠 수 있게 도와주기 때문입니다.
예를 들어 A, B라는 사람이 하나의 프로젝트를 동시에 개발하고 있을 때 서로가 개발하고자 하는 기능을 구현하기 위해 C라는 파일을 각자의 상황에 맞게 서로 수정을 하는 상황이 발생했습니다.
그리고 개발한 기능들을 합치려고 하는데 C라는 파일은 A, B가 모두 수정했기 때문에 서로 어떤 부분을 추가했는지, 삭제했는지 등을 명확하게 파악할 수가 없게 됩니다.
Git은 이런 상황들이 발생할 때 서로가 수정한 코드를 비교하며 쉽게 합칠 수 있도록 도와줍니다.
추가적으로 이와 같은 상황은 Git뿐만 아니라 SVN, CVS도 모두 동일한 목적을 위해 사용될 수 있습니다.
하지만 Git을 더 많이 사용하는 추세라고 말씀드렸었고 그 이유에 대해서는 Git과 SVN을 비교하며 설명드리겠습니다.
Git vs SVN
구분 | 버전 관리 모델 | 저장 방식 |
---|---|---|
Git | 분산 모델 | 중앙 서버 및 여러 개발PC에 저장 |
SVN | 중앙 서버 모델 | 중앙 서버에만 저장 |
위의 그림과 표에 나와있는 것처럼 Git과 SVN의 가장 명확한 차이는 로컬 저장소의 유무입니다.
"에게.. 겨우.. 저거 하나때문에?"라고 생각하실 수도 있겠지만 이런 사소한 차이가 다음과 같은 장점들을 제공해줍니다.
- 중앙 서버의 데이터가 사라져도 여러 로컬 저장소들이 존재하기 때문에 원상복구가 훨씬 쉬움
- 인터넷이 되지 않는 상황에서도 로컬 저장소에 소스 코드를 저장하며 개발이 가능
- 자신만의 히스토리를 관리할 수 있음
장점
위에서 언급된 내용들과 언급되지 않은 Git의 장점들을 나열하면 다음과 같은 장점들이 있습니다.
- 여러 명이 동시에 협업하며 개발할 수 있도록 도와줌
- 개발 PC마다 로컬 저장소가 존재하여 중앙 서버에 문제가 발생되더라도 복구가 쉬움
- 인터넷이 연결되지 않아도 로컬 저장소에 소스 코드 저장이 가능
- 자신만의 히스토리 관리가 가능
- 브랜치를 이용한 소스코드 복사를 통해 목적에 맞는 기능을 구현한 뒤 master브랜치에 병합하는 작업이 가능 (개발 중인 소스코드에 문제가 생기더라도 master브랜치에는 영향을 미치지 않음)
- 작업 파일들을 중앙 서버에 올릴 파일과 올리지 않을 파일로 구분이 가능
- 툴체인을 통해 다른 도구들과 연결되어 자동 배포 등을 수행 가능
이상으로 Git이란 무엇인가에 대해 간단하게 알아보는 시간이었습니다.
읽어주셔서 감사합니다.
'Devops > Git' 카테고리의 다른 글
[Git] Default 브랜치 변경 방법 (0) | 2021.05.05 |
---|---|
[Git] 브랜치 생성하는 방법 (0) | 2021.05.02 |
[Git] 원격 저장소 연결하여 저장소 파일 다운로드하는 방법 (0) | 2021.05.01 |
[Git] 원격 저장소 연결하여 로컬 파일 업로드하는 방법 (0) | 2021.04.30 |
[Git] Git 용어 및 명령어 정리 (0) | 2021.04.28 |
댓글