1.7 KiB
1.7 KiB
형상관리 영역 중 Software의 버전을 관리
Who What When -> 누가 언제 어떻게 바꾸었는가? 를 중점적으로 관리
(git의 영역이라 생각하면 될 듯)
버전관리를 하는 이유
- 추적성 확보 및 가시화를 위함.
- Source code의 변경 이력을 구성
- 누가 언제 무엇을 변경했는지 이력 추적
- 안정성 확보 및 자동화 (devOps)
- 모든 변경 내역을 보관/백업하며 잘못된 변경 내역을 빠르게 복구
- 변경 이력의 자동 관리부터 자동화 빌드/배포 등 자동화 구성을 위한 기본
- 협업
- 동시 작업을 보다 안전하게 지원
- 공유 작업에 대한 변경 내용을 체계적으로 관리
버전관리의 형태
!
File 관리: 실제 파일단위로 관리, 동시접근 시 안전성을 보장해주지 않음.
내가 개발한 소스를 .zip파일 등으로 묶거나 해서 파일단위로 관리를 함.
Lock-Unlock: 누군가 파일을 수정하려고 하면 Lock이 걸리고 수정이 끝날때까지 다른사람은 접근할 수 없음.
Shared: 한 소스코드를 여러사람이 동시에 작업 가능, 코드 중복 시 conflict를 내는 식으로 관리됨
여기까지는 하나의 중앙 repository를 가지고 사용자가 Terminal 처럼 사용하였음.
DVCS: 분산형 버전 관리 시스템, Remote repository가 여러곳에 존재할 수 있음. 개인별 버전을 만들고 이것을 중앙 저장소에 전달하는 방식 Distributted Version Control System 일부는 여기에, 일부는 저기에, 또 어떤 일부는 다른곳에, 버전을 나눠가지는 스타일인모양