본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.
Version Control System; VCS
소스 코드와 문서 같은 파일의 변경 이력을 저장해 두고, 필요할 때 이전 버전을 찾아보거나 되돌리고 여러 사람의 변경을 합칠 수 있게 하는 시스템
  • 최초의 버전 관리 시스템은 유닉스 환경에서 사용되었던 SCCS

버전 관리 자료를 어디에 두느냐에 따라 보통 세 가지로 나눈다.

방식 자료를 두는 곳 특징 예
공유 폴더 방식 개발자들이 함께 쓰는 공유 폴더(로컬 파일 시스템) 개발자가 작업한 파일을 매일 공유 폴더에 복사하고, 담당자가 변경 내용을 확인해 반영한다. 파일 단위로 관리한다 SCCS, RCS, PVCS, QVCS
클라이언트·서버 방식(집중형) 중앙 서버의 저장소 한 곳 개발자는 서버에서 파일을 받아 고친 뒤 서버에 올린다(커밋). 서버에 문제가 생기면 버전 관리를 할 수 없다 CVS, SVN, Clear Case
분산 저장소 방식(분산형) 원격 저장소와 각 개발자의 로컬 저장소 버전 관리 자료가 원격 저장소와 로컬 저장소에 함께 저장된다. 로컬 저장소에서 커밋·이력 조회를 할 수 있어 원격 저장소에 문제가 생겨도 로컬 자료로 작업을 이어 간다 Git, 머큐리얼(Mercurial), Bazaar
  • '단일 저장소 방식'이라는 이름의 분류는 쓰지 않는다. 저장소가 서버 한 곳에만 있는 것은 클라이언트·서버 방식이다
Centralized Version Control System

모든 소스 코드가 한 곳에 집중되어 있는 형태

  • 클라이언트-서버 모델이라고도 함
  • 장점: 운영 관리의 효율성
  • 단점: 단일 장애점 문제, 소스 코드 충돌
  • 장점
    • 운영 관리의 효율성
    • 이해하고 사용하기 편리함
  • 단점
Distributed Version Control System
  • 여러 개의 레파지토리에 각 버전별 소스를 개별 보관
  • 분산 저장소는 P2P 방식으로 소스 코드 공유
  • 중앙 서버에 문제가 생기더라도 운영 가능
  • 네트워크가 없는 환경에서도 개발 진행 가능(네트워크 연결 후 동기화)
  • 이해 및 사용법의 어려움
  • Git
  • 머큐리얼(Mercurial)