VCS(Version Control System)

calico·2025년 6월 4일

Computer Science

목록 보기
14/51

출처

버전관리 시스템 (Version Control System, VCS)


  • 버전관리 시스템(VCS)

    • 파일(코드, 문서 등)의 변경 이력을 시간순으로 기록하여, 특정 시점의 상태로 되돌리거나, 변경 내용을 추적할 수 있도록 해주는 시스템입니다.
  • 주요 기능

    • 파일의 과거 상태 복원

    • 변경 내역 추적 (누가, 언제, 무엇을 수정했는지)

    • 실수 복구 (잘못된 변경이나 삭제를 되돌림)

    • 협업 지원 (여러 명이 동시에 작업 가능)



VCS의 유형


1. 로컬 버전관리 시스템 (Local VCS)


  • 특징: 로컬(개인 컴퓨터)에서 파일 변경 이력을 관리함

  • 작동 방식: 단일 사용자의 컴퓨터에 데이터베이스 형태로 변경 내용을 저장

  • 장점: 구현이 간단하고 빠름

  • 단점: 실수로 파일이 삭제되면 복구 불가, 협업에 취약

  • 대표 도구: RCS (Revision Control System)



2. 중앙집중식 버전관리 시스템 (CVCS: Centralized VCS)


  • 특징: 중앙 서버가 모든 버전 정보를 저장하며, 클라이언트는 서버로부터 데이터를 가져옴

  • 작동 방식

    • 개발자는 중앙 서버에서 Checkout하여 작업하고

    • 변경 사항을 Commit하여 서버에 반영

  • 장점: 팀 기반 프로젝트에서 중앙 집중 관리 가능

  • 단점

    • 중앙 서버에 장애 발생 시 전체 작업 중단 가능성

    • 오프라인 작업에 불리함

  • 대표 도구: CVS, Subversion (SVN), Perforce



3. 분산 버전관리 시스템 (DVCS: Distributed VCS)


  • 특징: 모든 개발자가 전체 저장소(코드 + 이력)를 로컬에 복제(Clone) 하여 작업

  • 작동 방식

    • Clone: 전체 저장소를 로컬로 복제

    • Commit: 로컬에서 버전 관리 가능

    • Push/Pull: 원격 저장소와 동기화

  • 장점

    • 오프라인에서도 작업 가능

    • 중앙 서버에 문제가 생겨도 다른 개발자의 저장소로 복구 가능

    • 다양한 방식의 협업이 유연하게 가능

  • 단점: 초기 복제 시 저장소가 크면 느릴 수 있음

  • 대표 도구: Git, Mercurial, Bazaar, Darcs



VCS 유형별 비교 요약


구분로컬 VCS중앙집중식 VCS분산 VCS
저장 위치개인 로컬중앙 서버로컬 + 서버
협업 지원불가능가능매우 유연
오프라인 작업불가능제한적가능
서버 장애 시 영향전체 손실전체 중단복구 가능
대표 도구RCSSVN, CVSGit, Mercurial



참고자료

profile
개인 블로그

0개의 댓글