소프트웨어 형상관리와 형상관리 도구의 이해

1. 형상관리에 대해

소프트웨어 형상관리(SCM, Software Configuration Management)는 SW개발 및 유지보수 과정에서 발생하는 변경 사항들을 관리하기 위해 개발된 일련의 활동이다.

  • 소프트웨어 변경의 원인을 알아내고 제어하며 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보하는 작업이다.
  • 형상 관리는 소프트웨어 개발의 전 단계에 적용되는 활동으로, 유지보수 단계에서 수행된다.
  • 형상 관리는 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 그 목적으로 한다.

동일한 의미로 사용되는 용어들.

  • 버전관리(Version Control)
  • 리비전 관리 (Revision Control)
  • 소스관리 (Source Control)
  • 소스코드 관리 (Source Code Management)

 

2. 형상 관리 도구(Configuration Management Tool)

git-and-the-importnace-of-version-control

소프트웨어를 중심으로 하는 프로젝트에서 빈번하게 발생하는 문제들을 해결하기 위해 등장한 도구.
소프트웨어 공학의 프로젝트 진행 및 관리 방법에서 비중 있게 다뤄 지는 영역 중 하나이기도 하다.

오늘날 많이 사용되는 형상 관리 도구의 두 축이 SVN과 GIT이다. 한때 SVN이 널리 사용되었지만, 근래에 들어 GIT이 등장하고 나서부터 SVN을 사용하던 많은 기업들이 GIT으로 갈아타고 있는 추세이다.

SVN과 GIT은 모두 소스코드의 효율적인 관리를 위한 형상 관리 도구이지만, 비슷하면서도 많은 점이 다르다. 심지어 같은 용어도 서로 동작하는 개념이 다르기 때문에, SVN에서 GIT으로 옮겨 가는 프로그래머들이 많은 혼란을 느끼기도 한다.

SVN과 GIT의 가장 큰 차이점을 나타내는 한 단어가 있는데, 바로 ‘분산’이다. SVN은 중앙 집중식 소스코드 관리 방식인데 반해, GIT은 분산 소스코드 관리 방법이다. 즉 GIT을 사용할 경우 중앙 저장소가 폭파되더라도 분산되어 있는 로컬 저장소를 이용해 중앙 저장소를 복원할 수 있다.

SVN과 GIT은 상호 장단점이 있지만, 형상 관리 도구에 처음 입문하는 사람이라면 GIT으로 시작하는 것을 추천한다. SVN을 사용하던 기업들이 GIT으로 점차 옮겨 오는 등, GIT을 더 널리 사용하고 있는 추세이기 때문이다.

 

댓글 남기기