버전 관리란?

소스 코드 관리(SCM) 시스템이라고도 하는 버전 관리 시스템(VCS)을 사용하면 코드 베이스의 모든 변경 사항을 추적할 수 있습니다.

파일을 버전 관리 시스템에 보관하면 수정, 추가 또는 삭제 내역을 확인하고 언제, 어떤 사용자가 해당 작업을 수행했는지도 알 수 있습니다.

또한 파일을 이전 상태로 되돌리고 시간별 파일 변경 사항을 비교하는 것도 가능합니다. 버전 관리는 첨단 소프트웨어 개발을 위한 필수 도구입니다. 누구나 변경 내역을 볼 수 있을 뿐 아니라 여러 사용자가 동일한 파일에서 작업하고 업데이트 사항을 병합할 수 있어 버전과 릴리스를 더욱 간편하게 관리할 수 있습니다.

VCS는 크게 분산식 및 중앙 집중식으로 구분됩니다. 중앙집중식 시스템의 경우 모든 파일이 중앙 서버에 저장되고 개별 사용자는 파일의 로컬 복사본을 ‘체크아웃’한 후 중앙 소스 저장소에 동기화합니다.

하지만 이 접근 방식의 가장 큰 단점은 중앙 서버가 단일 장애점이라는 사실입니다. 반면 분산식 버전 관리 시스템의 경우 파일 복사본이 여러 개이므로 소스 저장소도 여러 개입니다.

어떤 시스템을 사용하든 기본적으로 소스 파일의 로컬 복사본을 업데이트하고, 로컬에서 변경 작업을 수행한 후 커밋을 통해 다른 사용자와 변경 사항을 공유하는 과정을 거칩니다.

지속적 통합을 구현하고 CI/CD 파이프라인을 구축하는 첫 단계는 누구나 액세스 가능한 단일 버전 관리 저장소에 애플리케이션 빌드를 위한 모든 파일을 저장하는 것입니다.

이를 통해 누구나 변경 사항을 정기적으로 공유할 수 있으므로 자동화된 빌드 및 테스트 프로세스를 트리거하여 변경 사항에 대한 피드백을 신속하게 제공할 수 있습니다.

테스트 또는 프로덕션의 문제가 발생하면 문제의 원인이 되는 커밋을 찾아 리비전 기록을 활용하여 변경 사항을 정확히 이해할 수 있습니다.