mir.pe (일반/어두운 화면)
최근 수정 시각 : 2024-04-05 17:43:28

버전 관리 시스템

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

1. 개요

Version Control System(VCS)

문서나 설계도, 소스 코드 등의 변경점을 관리해주는 소프트웨어.

2. 버전 관리란?

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

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

3. 종류

3.1. 로컬 VCS

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

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

3.2. 중앙집중식 VCS

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

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

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

3.3. 분산 VCS

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

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

대표적으로 Git이 있다.

4. 목록

5. 관련 문서



[1] MS는 Git을 잘 쓰다 아예 GitHub를 인수해버렸다.