본문 바로가기

Architecture for Software/Architecture

Software Configuration Management(SCM)에 관하여

국내에서는 형상관리라고 불리우는 SCM(Software Configuration Management)에 관하여 정리하였습니다. 최근 이런 개념을 요하는 책을 접하고 있는 관계로 관련된 용어 정리를 나름대로 다시 할 필요성이 있어 정리하고 있습니다.

역시 가장 잘 정리되어 있다고 생각되는 Wikipedia에서 Software Configuration Management(SCM)에 관한 자료를 찾아보았습니다. 따라서 본 글의 내용은 Wikipedia 의 내용을 번역하고 더 필요한 내용을 정리한 것입니다. 참고하시기 바랍니다.


Software Configuration Management(SCM)

SCM은 Revision Control이나 Source control 및 Version Control과 같이 소프트웨어의 변경을 관리하고 작업을 추적하는 것이다. SCM은 버전관리(Revision Control)베이스라인 수립(establishment of baselines)를 포함하여 실행하는 것이다.

SCM은 Configuration Management (CM)의 한 부분이므로 우선 CM에 대하여 확인해볼 필요가 있다. CM은 국내에서 형상관리라고 불리우고 있다. CM는 시스템이나 제품의 성능과 기능 및 물리적 특성들을 요구사항(requirements), 설계(design), 기능적인 정보(operational information) 등과 함께 전 생애에서 지속적으로 관리하고 수립하는 것에 초점을 맞추고 있다. 관리 분야에서 제품의 성능이나 기능 및 물리적인 속성들을 요구사항, 설계, 운영 정보 등을 통하여 시스템의 일관성을 수립하고 유지하는 것이다.


특히 SCM은 "누군가 무슨 일을 하였다면, 어떻게 재현할 수 있을까?"에 대한 답을하기 위한 관점을 가지고 있다. 왜냐하면 수 많은 문제들은 결국 증가되는 변경을 제어하고 인식할 수 없기 때문에 해결하기가 어렵다고 보기 때문이다. 이러한 질문의 답은 결국 각 변경간의 차이점을 분석하여 결과를 비교하는 것이라고 볼 수 있다. 따라서 SCM은 복잡한 시스템이 개발되면서 발생하는 다양한 변경사항들을 처리할 수 있도록 구성되어 있다.

이에 따라 최근 형상관리를 넘어 SCM이 각광받고 있으며, 기존의 Revision Control 등과 구분된다.

대표적인 SCM의 개념을 지원 툴은 JIRA 등이 있지만, 보통 SCM은 다양한 툴을 종합하여 구현한다.