깃을 배워야 하는 이유

박제욱·2024년 3월 9일
0

Git, GitHub, GitHub Flow

목록 보기
1/50
post-thumbnail

사진 출처 : https://namu.wiki/w/Git

개발 직군에 종사하거나 하길 원한다면 깃을 다룰 줄 아는 것은 오늘날 사실상 필수소양이다.

깃(Git)은 VCS라는 프로그램들 중 하나다. VCS는 Version Control System의 약자이다. VCS는 프로그램의 버전 관리를 위한 툴이다.

여기서 버전 관리란 프로젝트의 시간과 차원을 관리하는 것이라고 볼 수 있다. 쉽게 말하면 개발자들이 프로그래밍을 하면서 필요에 따라 시간여행을 하고 여러 차원을 넘나들 수 있게 해준다는 것이다.

프로그래밍을 해서 소프트웨어를 만드는 것은 대부분 첫 결과물에서 끝나지 않는다. 새로운 기능을 추가하고 오류를 수정하고 성능을 개선하며 끊임없이 새로운 버전이 나온다. 그러나 이 과정에서 전에 했던 작업을 취소해야 할 일들이 생긴다.

예를 들어, 버전 6에 추가한 기능에 결함이 있어 버전 5로 되돌아가야 하는 경우를 들 수 있다. 이때 버전을 업그레이드할 때마다 백업해서 이전 버전을 활용하는 방법이 있지만 이는 버전 업그레이드를 할 때마다 백업 파일이 생겨 결국 메모리 용량이 부족해지는 상황이 발생한다. 또한 다른 버전들에는 문제가 없는 상황인데 발견되어 해당 부분만 찾아 취소해야 하는 상황이라면 깃을 활용하여 해결해 낼 수 있다. 이런 부분을 시간여행에 비유하는 것이다.

다음은 차원에 관한 부분을 알아보자. 예를 들어, 회사에서 앱을 만드는데 어떤 아이디어가 떠올라서 만들고 있는 앱에 시도를 해보고 싶은 경우 회사의 프로젝트에 자기 멋대로 논의하지 않은 코드를 추가할 수는 없다. 그럼 앱의 사본을 만들어 작업하면 될 것이라고 생각할 수 있지만 이 방법은 늘 메모리 용량의 한계라는 문제점을 야기한다.

그리고 이렇게 사본 폴더들에서 각각 작업을 하다 모든 안들을 실제품에 적용하게 되어 변경사항들을 모두 메인 프로젝트를 가져와야 한다면 어떻게 해야 할까?

해당 폴더들에서 어떤 파일이 바뀌었는지 하나하나 확인을 해서 가져와야 되는데, 같은 파일에 서로 다른 수정이 되어 있다면 머리가 엄청 아파질 것이다. 이런 문제 역시 깃으로 쉽게 해결할 수 있다.

따라서 깃은 시간여행을 하는 것처럼 프로젝트의 버전들을 언제든 되돌릴 수 있고, 여러 차원을 넘나드는 것처럼 프로젝트의 내용들을, 마치 다른 폴더인 것처엄 여러 모드로 전환할 수 있고 변경사항들도 쉽게 이동할 수 있다. 또한 웬만한 규모가 있는 소프트웨어는 한 명의 개발자가 만들어내는 것이 아니기 때문에 깃은 여러 개발자들이 서로 협업하는 과정에서도 정말 중요한 기능들을 제공한다.

출처 : 얄팍한 코딩 사전 - 제대로 파는 Git & Github

0개의 댓글