Git이란 무엇인가? Git을 사용하는 이유

soleil_lucy·2024년 8월 11일
0

git

목록 보기
1/2
post-thumbnail

최근 지인들과 함께 GitHub 잔디 심기 100일 챌린지를 진행하게 되었습니다. 이 챌린지에서는 Git과 GitHub를 활용하여 각자의 프로젝트와 학습 내용을 관리하고, 10일 주기로 PR을 통해 회고를 작성하기로 했습니다. 또한, Issue를 통해 서로의 궁금한 점을 질문하며 챌린지를 운영하고 있습니다. 챌린지를 진행하면서 Git의 개념사용 이유가 문득 궁금해졌고, 이를 정리하여 기록해두고 싶어 이 블로그 글을 작성하게 되었습니다.

Git이란 무엇인가?

버전 관리 시스템이란?

버전 관리 시스템(VCS, Version Control System)은 파일 변화를 시간에 따라 기록하고, 특정 시점의 버전을 다시 꺼내올 수 있는 시스템입니다.

버전 관리 시스템의 이점?

  1. 각 파일을 이전 상태로 되돌릴 수 있습니다.
  2. 프로젝트를 통째로 이전 상태로 되돌릴 수 있습니다.
  3. 시간에 따라 수정 내용을 비교해 볼 수 있습니다.
  4. 누가 문제를 일으켰는지도 추적할 수 있습니다.
  5. 누가 언제 만들어낸 이슈인지도 알 수 있습니다.
  6. 파일을 잃어버리거나 잘못 고쳤을 때도 쉽게 복구할 수 있습니다.

Git의 탄생 배경

버전 관리 시스템의 종류에는 로컬 버전 관리부터 CVCS, DCVS가 있습니다.

  • 로컬 버전 관리?
    아주 간단한 데이터베이스를 사용해서 파일의 변경 정보를 관리합니다.
  • CVCS, Central Version Control System, 중앙집중식 버전 관리 시스템?
    프로젝트를 진행하다 보면 다른 개발자와 함께 작업해야 할 경우 발생하게 되는 문제를 해결하기 위해 개발된 버전 관리 시스템입니다. 파일을 관리하는 서버가 별도로 있고 클라이언트가 중앙 서버에서 파일을 받아 사용하는 방식입니다.
  • DVCS, Distributed Version Control System 분산 버전 관리 시스템?
    저장소를 히스토리와 더불어 전부 복제하여 관리하는 시스템입니다. 서버에 문제가 생기면 이 복제물로 다시 작업을 시작할 수 있고 클라이언트의 복제물 중 아무거나 골라도 서버를 복원할 수 있는 장점을 가지고 있습니다.
    CVCS vs DCVS

Git은 2005년, Liux 운영 체제 커널을 만든 사람으로 유명한 Linus Torvalds가 개발한 활발하게 유지 관리되는 성숙한 오픈 소스 프로젝트로 CVCS에서 발생하는 문제들을 해결하기 위해 만들어졌습니다. CVCS는 중앙 서버에 문제가 발생하면 전체 프로젝트가 마비되며, 복구 과정에서 시간과 노력이 많이 소요된다는 단점이 있습니다. 이런 문제를 해결하기 위해 개발된 것이 바로 분산 버전 관리 시스템(DVCS)Git 입니다.

Git의 주요 특징

Git은 모든 개발자가 로컬 저장소에 프로젝트의 전체 히스토리를 복제할 수 있는 분산 버전 관리 시스템입니다.

  • 복제된 저장소는 서버에 문제가 발생하더라도, 로컬에 있는 저장소를 기반으로 작업을 이어나갈 수 있게 해줍니다.
  • 각 개발자는 서버가 필요 없이 독립적으로 작업할 수 있습니다.
  • 다른 개발자와 협업할 때 브랜치 생성과 병합 작업이 효율적으로 이루어집니다.

Git을 사용하는 이유

Git은 프로젝트 관리를 개선하기 위해 DVCS 방식을 채택하여 탄생했습니다. 그렇다면 왜 Git이 프로젝트 관리에 유용한지, 그 이유를 좀 더 자세히 살펴보겠습니다.

효율적인 브랜칭과 병합

Git의 브랜칭 기능은 가볍고 빠르며, 독립적으로 기능 개발을 진행할 수 있게 해줍니다.
Git 브랜칭 기능

분산된 개발 환경

Git은 각 개발자가 전체 커밋 기록을 담고 있는 로컬 저장소를 가지고 있기 때문에 네트워크 연결이 없어도 작업이 가능합니다. 로컬 저장소에서 파일의 이전 버전을 검사하거나, 커밋 간의 차이를 확인하는 등의 작업이 빠르게 이루어집니다. 또한, 다른 개발자의 저장소를 복제하여 새로운 프로젝트를 시작할 수도 있습니다.

협업과 코드 품질 관리

Git의 풀리퀘스트(PR) 기능팀원 간 협업을 강화하고, 코드 리뷰 과정을 통해 코드 품질을 관리하는 데 중요한 역할을 합니다. PR을 통해 팀원들이 변경 사항을 검토하고 토론할 수 있으며, 코드베이스와 통합하기 전에 문제가 없는지 확인할 수 있습니다. 이를 통해 프로젝트 전체의 품질을 높이고, 협업을 원활하게 진행할 수 있습니다.

비즈니스 효율성의 극대화

Git은 단순히 개발자들만의 도구가 아니라, 다양한 부서에서도 활용될 수 있는 강력한 협업 도구입니다. 마케팅, 고객 지원, HR 등 다양한 부서가 Git을 통해 업무를 효율적으로 관리하고, 프로젝트 진행 상황을 투명하게 공유할 수 있습니다. 이를 통해 조직 전체의 비즈니스 활동을 촉진하고, 성과를 극대화할 수 있습니다.

새롭게 알게된 점

Git의 개념과 사용하는 이유에 대해 공부하면서 새롭게 알게된 점이 있습니다. 버전 관리 시스템에는 크게 두 가지 종류, 중앙집중식 버전 관리 시스템(CVCS)분산 버전 관리 시스템(DVCS)이 있다는 사실입니다. Git은 이 중 DVCS를 사용하여 개발되었습니다.

이 글을 쓰기 전에는 CVCSDVCS의 차이점을 명확히 알지 못했지만, 공부를 통해 이해하게 되었습니다. CVCS는 모든 파일을 중앙 서버에서 관리하고, 사용자는 이 서버에서 파일을 내려받아 작업을 합니다. 이 방식은 중앙 서버에 문제가 발생할 경우 업무를 중단해야 하는 단점이 있습니다.

반면, DVCS는 프로젝트의 전체 저장소를 히스토리와 함께 로컬에 전부 복제하여 작업하며, 변경된 파일들을 다시 중앙 서버에 업로드하는 방식입니다. 이를 통해 서버에 문제가 생겨도 로컬 저장소를 이용해 작업을 이어 나갈 수 있어 보다 안정적인 프로젝트 관리가 가능합니다.

참고 자료

profile
책을 좋아하는 개발자입니다.

0개의 댓글