2017. 1. 21. 15:44ㆍ장비제어개발관한이야기
간단히 말하자면 SVN은 소스형상관리역할을 합니다.
수많은 장비제어 개발자분들은 SVN을 사용하고 있을꺼라 생각됩니다.
물론 제가 첫 회사를 입사하였을 당시에는 압축파일 백업정도만 쓰고 있었습니다. 슬픈일이기도 합니다.
압축도 훌륭한 기능을 하고 그 이상의 기능도 필요없기도 합니다. 하지만 SVN은 다른 막강한 기능도 있습니다. 특히, 우리 회사 같은경우에는 BeyondCompare 같은 프로그램을 연동하여 쓰기때문에 개발에는 없어서는 안될 중요한 툴이라고 할수 있습니다.
보통 장비 개발 시에는 1명의 개발자가 하는 경우가 대부분이어서 크게 필요성이 떨어질 수도 있지만, 개발자가 2명 이상으로 많아질경우에는 압축만으로는 힘들어질 수 있습니다.
총 3 설치프로그램이 필요합니다.
VisualSVN-Sever
- SVN서버를 포함하고 있으며, GUI 관리툴을 통해 저장소 및 유져세팅이 가능
- 소스서버가 될 PC에 설치
TortoiseSVN
- 윈도우 탐색기와 연동된 클라이언트
- 노트북이나 실제 개발이 이루어지는 PC
AnkSVN
- 비주얼스튜디오 와 연결 가능한 클라이언트
- Tortoise가 탐색기 기반이라면 VisualStudio 기반이라 할수 있다.
저 같은 경우에는 실제로는 AnkSVN은 설치안하고 TortoiseSVN을 위주로 씁니다.
VisualSVN 설치방법
저 VISUAL SVN SERVER를 설치하게 되면 위와 같은 옵션이 뜨게 됩니다.
보통,첫 번째 옵션으로 설치합니다.
두 번째 옵션은 SVN SERVER가 이미 설치되었을 시 콘솔관리프로그램만 설치하는 옵션이며 이 설치패키지는 SVN SERVER를 포함하고 있기 때문에 첫 번째 옵션으로 두 가지 모두 설치할 수 있습니다..
기본적으로 https 보안 프로토콜을 사용하며, 인증에 관련된 두 가지 옵션이 있다.
하나는, svn자체 계정으로 소스제어에 대한 권한을 주는 것이고,,
다른 하나는, 윈도우계정 입니다.
저 같은 경우는 관리적 측면에서 보면 SVN 자체 계정이 편하여서 첫번째 옵션만 이용합니다.
Visual Svn의 설치를 완료하면.., 제어판의 관리도구부문에 등록이 되어 이곳에서 세팅 프로그램을 띄울 수 있다.
저장소는 Repository라고불리며, 프로젝트 개념이라고 보면 됩니다.. 보통 3가지 Trunk,branches,Tags로 나누게 되는데 개념적으로 나누는것이고 실제로 동작은 폴더나 다 상관없이 공통된 기능으로 작동하게 됩니다.
각 디렉터리의 의미
Trunk
- 본체 부분으로 메인 소스라고 보면 됩니다. 보통 소스뿐만아니라 개발 관련 문서도 함께합니다.
Branches
- 본체에서 뻗어 나온 가지 부분으로, 주로 새로운 기능추가 시 이곳에서 작업을 수행하게 되며 특정시점(업데이트시점)에서 trunk와 머지를 하여 다시 합하거나, 합치지 않은체 다른 성향의 버젼으로 가게될시 이용됩니다. 많아질수록 더 힘들어집니다.보통 테스트할시에 테스트버전을 소스관리할경우에 많이 씁니다.
Tags
- 소스에 의해 최종 빌드된 버전이 이곳에 존재하게 됩니다. 보통 업체에 적용된 버전을 날짜와 적용업체별로 정리해서 넣습니다.
위에 내용은 장비제어에서 필요한 부분만 개념을 정리한것이지 꼭 그렇게 쓰라는 규칙은 아닙니다.
자유롭게 써도 될꺼같습니다.
클라이언트(TortoiseSVN)
클라이언트 측면(TortoiseSVN )에서는 윈도우 탐색기와 합쳐져 있어서 금방 배울수 있고 장비제어분야 말고도 많이 쓰이니 검색을 하면 충분히 사용법을 익힐 수 있을 듯합니다. 사실 GUI 측면이 뛰어나기 때문에 진짜 금방배워요
'장비제어개발관한이야기' 카테고리의 다른 글
장비제어 - 쓰레드의 생성 (0) | 2017.02.01 |
---|---|
카메라 제어하자 - 카메라종류 (0) | 2017.01.23 |
레이어 설명에 앞서서...동적라이브러리 링크 (0) | 2017.01.17 |
자동화설비(ImMahcine[SEQ])의 기본구조-초안 (0) | 2017.01.16 |
코딩컨벤션에서 헝가리안 표기법까지! (0) | 2017.01.13 |