Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

형상관리 툴(CVS, SVN, Git) 본문

기타

형상관리 툴(CVS, SVN, Git)

코드와이 2021. 11. 29. 01:46

CVS, SVN, Git

  • 형상관리 툴
  • 소스의 변화를 끊임없이 관리하는 툴
  • 소스를 버전별로 관리할 수 있고, 실수할 경우 원복 가능하게 하는 툴

CVS

  • 개념
    • GNU 라이센스
    • 중앙에 위치한 Repository에 파일을 저장하고 모든 사용자가 접근 가능하도록 설계
    • checkout으로 파일 복사, commit으로 변경사항 저장
    • 최종 버전의 소스만 관리
  • 장점
    • 오랫동안 사용이 되었으며 안정적
    • 파일 전체를 저장하지 않고 변경사항만 저장하여 적은 용량 사용
  • 단점
    • 파일 이동이나 이름 변경은 버전 변경 미발생
    • 버전 분기가 힘들고, 장기간 분기된 버전 운영에 대해 미설계
    • commit 실패 시 롤백 불가능
    • 느린 속도
  • 혼자 갭라할 경우 최종버전만 관리하는 CVS 툴 사용이 편리

SVN

  • 개념
    • CVS와 높은 호환성을 유지하며 약간의 버그를 수정한 대체 시스템으로 개발
    • 중앙 관리
    • 최초 1회에 한해 파일 원본 저장, 이후에는 원본과 차이점을 저장
    • 버전 분기가 수비고, 대규모의 분기된 프로젝트에 도움
  • 장점
    • 원자적 commit으로 다른 사용자의 commit과 엉키지 않으며 commit 실패 시 롤백 지원
    • 언제든지 원하는 버전으로 복구 가능
  • 단점
    • 파일과 디렉토리 변경 관련 버그
    • 불충분한 저장소 관리 명령어
    • CVS에 비해 상대적으로 불안정
    • Local Repo가 없기 때문에 자신만의 version history 관리 불가능
    • commit에 실수가 있을 시 다른 개발자에게 바로 영향 가능성

Git

  • 개념
    • CVS를 개선하고 보다 빠른 분산 버전 제어 시스템
    • 버 저장소와 개발자 저장소가 독립적
    • 사용자 기록 탐색 가능
  • 장점
    • 빠른 속도
    • 분기 버전의 효율적인 운영
    • 오프라인에서도 전체 이력 이용 가능
    • 분산된 P2P 모델
    • commit 실수가 있어도 서버에 바로 영향 없음
  • 단점
    • 많은 기능 지원으로 높은 진입 장벽
    • 개인 개발자에게 부적절
  • 팀 개발을 위한 분산 환경 코딩에 최적화

 

Reference

'기타' 카테고리의 다른 글

Maven & Gradle  (0) 2021.11.29
Web Server vs WAS  (0) 2021.11.29
[기타] 프레임워크 vs 라이브러리  (0) 2021.11.29
[기타] TDD  (0) 2021.11.29
객체지향적인 프로그래밍?  (0) 2021.08.08