태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

Subversion(SVN)과 CVS의 비교

2008/11/12 16:10 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed

Subversion(SVN)과 CVS에 대한 비교라기 보다는 SVN이 CVS와 비교하여 상대적으로 어떤 점이 더 좋은지에 대한 설명입니다.
SVN은 CVS를 개발하던 핵심 개발자들이 그동안 CVS가 가지고 있던 문제를 해결하고자 완전히 새로운 아키텍쳐로 새로 만든 제품입니다.
따라서 기존에 CVS를 사용하고 있던 개발자들은 SVN으로 넘어오는 것을 적극 검토해보시기 바랍니다.



Subversion(SVN)의 장점
  • CVS에 비해 엄청나게 빠른 업데이트/브랜칭/태깅 시간. -> 최고로 강력한 장점입니다. 
    기존에 대형 프로젝트 같은 경우는 CVS를 이용하면 태깅에 수십분이 걸리기도 했습니다. 하지만 SVN은 아무리 규모가 커도 몇초면 끝납니다.
  • 커밋 단위가 파일이 아니라 체인지셋이라는 점입니다. CVS에서라면 여러 개의 파일을 한꺼번에 커밋하더라도 각각의 파일마다. 리비전이 따로 붙습니다. 반면 Subversion에서는 파일별 리비전이 없고 한번 커밋할 때마다 변경 사항별로 리비전이 하나씩 증가합니다. 
  • CVS와 거의 동일한 사용법. CVS 사용자라면 누구나 어려움 없이 금방 배울 수 있습니다. 
    또한 CVS를 SVN으로 쉽게 Migration을 할 수 있어 원하는 사람은 쉽게 SVN으로 옮겨 올 수 있습니다.
  • 원자적(atomic) 커밋. CVS에서는 여러 파일을 커밋하다가 어느 한 파일에서 커밋이 실패했을 경우 앞의 파일만 커밋이 적용되고 뒤의 파일들은 그대로 남아있게 됩니다. Subversion은 여러개의 파일을 커밋하더라도 커밋이 실패하면 모두 이전 상태로 되돌아 갑니다. 
  • 양방향 데이터 전송으로 네트워크 소통량(트래픽) 최소화. 
    네트워크 상황이 열악한 외부에서도 SVN을 사용하면 협업에 문제가 없습니다.
  • 트리별, 파일별 접근 제어 리스트. 저장소 쓰기 접근을 가진 개발자라도 아무 소스나 수정하지 못하게 조절할 수 있습니다. 
SVN의 설치 방법은 그리 어렵지 않고 인터넷에서 쉽게 구할 수 있으므로 굳이 여기서 설명할 필요는 없겠죠?



저작자 표시 비영리 변경 금지

전규현 기반시스템/소스코드관리

Trackback Address: http://allofsoftware.net/trackback/13 관련글 쓰기
  1. 네트웍 문제는 아무리 최소화 해도 C/S 방식인 이상 환경이 열악하면 SVN이라도 상당히 느리더군요.
    GIT, 머큐리얼, darcs 같은 분산형 SCM들이 많이 나오고 있는 이유도 그런 거겠죠.

  2. eminency님 반갑습니다.
    좋은 지적 감사합니다.
    나중에 분산형 SCM도 좀 비교를 해보려고 했는데, 미리 얘기를 꺼내셨네요. ^^
    SVN이 상대적으로 다른 SCM보다 적은 네트웍 트래픽을 사용하긴하죠. 그래도 Offline이거나 극도로 느린 환경에서는 분산형 SCM이 도움이 되죠.
    네트웍이 느리다고 별도의 SCM를 각각 운영하는 회사를 본적이 있는데, 그로 인한 문제가 더 크기 떄문에 이를 통합하도록 제안을 한 경험이 있네요.

  3. 안녕하세요. SVN을 막 설치해 사용중인데, 한글로된 주석문을 수정하면 diff할때 한글이 깨지더군요. 국내에도 수많은 사용자들이 있을텐데 설마 버그일리는 없을테고.. 뭔가 한글관련해서 설정하는 부분이 있는건지요?

  4. 헝그리맨님 안녕하세요.
    어떤 Diff를 보신 것인지 정확하게 알수없네요.
    TortoiseSVN Diff를 보신 것인가요?
    TortoiseSVN을 쓰신다면 Diff툴은 원하는 것으로 바꿔서 사용할 수 있습니다.
    정확히 문제가 뭔지 화면도 캡쳐를 해서 제게 메일을 보내주시면 좋겠습니다. gracegyu@abcswcon.com입니다. 제가 도움이 되면 좋겠네요.

  5. TortoiseSVN에서 비교를 하실 경우에는 TortoiseMerge라는 툴이 실행이 됩니다. TortoiseMerge에서 한글이 깨질 경우에는 Ctrl-T를 눌러서 Whitespaces 보기 기능을 끄시면 한글이 정상적으로 보이실 것입니다.

  6. PinkPapa님 의견 감사합니다.
    제가 테스트해보니 확실히 더 좋아지긴 합니다.
    하지만 완전히 해결이 되지는 않는것 같습니다.
    글로만은 설명이 어려워서 제 블로그(http://www.codereview.co.kr)에 포스팅을 했습니다.
    번거롭겠지만 한 번 들러서 봐주시길 부탁드립니다.

  7. 헝그리맨님 안녕하세요.
    http://softwaredev.tistory.com/entry/diffandmerge 에 답변 겸 글을 올렸습니다.
    감사합니다.

스펙을 제대로 작성하는 것은 구식이다?

'소프트웨어 개발 방법이 얼마나 발전했는데 아직도 스펙을 제대로 작성하고 개발을 하는가?' 라고 하면서 스펙 작성에 반대하는 주장을 하는 사람들이 있다. 스펙, 설계를 작성하고 구현을 하고 테스트를 하는 방식으로 개발하는 것..

내가 개발에 집중할 수 없는 이유

우리나라에서는 개발자들이 개발에 집중할 수 없는 환경인 곳이 참 많다. 정도의 차이가 있지만 거의 대부분이라고 봐도 무방하다. 그 결정적인 이유는 개발자 혼자서 북치고 장구치고 다해야 하는 상황이기 때문이다. 원래는 이렇게..

설계가 필요할까?

최근에 Software Architect의 정체에 대해서 혼란을 겪고 있는 것 만큼 Software 설계에 대해서도 혼동스러운 것은 마찬가지인 것 같다. 그래서 설계에 대해서도 깔끔하게 정의를 해보자. 흔히 설계에 관한 다음..

Software Architect를 양성하는 나라

우리나라에서는 종종 SW Architect를 양성한다고 한다. 정부에서 막대한 예산이 지원도 되며 SW Architect를 양성하는 학원도 생기고 야단법석이다. 그럼 도대체 SW Architect는 무엇인가? SW Archi..

우리에게 지금 필요한 것은? 바로 이것

우리나라 대부분의 소프트웨어 회사들에게 가장 시급하게 필요한 것은 "기초 체력"이다. 히딩크가 우리나라 국가대표 축구팀을 처음 맞았을 때 강조한 것이 기초 체력이었다. 그전까지 우리는 국가대표 축구팀이 체력은 세계 어디를 내..

프로토타입을 재활용하면 될까? 안될까?

며칠 전 프로토타입에 관해 올린 글에 대해서 프로토타입 재사용에 대해서 여러 의견이 있어서 이 내용에 대해서 조금더 설명해보려고 한다. 2011/11/03 - [프로젝트/요구사항분석] - 프로토타입이란? 소프트웨어공학의 목적..

프로토타입이란?

프로토타입 (경제/경영) 양산(量産)에 앞서 제작해보는 원형(原型)을 '프로토타입'이라 하는데, 프로토타이핑이란 개발자들과 사용자들의 의사소통상의 효과를 증진시키기 위하여 취하는 시스템개발상의 기법이다. 일반적인 분석방법을..

같이 일하려면 적어라.

"협업은 말로 하는 것이 아니라 문서로 하는 것이다." 동서고금을 막론하고 개발자들은 적는 것을 싫어하고 또 잘 적지 못한다. 우리나라 개발자들은 그 정도가 훨씬 심하다. 우리나라에서는 회사가 크던 작던 상관없이 대부분 5년..

우리 식대로
우리 식대로 2011/10/30

"우리 식대로" 마치 북한에서 하는 얘기 같지만, "우리 식대로"를 주장하는 소프트웨어 회사는 의외로 많다. 체계가 하나도 없이 완전 주먹구구 방식의 소프트웨어 회사가 있는가 하면 "우리 식대로"를 주장하여 정말 많은 일을..

문서는 얼마나 적어야 할지?

소프트웨어 개발 프로젝트에서 문서는 적게 적어야 한다. 다시 말하면 "보통의 회사에서는 문서는 필요한만큼만 가장 적게 적어야 한다." 물론 문서를 많이 적으면 여러 각도에서 상세히 적기 때문에 중복은 많이 발생하지만 잘못된..