VCS(Version Control System) 이란 무엇인가?
VCS는 Version Control System의 약자로, 파일의 변화를 추적하고 관리하는 시스템이다. 소프트웨어 엔지니어링에서 VCS는 코드의 변화를 추적하고 관리는데 사용된다. 대표적으로는 Git과 Subversion이 있으며, 2018년 기준 Git의 점유율이 88.4%에 달하며(*1), 2022년 기준 90% 이상의 회사에서 Git을 사용할 것이라 추정된다.
*1 : Stack Overflow 2018 Survey
VCS가 중요한 이유
소프트웨어 엔지니어링에서 가장 중요하게 생각하는 것은 바로 유지보수성이다. 코드를 깔끔하게 짜는 것, 변수명을 깔끔하게 짓는 것, OCP 원칙을 지키는 것 모두 유지보수성을 위해 만들어진 원칙들이며 유지보수성을 위해 의존성 주입 패턴, 팩토리 패턴 등 다양한 디자인 패턴들이 탄생하였다. VCS가 탄생한 배경도 바로 코드의 유지 보수성을 위해서이다.
특히 여러 개발자들이 협업하는 과정에서 다음의 사항들이 유지 보수성을 위해 매우 중요하다.
- 여러 개발자들이 협업 할 경우 특정 코드가 추가된 히스토리를 알아야 관리에 용이하다.
- 여러 개발자들이 협업 할 경우 코드를 병렬적으로 수정하고 합칠 수 있어야 한다.
- 여러 기능들이 병렬적으로 개발될 수 있어야 한다.
- 대규모 어플리케이션과 서비스의 경우 여러 개발자가 함께 개발하고, 배포되는 버전은 정해져 있기 때문에 특정한 버전에서 문제가 생겼을 경우 해당 문제가 일어난 부분을 찾기 위해 이전 버전의 코드에 대해 알아야 한다.
- 추가된 코드를 시스템 적으로 되돌릴 수 있어야 코드를 되돌리면서 생기는 오류가 줄어들 수 잇다.
이러한 특징들을 지키기 위해 여러 VCS들이 탄생했지만, 위 특징들을 모두 만족시키는 Git이 대부분의 회사에서 사용된다.
Git Repository를 서비스 하는 회사
다음 세개의 회사가 Git을 서비스하는 대표적인 회사이다. 점유율은 Github이 가장 높다.
- Github
- Gitlab
- Bitbucket
반응형