버전 관리 소프트웨어
버전 관리는 개발자 입장에서 필수 요소 중 하나이다. 혹시 모를 상황을 대비해 이전 버전을 백업해야 하고, 협업을 함에 있어서도 어떤 부분을 어떻게 수정했는지 늘 공유해야 하기 때문에 버전 관리는 매우 중요하다.
그리고 깃은 이 버전 관리를 돕는 소프트웨어중 하나고, 여러가지 장점을 지니고 있어 현재 시장에서 가장 각광받는 버전 관리 시스템이다. 어떤 장점을 가지고 있는지 천천히 알아보도록 하자.
버전 관리 시스템(Version Control System)은 Git 이전에도 많이 있었다. 그러나 이것들은 서버에서 히스토리를 관리하는 중앙집중식 버전 관리(Centralized Version Control)의 형태를 띄었는데, 애로사항이 있었다.
1. 서버에 문제가 생기면 개발자들의 업무가 마비된다.
2. 인터넷에 문제가 생겨도 개발자들의 업무가 마비된다.
이를 대응하고자 나온 것이 바로 개개인이 히스토리를 관리하는 분산형 버전관리(Distributed Version Control)로, Git 역시 이 종류에 속해있는 버전 관리 시스템 중 하나이다.
1. 서버에 문제가 생겨도 개발자들은 서로의 정보를 이용하여 업무를 진행할 수 있다.
2. 오프라인, 즉 로컬 환경에서도 업무를 진행할 수 있다.
3. 모든 정보를 개인이 가지고 있기 때문에, 속도 역시 매우 빠르다.
버전 관리를 하는 방법도 Git 은 획기적인 방법을 채택했다. 기존 버전 관리를 할 때 사용했던 방법은 델타 베이스드 버전 관리(delta-based version control)이다.
위 사진은 델타 베이스드 버전 관리의 예시로, 델타라는 이름에 맞게 버전별로 각각 변경된 내용만 가지고 있는 모습을 볼 수 있다. 이로 인해 특정 버전의 데이터를 조회하려면 초기 버전부터 특정 버전까지 히스토리를 연쇄적으로 계속 적용해야 하고, 속도 저하라는 결과로 나타나기도 했다.
이에 반해 Git은 프로젝트의 전체 내용을 사진 찍듯이 스냅샷 형태로 보관한다. 이렇게 되면 용량이 커지지 않느냐는 우려가 생길 수 있지만, Git에서는 변경되지 않은 파일은 이전 파일에 링크를 걸어줌으로 문제를 해결하여 굉장히 가벼운 형태로 버전을 관리한다. 또한, 버전 사이를 이동할 때도 속도가 저하되지 않는다는 장점이 있다.
GitHub is how people build software.
GitHub는 사람들이 소프트웨어를 개발하는 방법입니다.
Github는 Git의 저장공간을 제공하는 서비스이다. 저장공간을 제공하는 서비스 역시 Github 말고도 많이 존재하지만, 현재 시장에서 가장 각광받고 있는 상태이다. 깃허브의 장점은 다음과 같다.
참고 및 출처