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