나무모에 미러 (일반/밝은 화면)
최근 수정 시각 : 2024-11-14 04:03:35

버전 관리 시스템

1. 개요2. 버전 관리란?3. 종류
3.1. 로컬 VCS3.2. 중앙집중식 VCS3.3. 분산 버전 관리 시스템(VCS)
4. 목록5. 관련 문서

1. 개요

Version Control System(VCS)
문서나 설계도, 소스 코드 등의 변경 사항, 즉 버전을 관리해주는 소프트웨어.

2. 버전 관리란?

파일:졸업논문_최종_최종_final.jpg
버전 관리 없이 문서를 작성한 경우 유서 지못미

소프트웨어 등을 작성할 때 변경점을 관리하는 것은 말할 필요도 없이 아주 중요하다. 버전 관리를 함으로써 얻을 수 있는 것에는 다음과 같은 것이 있다.[1][2]
버전 관리 프로그램만 따로 사용해 관리하는 경우도 있지만, 오늘날에는 비주얼 스튜디오, IntelliJ IDEA 등의 통합 개발 환경텍스트 에디터에서 이런 기능을 통합해줘서 에디터 내부에서 바로 사용할 수도 있다. 굳이 소프트웨어 개발에서만이 아니더라도, 구글 문서 도구, 원드라이브클라우드 컴퓨팅에서도 버전 관리 기능을 제공한다.

3. 종류

3.1. 로컬 VCS

서버 없이 로컬 컴퓨터 내에서 버전을 관리한다. 간단한 데이터베이스만으로도 구현이 가능하므로 단순하고 개인적인 프로젝트에 적합하다.

단, 협업에서 쓰기에는 힘들고, 컴퓨터가 고장나는 등 내부 정보가 통째로 날아가버리면 복구할 방법이 없다.

3.2. 중앙집중식 VCS

서버에 최종본 한 벌이 있으며, 사용자들은 이 중 수정을 원하는 파일만 로컬에 받아 수정한 후 서버에 올리게 된다.

간단한 방법으로 협업이 가능하고 관리자가 누가 어떤 일을 하고 있는지 알기 쉬운 장점이 있다. 단, 중앙 서버가 다운될 경우 그동안은 업무가 마비되는 단점이 있다. 그리고 서버의 정보가 날아갈 경우 모든 히스토리가 날아가게 된다. 협업의 규모가 커지면 수정 충돌 문제 등이 발생할 수 있다.

비유하자면 나무위키의 문서 편집 시스템이 간단한 중앙집중식 버전 관리에 속한다. 대표적으로 Subversion이 있다.

3.3. 분산 버전 관리 시스템(VCS)

파일을 저장하는 서버가 있는 것은 위와 동일하지만 수정을 위해 프로젝트 전체를 로컬 컴퓨터에 다운 받은 뒤 수정한다.

중앙 서버가 다운되더라도 개별 사용자는 각자 작업이 가능하고 서버가 날아가도 다운 받은 내용은 남아있기 때문에 가장 안정적이다. 수정 시에도 현재 코드는 나 혼자 수정하고 있기 때문에 충돌의 염려 없이 수정할 수 있으며, 최종적으로 서버에 반영할 때에만 신경써서 머지(Merge)해주면 된다.

대표적으로 Git이 있다.

4. 목록

5. 관련 문서



[1] 변경점 관리 및 백업&복구 기능은 가까운 예시를 이를테면 나무위키의 문서 역사 기능을 활용하면 경험해 볼 수 있다.[2] 협업 기능은 나무위키에서 문서를 기여(편집)할 때, 요약 필드에 텍스트를 입력하게 되면 해당 문서에 기여하고자 하는 다른 사람들에게 무엇이 변경되었는지 대략적으로 알려줄 수 있다.[3] MS는 마침내 GitHub를 인수했다.