버전 관리 시스템

덤프버전 :

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



1. 개요[편집]


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


2. 버전 관리란?[편집]


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

소프트웨어 등을 작성할 때 변경점을 관리하는 것은 말할 필요도 없이 아주 중요하다. 버전 관리를 함으로써 얻을 수 있는 것에는 다음과 같은 것들이 있다.
  • 변경점 관리: 어떤 내용을 누가 작성해서 어느 시점에 들어갔는지 확인할 수 있게 해준다.
  • 버전 관리: 특정 시점에 꼬리표(Tag)를 달아 버전을 표시해주고, 브랜치(Branch) 등으로 동시에 여러 버전을 개발할 수 있게 해준다.
  • 백업&복구: 무언가가 잘못되었을 때 다시 특정 시점으로 돌아가게 해주고, 사고로 내용이 날아간 경우에도 복구할 수 있게 해준다.
  • 협업: 같이 일하는 사람들에게 수정사항을 쉽게 공유

버전 관리 프로그램만 따로 사용해 관리하는 경우도 있지만, 오늘날엔 비주얼 스튜디오, IntelliJ IDEA 등의 통합 개발 환경텍스트 에디터에서 이런 기능을 통합해줘서 에디터 내부에서 바로 사용할 수도 있다. 굳이 소프트웨어 개발에서만이 아니더라도, 구글 문서 도구, 원드라이브클라우드 컴퓨팅에서도 버전 관리 기능을 제공한다.


3. 종류[편집]



3.1. 로컬 VCS[편집]


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

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


3.2. 중앙집중식 VCS[편집]


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

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

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


3.3. 분산 VCS[편집]


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

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

대표적으로 Git이 있다.


4. 목록[편집]


  • Git: 현재 버전 관리 시스템의 최고점유, 메이저, 대명사. 비주얼 스튜디오 같은 메이저 IDE에서도 아예 개발 환경에 클라이언트를 내장한지 오래되었다.[1]
  • Subversion: 2000년에 CollabNet이 개발하고 이후 아파치 소프트웨어 재단 소유로 넘어왔다. 2000년대 중반까지 가장 널리 쓰였으나 2010년도 이후 Git에 맹렬하게 추격당해 시장의 지배권을 내주었다. 중앙집중형 구조를 취하기 때문에 Git에 비해 쓰기 쉽지만 규모가 커질수록 충돌을 해결하는 데 드는 노력이 증가하기 때문에 대형 프로젝트의 협업에는 불리하다.
  • Mercurial: Git과 같은 분산형 버전 관리 시스템. Git보다 직관적이고 쉽지만 덜 유연하다. Git 등장 전까지는 SVN(Subversion)에 이은 2위였다. Git이 Subversion을 잡아먹고 사실상 표준으로 자리잡는 동안 만년 3인자 자리에서 벗어나지 못하고 있다.
  • BitKeeper: 리누스 토르발스가 원래 사용하려고 했던 버전 관리 시스템. 그러나 리누스가 결국 버전 관리 시스템 Git을 직접 개발하는 바람에 점유율이 대폭 줄어들어 버렸다.
  • CVS: 90년대에 개발되어 널리 쓰였던 버전 관리 시스템. 위에 있는 시스템들보다 훨씬 고전적인 구조로, 소프트웨어 개발환경이 복잡해지면서 자연히 Subversion에 밀려 일찌감치 역사의 뒤안길로 사라졌다.
  • Fossil: SQLite의 개발자가 만들어 SQLite의 소스코드를 관리하는 데에 직접 사용하고 있는 버전 관리 시스템. SQLite의 제작자 답게, 디렉토리 트리 구조로 정보를 저장하는 다른 시스템들과 달리 Database 형식으로 정보를 저장하여 관리 정보가 단일 파일로 모두 압축된다는 특징을 가지고 있다. 이 때문에 포터블 프로그램으로도 제공된다.


5. 관련 문서[편집]




파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-30 09:43:54에 나무위키 버전 관리 시스템 문서에서 가져왔습니다.

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