-
[SCM] 버전 관리 : VCS / CVCS / DVCSSCM 2024. 12. 12. 17:20
📌 목차
◦ 버전 관리란 ?
◦ Git 의 유래
📌 버전 관리란 ? ( VCS : Version Control System )
◾ 버전 관리 시스템은 파일 및 소스의 변화를 시점에 따라 기록했다가 이후 특정 시점의 버전으로 복원할 수 있는 시스템이다.
◾ 버전 관리는 소스 코드만 관리하는 것이 아니라 이미지나 특정 파일 등의 버전을 관리하는 것이다.
⚡ VCS / SCM
◦ Version Control System ( VCS )
- 소프트웨어의 버전 관리를 담당하는 시스템
◦ Source Control Management / Source Code Management ( SCM )
- 소프트웨어 전체보다 소스 코드에 주로 초점을 맞추는 관리 기법으로 VCS 와 동일한 개념
◦ Software Configuration Management ( SCM )
- 형상 관리 / 구성 관리로 불리며, 소프트웨어의 변경 사항을 체계적으로 관리하여 개발 프로세스를 관리하는 시스템
- VCS 및 SCM 에 더해 전반적인 프로젝트 환경들을 관리하는 포괄적인 개념
⚡ 버전 관리 시스템의 종류
◦ 로컬 버전 관리
- 버전 관리 시스템이 대중화 되기 전 많은 사람들이 사용했던 방법으로 버전별 디렉토리로 파일을 복사하는 방법이다.
◦ 중앙집중식 버전 관리 ( CVCS )
- CVCS 방식은 VCS 방식에 비해 다른 사용자의 기록까지 관리할 수 있는 장점이 있다.
- VCS 처럼 중앙 서버에 문제가 발생할 경우 모든 사용자에게 제약이 생기고, 백업이 어려워진다는 단점이 있다.
◦ 분산 버전 관리 시스템 ( DVCS )
- Git, Mecurial, Bazaar, Darcs 등이 있다.
- DVCS 는 단순히 마지막 파일의 스냅샷을 Checkout 하는 것이 아니라, 저장소 및 히스토리 전체를 복제하는 것이다.
사용자 각각 저장소 및 히스토리를 가지게 되는 것이다.
- 만약 서버에 문제가 발생할 경우, 사용자 중 하나를 선택해 서버를 복원할 수 있다.
- Server Computer 에 해당하는 리모트 저장소가 존재하고 사용자들이 동시에 협업하기 쉽다.
📌 Git 의 유래 ?
Linux 커널은 Linux Torvalds 라는 창시자가 만든 규모가 큰 오픈 소스 프로젝트이다.
이 커널은 BitKeeper 라고 불리는 사용 DVCS 를 사용하여 프로젝트를 진행하였는데,
이익을 추구하는 BitKeeper 의 관계가 틀어지자 Linux Torvalds 가 기존에 사용하던 교훈을 바탕으로 만든 분산 버전 관리 시스템이다.
📌 Reference
@ Git 공식 문서