소프트웨어 형상관리 (Software Configuration Management)
소프트웨어를 개발하고 유지보수하는 과정에서 발생하는 소스코드나 문서 등에 대해서 형상을 만들고, 이에 대한 변경을 관리하기 위한 활동이다. 프로젝트를 진행하면서 생성되는 소스코드를 CVS나 SVN, GIT와 같은 버전 관리 시스템을 이용하는 것을 말한다.
소프트웨어를 개발하기 위해 초기 컨셉이 결정되면, 요구사항 파악부터 분석과 설계과정을 거쳐, 구현과 테스트를 통해 소프트웨어를 릴리즈하고 유지보수 단계로 접어든다. 요구사항에서부터 최종 릴리즈까지 진행하면서 소프트웨어는 수많은 변경을 겪는다. 수시로 바뀌는 요구사항이나 소프트웨어의 결함때문에 소스코드를 변경해야 하는 일이 많다.
형상관리란 이러한 변경을 파악하고 제어하기 위해, 변경이 적절히 수행되고 있는 것을 확인하기 위해 사용하는 것이다.
즉, 형상 관리의 가장 큰 목적은 변경에 의해 점차적으로 변해가는 소프트웨어의 형상을 관리함에 있다.
버전관리 시스템의 종류
1. CVS
- 1980년대에 만들어진 형상관리 프로그램
- 디렉토리나 파일 이름 변경이 불가능하고, 커밋 실패 시 롤백이 되지 않는 등 불편한 문제점이 있어 이후 SVN으로 대체되었다.
2. SVN (Subversion)
- 2000년대에 CVS를 대체하기 위해 만들어졌고, CVS와 비슷한 사용법이며, 파일의 이름변경, 이동, 디렉토리 버전 관리를 지원한다.
- 중앙 리포지토리 내에서 로컬 복사 후 변경한 사본을 커밋하는 방식으로 진행한다.
- 커밋 단위가 파일이 아니라 체인지셋이다.
: CVS는 여러 개의 파일을 한꺼번에 커밋하더라도 각각의 파일마다 리비전(Revision, 저장소에 저장된 각각의 파일 버전)이 다르나,
SVN에는 한번 커밋할 때마다 변경 사항별로 리비전이 하나씩 증가한다.
3. GIT
- 2000년대에 리눅스를 만든 리누스 토발즈에 의해 시작되었다.
- 저장소가 분산되어 있는 분산형 버전 관리 프로그램으로, 내 로컬 저장소에 작업 내용을 커밋하고 다른사람과 공유 시 원격 저장소에 푸시한다.
- SVN은 서버에 문제가 생기면 모든 버전관리가 중단되지만, GIT은 원격 저장소와 연결이 끊겨도 계속 버전관리가 가능하다.
참고 출처
- http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039135722
- http://bsnippet.tistory.com/57 [snippet]
- https://www.slideshare.net/ienvyou/subversion-vs-git-42605130
- http://seungzzang.blogspot.com/2013/04/git-svn-svn-git.html
'Development knowledge' 카테고리의 다른 글
컴퓨터 시스템의 구성요소 및 운영체제(OS)란 (0) | 2018.11.24 |
---|---|
함수 호출방식 (call-by-value, call-by-reference) (0) | 2018.11.21 |
메모리 구조 (Code, Data, Stack, Heap) (0) | 2018.11.21 |
static과 const (0) | 2018.11.21 |
오픈 소스(Open Source)의 장단점 (0) | 2018.11.21 |