형상관리(SCM) 사용이유 왜 필요한것일까?
본문에 들어가기에 앞서 형상관리가 무엇인지에 대해 먼저 알아보아야 할 듯하다.
형상관리란 한마디로 개발과정의 시작부터 끝까지 변하는 모든 사항을 관리하는 작업이라고 할 수 있다.
많은 사람들이 개발자라면 형상관리 도구를 프로젝트에 필수적인 도구라 해서 사용하고 있지만 그 필요성을 제대로 알고 있는 사람은 많지 않을 것이다. 형상관리의 대표적인 도구인 git이나 svn을 한 번쯤 사용해보았을 것이다. git이나 svn을 사용해보면 알 수 있듯이 단순히 말하자면 변경사항을 체계적으로 관리하는 것이라고 알 수 있다. 소프트웨어 공학론을 공부하지 않는 이상 깊게 알기란 쉽지 않다.
형상관리의 구성요소로는 4가지로 구분할 수 있는데
형상 식별, 형상 통제, 형상 감사, 형상기록으로 이루어져 있다.
형상식별(Configuration Identification) | 시스템의 효율적인 개발관리를 위해 형상항목(SCI)을 정의하고 분류하는 활동 |
형상통제(Configuration Control) | 소프트웨어시스템의 각 베이스라인별로 형상을 설정하고 변경하는 일을 체계적인 절차(변경통제위원회 CCB)에 의해 통제하고 관리하여 결정하는 절차 |
형상감사(Configuration Audit) |
형상 항목이 요구사항에 맞도록 잘 변경되었는지 확인하는 것 FCA와 PCA 가 있다. |
형상기록(Configuration Status Accounting) | 앞의 3가지 활동을 자료로 수집하고 기록하며, 결과의 내용을 데이타베이스화 하고 원하는 형태로 다양하게 이용할 수 있도록 하는 활동 |
위와 같은 4가지 요소를 토대로 관리를 하는데 결국 형상관리는 모든 변동사항을 체크하는 것이고 이는 완성도를 높이 고실 수를 줄이기 위해서가 가장 크다.
형상관리 말고도 PMS(프로젝트 관리시스템) 방법론과 사람 돈 진척률 등 프로젝트의 전체적인 사항을 관리하는 시스템 , ITSM(IT Service Management) ITIL(IT Infrastructure Library) 프레임워크를 토대로 서비스를 계획, 제공, 운영, 제어하는 전체적인 활동 시스템, ALM(application Lifecycle Management) 개발의 요구사항 분석에서부터 아키텍처, 변경관리 등 끝까지 모든 과정을 관리 등 다른 것도 존재하는데 이는 무엇의 주목하는지만 다르고 본질적으로는 형상관리와 같다 할 수 있다.
형상관리의 장점
- 소스코드의 변경이력을 관리할 수 있어서 추적성이 높다.
- 배포가 편리하다.
- 여러 사람이 동일한 소스코드를 공유해 개발할 수 있으며 공유할 때 생기는 버전 충돌 문제 등을 해결할 수 있다.
- 장애 혹은 기능상 필요할 때 이전 버전이나 Baseline으로 소프트웨어를 되돌릴 수 있다.
형상관리 사용 이유 요약
- 가시성의 결핍 : 소프트웨어는 무형물
- 통제의 어려움 : 눈에 보이지 않는 상품의 제작은 통제하기 어려움
- 추적의 어려움 : 프로젝트의 중간 목표들을 연결시키고 개발과정을 추적하기 어려움
- 감시의 미비 : 가시성과 추적성의 결핍은 프로젝트의 진행을 감시하기 어렵게 함
- 무절제한 변경 : 통제되지 않고 관리되지 않는 소프트웨어의 무절제한 변경이 발생