용어집

버전 관리

Version Control이란 무엇인가요?

소스 코드 관리라고도 하는 Version Control은 툴을 사용하여 시간 경과에 따라 소스 코드에 적용된 변경 사항이나 수정 사항을 트래킹합니다. 버전 관리를 사용하면 코드의 무결성을 유지하는 동시에 개발자 간에 빠르고 효율적으로 협업하도록 지원할 수 있으므로 소프트웨어 개발 팀이 코드가 충돌할 우려 없이 작업할 수 있습니다.

버전 관리 소개

버전 관리 시스템(VCS)은 팀이 프로젝트의 소스 코드를 백업하고 아카이빙하도록 지원합니다. 이를 통해 저장소를 쉽게 검토하고 편집할 수 있으며 빌드가 손상되는 오류 발생 시 이전 버전을 복원할 수 있습니다.

버전 관리는 소스 코드 및 에셋에 대한 업데이트를 트래킹하고 관리하는 체계적인 프로세스입니다. 버전 관리 시스템은 효율적인 워크플로의 기반이며, 프로그래머와 아티스트, 다른 팀원을 위한 SSOT(single source of truth) 역할을 하는 동시에 모두가 공유 코드 베이스에 독립적으로 기여할 수 있도록 지원합니다. 개발 중에 치명적인 오류가 발생하는 경우 코드 업데이트를 '실행 취소'할 수 있도록 지원하여 안전망 역할도 합니다.

팀의 규모, 지역 분포와 같은 요인은 게임 개발자가 어떤 버전 관리 시스템을 선택하고 구현할지에 대한 결정에 영향을 미칩니다. 개인 개발자는 로컬 솔루션만을 사용해도 충분히 작업을 진행할 수 있지만 대규모 팀은 시간대와 지역에 구애받지 않고 협업을 진행할 수 있도록 더 견고하고 확장성이 뛰어난 버전 관리 시스템을 모색해야 합니다.

버전 관리에서는 브랜치 생성 기능도 지원합니다. 브랜치는 VCS 내에서 관리되는 코드의 단일 사본입니다. 개발자와 나머지 팀원은 브랜치를 만들어서 별도의 스트림에서 상호 독립적으로 작업할 수 있습니다. 버전 관리를 활용하면 개발자가 협업을 진행하고 공유 코드베이스와 동기화할 수 있습니다.

버전 관리 시스템이 왜 중요한가요?

버전 관리 시스템은 DevOps의 핵심으로, 프로젝트의 소스 코드에 대해 팀이 협업하고 빠르게 반복 작업할 수 있도록 지원합니다.

버전 관리를 사용하면 항상 백업이 존재하게 됩니다. 개별 프로젝트 업데이트는 메인 소스 코드로 병합되기 전에 '커밋'이라고 하는 단일 그룹에 주기적으로 수집됩니다. 버전 관리 소프트웨어는 각 프로젝트 파일의 모든 수정 사항을 트래킹하는 데 필수적입니다. 실수나 회귀가 발생하면 사용자는 해당 파일의 이전 버전으로 거의 즉시 돌아갈 수 있습니다. 버전 관리는 모든 변경 사항, 변경한 사람, 각 변경의 모든 반복 작업(iteration)에 대한 로그를 제공합니다. 버전 관리 시스템을 갖추면 모든 이해 관계자와 팀원이 다수의 파일에서 동시에 끊김 없이 작업할 수 있습니다. 버전 관리 시스템은 모든 코드 편집 및 변경 사항을 하나의 중앙화된 저장소로 병합하도록 지원합니다.

프로젝트 전체 이력에 액세스하고 실수를 되돌릴 수 있는 버전 관리 시스템을 사용하면 버그 트래킹 과정을 간소화하고 이전에 삭제한 기능을 손쉽게 복원할 수 있습니다.