IT/관련지식

버전 관리 도구

금마s 2020. 7. 24. 17:54

# 방식에 따른 버전 관리 도구 유형

유형 설명
공유 폴더 방식
(RCS, SCCS)
- 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사
- 담당자 한 명이 매일 공유 폴더의 파일을 자기 PC로 복사하고 컴파일하여 에러 확인과 정상 동작 여부 확인
- 정상 동작일 경우 다음날 각 개발자들이 동작 여부 확인
클라이언트/서버 방식
(CVS, SVN)
- 중앙에 버전 관리 시스템이 항시 동작
- 개발자들의 현재 작업 내용과 이전 작업 내용 축적이 용이
- 서로 다른 개발자가 같은 파일을 작업했을 때 경고 출력
- Trac이나 CVS view와 같은 GUI 툴을 이용하여 모니터링 가능
분산 저장소 방식
(Git, Bitkeeper 등)
- 로컬 저장소와 원격 저장소 구조
- 중앙의 저장소에서 로컬에 복사(clone)한 순간 개발자 자신만의 로컬 저장소에 생성
- 개발 완료한 파일 수정 이후 로컬 저장소에 커밋하고나서 다시 원격 저장소에 반영(push)하는 방식

 

 


 

 

# 버전 관리 도구별 특징

버전 관리 도구 특징
CVS
(Concurrent Versions System)
- 서버와 클라이언트로 구성되어 다수의 인원이 동시에 범용적인 운영체제로 접근 가능하여 버전 관리할 수 있도록 한다.
- Client가 이클립스에 내장되어 있다.
Subversion
(SVN)
- GNU의 버전 관리 시스템으로 CVS의 장점은 이어받고 단점은 개선하여 2000년에 발표되었다.
- 사실상 업계 표준으로 사용되고 있으며 SVN이라고 한다.
RCS
(Revision Control System)
- CVS와 달리 소스 파일 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일을 잠그는 방식으로 버전 컨트롤을 수행한다.
Bitkeeper SVN과 비슷한 중앙 통제 방식의 버전 컨트롤 툴로서 대규모 프로젝트에서 빠른 속도를 내도록 개발되었다.
Git - 기존 리눅스 커널의 버전 컨트롤을 하는 Bitkeeper를 대체하기 위해서 나온 새로운 버전 컨트롤로서 현재의 리눅스는 이 방법을 통해 버전 컨트롤이 되고 있다.
- Git는 속도에 중점을 둔 분산형 버전 관리 시스템이며, 대형 프로젝트에서 효과적이고 실제로 유용하다.
- Git는 SVN과 다르게 commit은 로컬 저장소에서 이루어지고, push라는 동작으로 원격 저장소에 반영된다
- 원격 저장소에서 받아올 때도 pull과 fetch로 서버에서 변경된 내역을 받아올 수 있다.
Clear Case - IBM에서 제작되었다.
- 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있다.

 

 

 


 

 

# 버전 관리 도구 사용 시 유의점

 > 버전에 대한 정보를 언제든지 접근할 수 있어야 한다

 > 제품 소프트웨어 개발자, 배포자 이외에 불필요한 사용자가 소스를 수정 X

 > 버전 관리는 동일한 프로젝트에 대해서 여러 개발자가 동시에 개발 가능해야 한다

 > 에러 발생 시 최대한 빠르게 복구되어야 한다

 

 

 

 

 

728x90

'IT > 관련지식' 카테고리의 다른 글

GIT  (0) 2020.07.28
UML 특징  (0) 2020.07.24
DRM 흐름  (0) 2020.07.24
릴리즈 노트  (0) 2020.07.24
선택&삽입&버블 정렬  (0) 2020.07.24