RadarURL
Skip to content
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

버전관리

꿀위키

목차

[숨기기]

[편집] 버전관리, 형상관리

프로그램을 만들다보면, 잘못만들어서 다시 되돌릴필요도 있고, 변경된 히스토리를 확인할필요가 있다.
그리고, 여러명이서 개발시, 충돌나는 소스에 대한 처리도 요구 된다.
누가 버그를 생산했는지, 추적하려는 목적이 아니다.


그러한 소스의 히스토리를 관리하는 툴들을 의미한다.

[편집] 공통개념

  • 일반적으로 소스를 관리하는 시스템
  • 서버 클라이언트 형태로 구성되어있음
  • FTP와 비슷한구조로 파일 업로드,다운로드를 할수있음.
  • 아래에 나열된 종류에 따라 서버쪽에서 관리하는 방식(예를들어 업로드 방식과 다운로드 방식)등이 조금씩 다름
  • 업로드에 대한 내역(히스토리)들을 자동으로 관리함.
  • 다수가 작업하여 올릴수있음(FTP와 비슷함)

[편집] 소스세이프

MS버전관리툴, MS내부에서도 사용하지 않는다고한다.(조엘 온 소프트웨어)
소스 수정후, 서버에 반영하려고 하면, 자리에서 일어나 외친다.
"이번엔 소스 제가 올릴께요. 모두 가만히 있어주세요."


설정에서 이부분을 바꿀수는 있으나, 잘안쓴다.
디폴트값의 중요성을 알수 있다.


만약 팀이나 회사전체에서 이것을 쓴다면 빨리 떠나는게 좋다.


[반론] 말도 안된다. 소스세이프 사용법도 모르고 이런소리한다.

[편집] CVS

소스 세이프와는 달리, 특정누군가가 소스를 잡고 있을 필요는 없다.
자기가 수정하던 소스를 잘못만들었다면, 쿨하게 다지우고 새로 받아도 된다.
커밋만 하지 않으면, 그동안에 뭘하던 서버에 영향을 주지 않는다.


대신 성능의 문제인데, 큰 이미지리소스가 포함되어 있다면, CVS서버가 뻗을수도 있다.
그외 버전을 기록하는 단위도 좀 문제가 있다.


이것도, 팀이나 회사전체에서 사용한다면, 빨리 떠나는게 좋다.(아무리 그래도 소스세이프에 비하면 CVS는 양반)

[편집] Subversion (SVN)

CVS개발자가 CVS를 버리고, SVN이라는 이름으로 돌아왔다.
CVS의 주요문제점이던, 큰파일 업로드의 문제와 리버전단위의 문제가 해결되었다.


버전관리에 필요한 정보를 각폴더마다 .svn폴더를 숨겨 놓았다. -> 1.7 버젼부터는 루트에만 존재한다.
부분폴더를 커밋할수도 있다.


GUI로 된 Tortoise SVN이 제공된다. 의외로 사용하기 편하다.
commit, update, merge만 알면, 바로 사용가능하다.

다수의 저장소를 다루는 경우라면 eclipse에 SVN을 연동시켜서 사용하는 것이 훨씬 편함.

http://dev.naver.com/
http://code.google.com/
에서 오픈소스프로젝트를 진행할경우 무료로 서비스된다.


문제점
변경된 내용을 반영하려면, 항상 온라인상태이여만 한다.
한국에서는 대기업들어갈때 말고는 큰문제는 없다.
개인적인 이력을 남기고 싶을땐 로컬에 저장소를 만들면 된다.


장점

Linux(X-Window), Windows, MacOSX 모든 OS에서 무료로 가장 사용하기 쉽다.

[편집] GIT

리누스 토발즈가 linux kernel 소스관리를 위해 만들었다.


버전관리에 필요한 정보를 git의 루트폴더에만 기록한다.
그래서, 서버에 반영시이력을 주고 받을 때 프로젝트 전체에 대해서만 반영만 가능하다.

  • 딱히 그래서 그런건 아니다.
    • 그냥 git 설계가 그렇게 된것이다.
      • git커뮤니티에서는, 일부 directory만을 clone해야할 일이 있다면 submodule을 쓰라고 한다.
    • svn 1.7 이후 버젼에도 root에만 .svn directory를 만들지만 sub-directory의 checkout이 가능하다.


분산버전관리시스템
각 개발자의 로컬에 이력이 저장된다.개발이력은 서버와 동기화 하고, 다른 사용자들과 이력이 공유된다.

  • 어딘가의 서버와 동기화한다는 개념이 필수가 아니다. 이것은 한가지 사용 패턴일 뿐이다.
  • 개발자들이 습관적으로 서버에 Push을 안하고 Local에만 Commit을 하는 습관을 조심해야됨

https://github.com/ 를 통해서 공개소스 형태로 무료 또는 유료로 git 호스팅 서비스를 사용할수 있다.
http://dev.naver.com/
http://code.google.com/
에서도 공개소스 형태로 무료로 제공된다.

장점 (주로 Subversion과 비교했을 때)

  • 빠르다.
  • 브랜치 따고 사람들 여럿이서 작업하기 쉽다.
  • 네트워크 안 되도 작업내역 저장(커밋)가능하고, 연결될 때 한번에 해도 된다.
  • 디렉토리가 젤 위에 하나만 저장되서 git 관련 정보를 지우기 편하다.

단점 (주로 Subversion과 비교했을 때)

  • 빈 디렉토리 저장이 안된다 (프로젝트 구조를 미리 만들고 싶을 때)
  • Local 저장소에 Commit하고 Remote 저장소에 Push해야하는등 Subversion에 비해 복잡함이 있다. (디자이너와 같은 비개발자들은 거의 사용 불가)
  • 프로젝트에서 서브 프로젝트로 나뉠 경우 별도로 각각 저장소를 만들어야한다. (서브모듈???)
  • 디렉토리 별 권한지정이 안된다 (어차피 서브 프로젝트 별로 저장소를 따로 만들어야 하니 필요가 없을지도...)

[편집] mercurial(hg), 수은

구글에서 지원한다.


분산버전관리시스템
각 개발자의 로컬에 이력이 저장된다. 개발이력은 서버와 동기화 하고, 다른 사용자들과 이력이 공유된다.

Git과 비교시 윈도우 지원이 좀 더 잘 된다.체인지셋 기반이라 스토리지를 적게 소모한다.

https://bitbucket.org/ 에서 서비스를 사용할수 있다.
http://dev.naver.com/ 에서도 공개소스 형태로 무료로 제공된다.

[편집] Perforce

상용이다. 처음 도입시에는 1인당 백만원정도한다. 볼륨 디스카운트개념이 있어서, 많이 구매하면 1인당 단가가 35만원 선까지 내려간다. 1년 유지보수 비용이 1인당 18만원 ($160) 정도로 저렴하다.

20명까지는 공짜. 기술지원 이메일 보내면 재깍재깍 답변받을 수 있다. 한국인 직원이 한글로 답해주기도 함.

저장소를 바라보는 뷰의 개념인 워크스페이스를 만들어야 파일들을 받아올 수 있어서 처음 쓸 때 번거롭다. Shell integration이 안되어 있고 툴에서 수정할 파일을 먼저 check out을 해줘야 하는 구조, SVN 등에 익숙한 사용자라면 적응에 어려울 수 있으나 개발자 입장에서는 현재 누가 나와 같은 화일을 수정하고 있는지 알수 있어서 좋다. P4V라는 GUI 클라이언트가 막강해서 버전관리 개념 모르던 아티스트들도 쉽게 배워 쓸 수 있다.

P4V에서는 이미지들에 대한 버젼관리와 이미지 화일들의 Diff도 볼 수 있는 기능이 있다.

파일들을 DB화하지 않고 폴더구조 그대로 저장하므로 대용량 바이너리 파일 처리가 아주 빨라서 대형 프로젝트에서 많이 사용한다. (언리얼을 사용한 프로젝트들이라거나..) Pixar의 발표에 의하면 수백GB의 동영상 화일들도 Perforce로 관리한다고 한다. 저장소 용량이 수십TB를 넘어도 버젼관리에 문제가 없다고...

비쥬얼스튜디오하고 프로젝트를 처음연동시킬 때 주의해야한다. 잘 안붙는다. 하지만 한번 붙으면 그 이후로는 문제없다. 에전 P4SCC는 좀 불편했지만 새로나온 P4VS는 꽤 좋아졌다. 하지만 서버 반응이 느려질 때마다 UI가 멈춰서 아무것도 할 수 없는 건 매한가지.

안정성은 정말 뛰어나다. 대형 MMORPG를 7년동안 만들었는데 한번도 맛이 간 적이 없다. 그래도 팀이 100명 넘어가면 서브밋 많아지는 저녁시간에는 조금 반응이 느려지긴 한다. 프록시 서버나 샌드박스 이용, 하위프로젝트별로 분리된 저장소 사용 등의 방법으로 부하를 분산시키는 방법이 있다.

최근 추가된 replica 개념(commit/edge)들은 전세계 수천, 수만의 개발자들에게 동일한 하나의 프로젝트에 대해서 별도의 저장소를 둘 필요 없이 하나의 저장소에서 같이 협업할 수 있게 하는 등 대형 프로젝트에 최적의 환경을 제공한다.

최근에 추가된 스트림 기능을 이용하면 git처럼 자유로운 브랜칭이 가능하며, 브랜치별로 안정성을 지정하고 머지 정책과 권한을 설정할 수 있는 추가적인 기능도 있어서 잘 활용하면 편리하다.

Git-Fusion이라고 Git과 직접 연동시킬 수 있는 툴을 무료로 제공하고 있다. Git으로 관리되고 있는 오픈소스 프로젝트를 직접 인포트 할 수 있고, 히스토리까지 그대로 가져올 수 있다. Git과의 연동이 양방향이기 때문에 Git을 좋아하는 유저들도 맘껏 Perforce유저들과 협업이 가능하다.

단일 서버로 수만명의 유저들을 커버할 수 있다. 글로벌 IT회사들은 거의 Perforce를 사용 중이다. 다른 대륙, 다른 시간대의 개발자들과 협업함에 있어서 최상의 Performance를 제공한다.

출처 : http://www.ggulwiki.com/index.php/%EB%B2%84%EC%A0%84%EA%B4%80%EB%A6%AC#Perforce

?

List of Articles
번호 제목 글쓴이 날짜 조회 수
55 Iaas, Paas, SaaS, HaaS, BaaS 개념 JAESOO 2017.05.04 65
54 IaaS, PaaS, SaaS란 무엇인가요? JAESOO 2017.05.04 27
53 엑셀 시트보호 해제 프로그램 없이 하기 JAESOO 2016.09.06 405
52 윈도우 컴퓨터 유지보수에 유용한 무료 프로그램들 JAESOO 2016.08.31 182
51 마이크로소프트 오피스 제품군 완전 삭제 방법 JAESOO 2016.07.01 234
50 FileZilla Server, How do aliases work? (파일질라 서버, 별칭 설정 방법) JAESOO 2014.09.04 1078
49 개발자&웹퍼블리셔 운영서버 배포관리는 어떻게 하시고 계신가요? JAESOO 2014.05.15 1170
» 버전관리 - 형상관리, 소스세이프, CVS, Subversion(SVN), GIT, mercurial(hg), Perforce JAESOO 2014.05.15 6631
47 빌드를 자동화하라 (Automate the Build) JAESOO 2014.05.15 784
46 단일화된 소스 저장소를 유지하라. (Maintain a Single Source Repository.) JAESOO 2014.05.15 1471
45 지속적인 통합으로 피처요구사항 빌드하기 (Building a Feature with Continuous Integration) JAESOO 2014.05.15 1337
44 지속적인 통합 (Continuous Integration) JAESOO 2014.05.15 1621
43 변경관리/형상관리/빌드배포 자동화 연동 시 주요 이슈 JAESOO 2014.05.15 1405
42 형상관리의 기능 범주 JAESOO 2014.05.15 1531
41 엑셀 Alt + Enter(개행문자), 빈 행 등 특수문자 지우기, 찾기 및 바꾸기 관련 JAESOO 2013.07.04 12036
40 MS Live.com 무료 도메인 메일 서비스 이용 JaeSoo 2013.04.05 1759
39 Windows Live Hotmail, POP3/SMTP 개방 JaeSoo 2013.04.05 1540
38 V3 광고 않뜨게 하기 JaeSoo 2013.01.07 1629
37 CPU-Z 1.61 사용법/무설치 32bit/64bit 내 컴퓨터 사양 보는법! JaeSoo 2012.11.10 4688
36 MRTG(Multi Router Traffic Grapher) 설치하기 JaeSoo 2012.09.14 2058
Board Pagination Prev 1 2 3 Next
/ 3

PageViews   Today : 425   Yesterday : 2,142   Total : 19,848,058  /  Counter Status   Today : 166   Yesterday : 795   Total : 1,433,267
Site Info   Member : 237  /  Total documents : 1,223   New documents : 0  /  Total comments : 24

Edited by JAESOO

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소