작성한 소스 코드의 버전, 이력을 관리하는 버전 관리 시스템에 대해서 알아본다. 개인 작업, 협업을 막론하고 개발자에게 소스 코드의 효율적인 관리는 매우 중요한 이슈이다. 가장 기본적으로 소스 코드를 자신의 컴퓨터에만 저장하는 것은 위험한 일이다. 예상치 못한 일로 컴퓨터의 데이터가 모두 사라질 수 있다. 또한 개인 컴퓨터에만 저장하면 개인 컴퓨터를 사용하지 못할 때 아무것도 할 수 없다. 추가적으로 다른 사람들과 협업시 작성한 코드를 계속 주고 받을 수는 없다. 이것은 버전 관리 시스템을 사용해야 하는 아주 작은 이유에 해당한다.
버전 관리 시스템을 사용하면 아주 오래전에 작업한 수정 내역에 대해 쉽게 알 수 있다. 또한, 이 예전 작업 내용으로 돌아가서 새로운 작업을 할 수 있다. 협업 과정에선 작업을 분업해서 나중에 한번에 합칠 수 있고, 누가 어떤 작업을 했는지 쉽게 추적할 수 있어 오류 수정에도 용이하다.
버전 관리 버전 관리(version control, revision control), 소스 관리(source control), 소스 코드 관리(source code management, SCM)란 동일한 정보에 대한 여러 버전을 관리하는 것을 말한다.
Subversion is an open source version control system. http://subversion.apache.org/
Subversion의 약자로 소프트웨어 버전 관리 시스템이다.
분산 버전 관리 분산 버전 관리(Distributed revision control, 또는 Distributed Version Control (Systems) (DVCS), 또는 Decentralized Version Control (Systems))는 소프트웨어 버전 관리를 위한 시스템이다. 이 시스템은 각 개발자가 중앙 서버에 접속하지 않은 상태에서도 코드 작업을 할 수 있는 것이 특징이다.
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. https://git-scm.com
SVN : 파일을 관리하는 중앙 서버가 존재하고, 각 클라이언트들은 중앙 서버에서 파일을 Checkout 받아 사용한다. 즉, 중앙 서버에 의존적인 파일 관리 체계이다. Git: 파일을 관리를 개인 컴퓨터에서 한다. 각 클라이언트들은 자신의 파일 관리 서버에서 버전 관리를 하고, 협업을 위해 원격 저장소를 이용한다.