버전 관리 시스템이란

JS·2023년 1월 5일
0

Tech Explanation

목록 보기
9/14
post-thumbnail

1. 버전을 관리해야 하는 이유

  • 어떠한 작업을 할때, 그것이 간단한 문서 작성이라 하더라도 수시로 저장하며 작업을 진행한다
  • 많은 이유로 외부 기억장치 혹은 이메일, 웹서버 등에 보관하며 필요할 때 마다 원하는 시점의 자료를 꺼낼 수 있다

2. 버전 관리 시스템은 무엇인가?

  • 작업을 할 때 과거와 현재의 파일이 있는 상태에서 무언가가 내용이 변경되어 그 변경된 내용을 저장한다
  • 이러한 과거의 버전과 현재의 버전을 자유롭게 넘나들 수 있는 기능을 실현하기 위한 시스템이 버전 관리 시스템(VCS, Version Control System)이다
  • 버전 관리 시스템에는 총 3가지 종류의 시스템이 있다

  • 로컬 버전 관리 시스템(LVCS, Local Version Control System)
    • 서버 없이 로컬 컴퓨터 내에서만 버전을 관리하는 시스템
    • 간단한 데이터베이스만으로도 구현이 가능하기 때문에 개인적인 프로젝트에 주로 사용
    • 데이터가 개인 컴퓨터에 저장되는 형식, 따라서 데이터 손상시 복구의 방법이 없다

  • 중앙 집중식 버전 관리 시스템(CVCS, Centralized Version Control System)
    • 중앙의 서버가 파일의 변경 사항을 기록·관리하고 연결된 각 클라이언트들은 서버로부터 원하는 특정 버전을 다운로드 받아 사용한다
    • 단 하나의 데이터베이스에서 작업 내역을 관리해주기때문에 동기화 문제가 없고 관리가 편하다
    • 모든 커맨드는 서버에서 동작하므로 서버의 부하가 크다
    • 서버에 문제가 생기게 된다면 버전 관리가 이루어지지 않거나 데이터의 복구가 어려워진다
    • 오프라인에서는 시스템 사용이 불가하며, 데이터의 병목현상이 생기기 때문에 속도가 느리다

  • 분산식 버전 관리 시스템(DVCS, Distributed Version Control System)
    • DVCS에서는 각 클라이언트 들이 모두 서버의 백업본을 가진다
    • 때문에 서버에 문제가 생기거나 오프라인 상태에서도 버전 관리를 할 수 있고 속도도 빠릅니다
    • 타 시스템에 비해 복잡하고 동기화를 계속 해주어야 하는 단점

Reference

profile
게임 프로그래머 지망생

0개의 댓글