무지개곰
article thumbnail
반응형

1. 공유 폴더 방식

  • 특징: 로컬 컴퓨터의 공유 폴더에 자료를 저장하고 관리.
  • 작업 과정:
    • 개발자들은 공유 폴더에 개발 파일을 복사.
    • 담당자가 공유 폴더의 파일을 자신의 PC에서 컴파일하고 이상 여부 확인.
    • 변경 사항은 데이터베이스에 기록.
  • 단점: 중앙 서버 없이 수작업으로 관리되므로 효율성과 안전성이 낮음.
  • 사용 도구: SCCS, RCS, PVCS, QVCS

2. 클라이언트/서버 방식

  • 특징: 버전 관리 자료를 중앙 서버에서 저장하고 관리.
  • 작업 과정:
    • 개발자들이 서버의 자료를 자신의 PC로 복사(Check-Out)하여 작업 후 변경 내용을 서버에 반영(Check-In).
    • 서버에서 모든 버전 관리가 이루어짐.
  • 장점:
    • 중앙 서버를 통해 효율적 협업 가능.
  • 단점:
    • 서버 장애 시 협업 및 버전 관리 중단.
  • 사용 도구: CVS, SVN (Subversion)

3. 분산 저장소 방식

  • 특징: 로컬 저장소와 원격 저장소를 함께 활용.
  • 작업 과정:
    • 로컬 저장소에서 작업 후 변경 사항을 우선 반영(Commit)하고, 이후 원격 저장소에 Push.
  • 장점:
    • 원격 저장소 문제 발생 시에도 로컬 저장소로 작업 가능.
    • 로컬에서 빠른 작업 처리 가능.
  • 사용 도구: Git, Bitkeeper

4. 주요 버전 관리 도구 정리

4.1. SVN (Subversion)

  • 개요:
    • CVS를 개선한 버전 관리 도구로 아파치 소프트웨어 재단이 개발.
    • 작업은 주로 trunk 디렉터리에서 수행하며, 추가 작업은 branches에서 병합(merge)하여 관리.
  • 특징:
    • 커밋(Commit)할 때마다 리비전(Revision) 번호 증가.
    • CVS의 단점이었던 파일/디렉터리 이름 변경 및 이동 가능.
    • 오픈 소스로 무료 사용 가능.
  • 명령어:
    • add: 새로운 파일/디렉터리를 버전 관리 대상에 추가.
    • commit: 클라이언트 소스 변경 내용을 서버에 반영.
    • update: 서버 최신 내용을 클라이언트에 적용.
    • checkout: 서버의 소스 파일을 클라이언트로 복사.
    • merge: 다른 작업 내역을 병합.

4.2. Git

  • 개요:
    • 리누스 토발즈가 리눅스 커널 개발을 위해 만든 도구로, 이후 주니오 하마노가 유지 보수.
    • 분산 저장소 방식으로 로컬 및 원격 저장소 활용.
  • 특징:
    • 스냅샷(Snapshot) 기반으로 파일 변화를 저장.
    • 브랜치를 통해 다양한 기능 테스트와 협업 가능.
  • 명령어:
    • init: 로컬 저장소 생성.
    • remote add: 원격 저장소 연결.
    • add: 작업 내역을 스테이징 영역에 추가.
    • commit: 로컬 저장소에 변경 내용 저장.
    • push: 로컬 저장소 변경 내용을 원격 저장소에 반영.
    • fetch: 원격 저장소의 변경 이력을 로컬에 가져옴.
    • clone: 원격 저장소를 로컬로 복제.
    • branch: 새 브랜치 생성 및 삭제(-d 옵션).
    • merge: 브랜치 내역 병합.

4.3. 버전 관리 방식 비교 요약

방식저장소작업 흐름사용 도구
공유 폴더 로컬 공유 폴더 파일을 공유 폴더에 복사 → 담당자가 컴파일 및 이상 확인 SCCS, RCS, PVCS 등
클라이언트/서버 중앙 서버 서버 자료 Check-Out → 작업 후 Check-In CVS, SVN
분산 저장소 원격 + 로컬 로컬에서 Commit → 원격 저장소로 Push Git, Bitkeeper

Git은 협업, 성능, 유연성에서 가장 선호되는 도구입니다. Subversion(SVN)은 특정 환경에서 여전히 활용됩니다.

 
반응형
profile

무지개곰

@무지개곰

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!