"버전 관리"의 두 판 사이의 차이

156 바이트 추가됨 ,  10년 전
잔글
편집 요약 없음
잔글 (로봇이 더함: et:Versioonihaldus)
잔글
'''버전 관리'''(version control, revision control), 소스 관리(source control), 소스 코드 관리(source code management, SCM)란 동일한 정보에 대한 여러 버전을 관리하는 것을 말한다. [[공학]]과 [[소프트웨어 개발]]에서 팀 단위로 개발 중인 [[소스 코드]]나, [[청사진]] 같은 설계도 등의 디지털 문서를 관리하는데 사용된다. 그러한 문서의 변경 사항들에 숫자나 문자로 이뤄진 ("개정판 번호"나 "개정판 레벨"이라고도 불리는) "[[버전]]"을 부여해서 구분한다. "버전"을 통해서 시간적으로 변경 사항과 그 변경 사항을 작성한 작업자를 추적할 수 있다. 간단한 버전 관리 방법으로는 처음 작성한 코드에 버전 번호 1을 부여한다. 변경 사항이 생기면, 버전 번호를 2로 증가시킨다. 이처럼 추후 변경 사항이 발생 시마다 버전 번호를 1씩 증가시킨다.
 
소프트웨어 엔지니어링에서는 일반적인 소프트웨어 소스 코드만을 관리하는 내역을 주로 버전 관리라고 정의하게 된다. 일반적으로 산업 공학이나 이전 생산 기반 제조 공학 등에서 소프트웨어 쪽으로 넘어오는 학문적 관심에 의해 이전 생산 공학에서 사용하던 개념을 가져오게 되었고, 그에따라 버전 관리(Software Version Manamgement)와 [[소프트웨어 구성 관리|형상 관리]](Software Configuration Management)의 개념들이 따라왔다고 볼 수 있겠다.
일반적으로 산업 공학이나 이전 생산 기반 제조 공학 등에서 소프트웨어 쪽으로 넘어오는 학문적 관심에 의해
이전 생산 공학에서 사용하던 개념을 가져오게 되었고, 그에따라 버전 관리(Software Version Manamgement)와
형상 관리(Software Configuration Management)의 개념들이 따라왔다고 볼 수 있겠다.
 
한국의 경우, 대부분의 서적들을 [[영어]]>[[일본어]]>[[한글]]의 순으로 번역된 경우에 따라 오역된 경우가 많고 관련된 분야에 대해 정확하거나 깊은 이해 없이 단순 소개하며 넘어간 경우가 대부분이라 아직도 정확한 버전 관리와 [[형상 관리]]의 구분이나 이해가 없다고 보는 것이 맞다.
관련된 분야에 대해 정확하거나 깊은 이해 없이 단순 소개하며 넘어간 경우가 대부분이라 아직도 정확한 버전 관리와 [[형상 관리]]의 구분이나 이해가 없다고 보는게 맞겠다.
 
버전 관리 소프트웨어 도구들은 거의 모든 소프트웨어 개발 프로젝트에서 필수적인 요소로 인식되고 있다.
 
== 버전 관리에서 사용하는 용어들 ==
;* 체크 아웃(Check Out) : Repository에서저장소(Repository)에서 파일을 가져온다.
;* 체크 인(Check In(, Commit) : 체크 아웃(Check Out한Out)한 파일의 수정이 끝난 경우 Repository에저장소(Repository)에 새로운 버전으로 갱신 하는 일이다. 이때 이전에 갱신된 것이 있는 경우 conflict를충돌(conflict)을 알려 주며 diff툴을diff 도구를 이용해 수정수정하고 하고 commit 하는commit하는 과정을 거치게 된다.
;* 가져오기(Import) : (버전관리버전 되고관리되고 있지 않은) 로컬 디렉토리의 파일을 처음으로 Repository에저장소(Repository)에 복사한다.
;* 저장소(Repository) : 파일의 현재 버전와 변경 이력 정보를 저장하는 저장소.
{{토막글|소프트웨어}}
 
== 더 보기 ==
* [[형상 관리]]
* [[SCCS]]
* [[버전 관리 시스템|RCS]]
* [[CVS]]
* [[서브버전|Subversion]]
* [[머큐리얼|Mercurial]]
* [[Git (소프트웨어)]]
 
{{토막글|소프트웨어}}
 
[[분류:소프트웨어 공학]]