개발관련/용어

개발용어 관련 - 형상관리(Configuration Management) / CVS, SVN, Git

고통받는다 2023. 6. 28. 01:24
형상관리?

소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로 형상 관리는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학습 분야의 형태로 넓히는 근간을 이야기한다.

https://ko.wikipedia.org/wiki/%EA%B5%AC%EC%84%B1_%EA%B4%80%EB%A6%AC

 

구성 관리 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 소프트웨어 구성 관리(영어: Software Configuration Management) 또는 형상 관리는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, 형상 관리는 일반적

ko.wikipedia.org

 

음.. 이것만 들어서는 왜 형상관리가 필요한지.. 정확히 형상관리가 무엇인지. 어떻게 쓰는지 잘 모를겁니다.

 

형상관리.. 왜쓰는데?

우선 다음 사진을 보죠

아주 유명할 짤이죠

나름 원본에서 여러개 저장을 했기때문에 하다가 엎어져도 다시 되돌릴수 있게 여러 파일로 해놨습니다.

그런데 여러분 이거 이렇게 해놓으면 한눈에 봤을때 이 파일에는 뭐가 들어있고 어디까지 해놨지..? 라는게 보이십니까?

제눈에는 전혀 보이지 않는걸요?

이건 개발에서만 통용되는 개념이 아닙니다.

만역 여러분이 어느 문서 작업을 한다고 합시다. 기존에 여러 회의를 진행하면서 문서가 거의 완성단계에 이르렀고 그동안 수많은 백업 파일이 있다고 합니다.

그런데 최근 회의에서 상사가 우리 전에 ~~~한거 있잖아 그거 페기했고 ~~부분부터 다시 ~~을 하도록 했어 거기서 부터 다시하자고 이런 말을했다고 하면 저런식으로 파일을 저장했을때... 내가 어느부분부터 해야할지 감이 올까요?

저기서는 파일이 9개 뿐이지만 내가 저장한 파일이 100개가 넘어간다면요?

그걸 하나하나 열어서 다 보시겠습니까...? 말이 안되는 이야기죠?

만약 파일이 변경되거나 새로운 파일이 생겼을때 내가 왜 파일을 변경했는지, 왜 파일을 생성했는지. 어디까지 작업을 했는지 적어놨다면 이런 불상사가 없었겠죠?

네 결국 형상관리는 어떠한 문서나 파일이 변경된 경우 그 원인을 기록하였다가 나중에 필요하게 된 경우 찾아볼수 있도록 관리를 하는 것을 말합니다.

 

 

형상 관리 도구의 종류

1. CVS (Concurrent Verssion System)

: 소스 코드의 공유 폴더를 만들고 소스 파일을 넣어 둔다음 그 파일을 복사해서 코드를 추가하거나 다시 공유 폴드를 덮어 씌우는 방법

- 가장 오랫동안 사용되어온 형상관리 도구라고 합니다. 저는 사용해 본적이 없네요...

 

2. SVN (Subversion)

: 중앙 집중 관리식 형상관리 소스 관리 툴입니다.

로컬 pc에서 커밋시 중앙 저장소에 바로 반영이 되는 구조죠 CVS의 단점을 보완했다고 보시면 됩니다.

- 저도 전 직장에서 SVN을 사용해봤었는데요.. 문제가 상당히 많은 형상관리 툴이였습니다.

일단 충돌이 너무많이 발생합니다. 진짜 뭐만하면 다 충돌나요..

개발자들 대부분이 이 형상관리툴 싫어하고요... 제 주변 개발자분들 다 혐오하시더라고요.. 저희 대표님도 그렇고..

 

3. Git

현재 대부분의 개발자들이 가장 많이 사용하고 있는 형상관리 툴입니다.

분산형 관리 시스템을 가지고 있으며 다른 형상관리 도구에 비해 매우 다양한 기능을 지원합니다.

로컬관리와 중앙관리 모두 가능하여 장소에 구애받지 않고 협업이 가능합니다.

- 정말 좋은 형상관리 툴입니다. 현재 대부분의 개발회사에서 Git을 쓴다고 보시면 됩니다.

로컬, 중앙관리 모두 가능해서 장소에 구애받지 않는다는 점이 매우 좋습니다. 회사에서 하던 소스 집에서 끌어다 쓸수있고 정말 편합니다..

Git이 있는데 다른걸 쓴다는건... 정말 왜??? 라는 소리가 나올정도죠...