Git
Git
VCS(version control system)
Git은 분산형 버전 관리 시스템의 한 종류로 빠른 수행 속도에 중점을 둔다.
버전 관리
프로젝트를 진행하는 과정에는 수많은 수정과 저장을 거치게 된다. 이 때 하나의 파일만 가지고 수정과 저장을 했다면 되돌리 수 없는 상황이 생기기도 한다.
버전 관리는 이런 상황에 대비해 파일을 나누어 저장하거나 백업을 만들어 두는 등 분기점을 만들어 언제든 원하는 시점의 상태로 돌아갈 수 있게 관리하는 것을 말한다.
버전 관리에는 크게 두 가지가 있다.
클라이언트 - 서버 모델
하나의 중앙 서버가 존재하며 여러 클라이언트들은 중앙 서버에서 각자 맡은 파트만 가지고 작업한 후에 다시 중앙으로 통합한다.
대표적으로 CVS, SVN 이 있다.
분산 모델
하나의 중앙 서버가 존재하면서 여러 클라이언트들은 각자의 로컬 저장소에서 중앙 서버에 있는 자료의 전체를 사본으로 가지고 작업하는 것을 의미한다.
git이 대표적이다.
차이점
두 모델의 가장 큰 차이점은 분산한 파일이 원본의 전체를 사본으로 가지는가 작업에 필요한 일부분만 가지는것인가이다.
분산형 관리는 중앙 서버에 문제가 발생해도 각자 전체를 사본으로 관리하기 때문에 복원도 가능하며 또한 관리하는 속도에서도 전체 커밋 히스토리를 가지고 있다면 이전 버전을 확인하거나 비교할 때 네트워크 연결이 필요없기 때문에 빠른 속도를 보인다.
협업
각자 맡은 부분을 수정하고 공유하여 코드를 합치는 과정에서 문제가 발생해도 대비할 수 있는 안전 수단이 있으며 빠르게 반영되기 때문에 이러한 Git의 특징들은 협업에서 강력한 장점을 가진다.
Github
github는 웹 기반 호스팅 서비스로 git을 사용해서 소스를 관리할 수 있는 플랫폼으로 무료로 저장소를 사용할 수 있다는 장점 때문에 많은 사람들이 이용하게 되어 관련된 자료를 구하기도 쉬워 git 호스팅 플랫폼 중에서 가장 많이 사용되는 곳이다.