본문 바로가기

개발자 세릴리/비전공자 한 입 지식

[지식] VCS란? Git과 SVN의 차이점을 알아보자!

728x90
반응형

 

 

VCS란? Git과 SVN의 차이점을 알아보자!

 

VCS 는 Version Control System의 약자로, 파일의 변화를 추적하고 관리하는 시스템이자 개발자들이 많이 사용하는 도구입니다.

그렇다면 왜 VCS를 써야할까요?

 

만약, 같은 파일을 회사에서도 작업하고, 집에서도 작업하고 싶다면 어떻게 해야할까요?

힘들겠지만, 노트북을 직접 들고 다니며 작업을 할 수도 있겠죠. 혹은 usb 등에 담아서 가지고 다니며 작업을 할지도 모릅니다.

 

또한 만약 같은 파일을 여러 사람이 함께 작업해야 한다면 어떻게 해야할까요?

한 명씩 작업을 끝내고 파일을 넘겨가며 작업을 이어가거나, 각자 맡은 부분을 작업하고 마지막에 한 파일로 합칠 수도 있을 것입니다.

 

이럴때 VCS를 사용하면 훨씬 간편하게 작업할 수 있습니다. 한 파일의 히스토리를 효율적으로 관리하고, 혼자서 여러곳에서 작업하거나 여러사람이 하나의 파일을 만들때 말이죠. 대표적으로 많은 회사에서 사용하는 SVN과 Git이 있습니다.

 

 

 

SVN

대부분의 기능을 완성해놓고 소스를 중앙 저장소에 commit 합니다.

commit의 의미 자체가 중앙 저장소에 해당 기능을 공개한다는 의미입니다.

프로젝트는 소스는 SVN 서버의 Trunk라는 곳에 위치합니다.

자신의 Local에 Trunk의 소스를 다운 받아 수정 및 추가 후 다시 업로드 하는 방식입니다.

자신만의 소스를 다른 개발자들과 떨어져서 작업하려면 Branch를 만들어 작업 후 자기자신만 접근하여 개발하며 완성되면 Merge 기능을 사용하여 Trunk와 소스를 합치면 됩니다.

단점

- 개발자가 자신만의 version history를 가질 수 없고 commit한 내용에 실수가 있어도 내용이 그대로 적용되는 단점이 있습니다.

 

Git

분산형 저장소를 가지고 있어 자신만의 history를 가질 수 있고 개발자와 서버의 저장소를 독집적으로 관리가 가능합니다.

덕분에 코드의 변화가 매우 유연해졌다는 것이 git의 가장 큰 장점입니다.

 

단점

- git은 지원하는 기능이 많기 때문에 다른 형상관리보다 익숙해지는데 더 많은 시간 필요합니다. learning curve 가 가파르기때문에 많은 사람들이 다양한 기능에도 불구하고 어려워서 포기하거나 활용하지 못하는 경우가 많습니다.

728x90
반응형