형상 관리는 소프트웨어 공학을 전공하신 분은 아시겠지만, 비전공자분들은 잘 모르실 겁니다. 전공자들도 이 용어 자체가 광범위하고 복잡하다고들 하니 말이죠. 그래서 이 글에서는 형상관리에 대해 이해하기 쉽게 설명하려고 합니다. 조금 길 수 있으니 참고하세요.

형상관리(CM : configuration management)?

형상관리는 소프트웨어 구성 관리라고도 하며, 소프트웨어의 변경 사항을 체계적으로 통제 및 관리를 하는 것을 뜻합니다. 이건 소스코드만이 아니라 개발 환경, 문서 등의 형상을 만들어서 이러한 구성들의 변경을 체계적으로 관리하는 것이죠.

이해하기 쉽게 예를 들어볼까요? 보통 개발자들이 코딩할 때 한 번에 끝내는 경우는 웬만하면 없죠. 어찌 됐든 검토를 해야 하고, 수정을 반드시 해야 하는 상황이 오니까요. 그리고 상황에 따라는 이전 기록으로 돌아갈 수 있어야 합니다. 이때 수정 기록들을 되돌리고, 확인할 수 있는 기능을 하는 것이 바로 형상 관리 도구입니다.

 

이는 작업의 실수를 최소화시키고, 서로가 무엇을 했는지 확인할 수 있어 누구 잘못인지 몰랐던 과거와 달리 여러 모로 시간을 아끼게 해줍니다. 협동 작업을 수월하게 할 수 있도록 돕는 것이죠.

 

변경 관리? 버전 관리?

형상 관리는 알아보다 보면 변경 관리와 버전 관리와 헷갈릴 수 있습니다. 하지만 분명한 차이는 있습니다. 핵심 개념은 이와 같이 분류할 수 있습니다.

 

 

  • 변경 관리 - 소스코드 변경 사항에 관한 관리
  • 버전 관리 -변경 사항을 버전이라는 개념으로 관리
  • 형상 관리 - 변경 및 버전 관리의 개념을 포함해 프로젝트에 관련된 모든 변경 사항의 관리

 

정리하자면 아래 사진과 같을 수 있겠네요. 헷갈릴 수 있으니 참고하세요.

형상관리의 구조

소프트웨어 구성 관리의 구조는 다음과 같습니다. 

 

  • 형상 식별(항목) - 관리 대상이 무엇인가 식별하는 것입니다.
  • 형상 제어 - 항목의 버전과 변경에 대한 판단을 내리는 것입니다.
  • 형상 감사 - 제대로 변경이 되었는지 검토하는 것입니다.
  • 형상 상태 보고 - 말 그대로 변경된 항목을 알리는 것입니다.

도구 분류

SVN(Subversion) - 소스관리 도구 중 하나입니다. 이는 중앙 관리만을 지원하고, 원자적 커밋으로 서로의 수정 소스 저장소가 엉키지 않으며, 만약 엉킬 시 롤백 기능이 있어 괜찮습니다.

 

CVS(Concurrent Version System) - 무료 서버_클라이언트 형상관리 시스템입니다. 파일 전체가 아닌 변경 사항만을 저장합니다. 동시 작업이 가능하지만, 속도가 느립니다. 롤백 기능이 없습니다.

 

GIT - 분산형 버전 관리 시스템입니다. 변경 사항을 추적하고 사용자들끼리 파일의 작업을 조율하기 위한 시스템입니다. 속도는 빠르며 일시적인 작업에 대한 이력 관리가 쉽지만, 대용량 관리에는 어울리지 않습니다.

 

Perforce(P4D) - 빠른 속도를 가졌고, 히스토리 검색이 편합니다. 대용량 리소스 관리에 유용하고, 바이너리 바일 처리가 빠릅니다. 하지만 파일명이 바뀔 시 추적이 어렵습니다.

 

상용 비상용
IBM Rational Clear Case/P4D/PTC Integrity SVN/CVS/GIT

 

위와 같은 도구들을 통해 형상관리를 하는 것입니다. 사실 이 작업은 개발자들이 많이 사용하지만, 일반 비전공자분들도 충분히 잘 활용하실 수 있습니다. 꼭 개발자들만 코딩하는 거 아니고, 동시 작업하는 거 아니잖아요! 그리고 파일 저장할 때 분명 하나의 파일인데 수정하고, 고치고, 다시 저장하고, 복사본 또 생겨나고 보기에도 복잡하잖아요. 그때마다 이렇게 구성 관리로 보기 편하게 관리해보세요. 물론 이 외에도 비슷한 기능을 하는 건 많습니다. 구글 드라이브, 드롭박스 등등...

 

+ Recent posts