형상 관리(Configuration Management)
형상 관리는 소프트웨어 구성 관리(Software Configuration Management)라고도 하며, 소프트웨어의 변경 사항을 추적하고 통제하여 체계적으로 관리하는 것을 의미한다. Git을 사용하다 보면 버전 관리라는 용어를 자주 접하게 되는데, 형상 관리와 버전 관리는 같은 의미가 아니다. 형상 관리는 더 포괄적인 개념으로, 그 안에 버전 관리가 포함된다.
여기서 "형상"은 소프트웨어 시스템을 구성하는 모든 구성 요소와 그 상태를 의미한다. 소스 코드, 빌드된 바이너리 파일, 설계 문사, 테스트 케이스와 그 결과, 시스템 설정 및 환경 설정 파일 등이 해당된다. 형상 관리는 이러한 구성 요소들의 버전과 변경 사항을 관리하는 개념이다.
- 변경 관리 : 소스코드 변경사항을 관리한다.
- 버전 관리 : 변경사항을 '버전'별로 관리한다.
- 형상 관리 : 변경/버전 관리를 포함하여 프로젝트와 관련된 모든 변경사항을 관리한다.
우리가 자주 사용하는 Git은 형상 관리의 한 종류인 버전 관리 시스템에 속한다.
형상 관리의 중요성
형상 관리는 소프트웨어 구성 요소의 일관성을 유지하여, 협업 시 충돌을 최소화하고 버전 간의 일관성을 확보할 수 있다. 이를 통해 협업 환경에서 효율적으로 업무를 진행할 수 있다. 또한, 변경 사항을 추적할 수 있기 때문에 시스템이나 코드가 어떻게 변화되고 있는지, 누가 언제 변경했는지 쉽게 알 수 있다. 변경 사항을 버전 별로 관리하기 때문에 버그가 발생했을 때 이전 버전으로 쉽게 되돌릴 수 있어서 리스크를 최소화할 수 있다.
이러한 이유로 형상 관리 시스템을 잘 이해하고 활용하는 것이 프로젝트의 안정성과 효율성을 높이는 데 필수적이다.
형상 관리 툴(Tool)
대표적인 형상 관리 툴에는 CVS, SVN, GIT이 있다.
- CVS (Concurrent Version System) : CVS는 서버-클라이언트 형상 관리 시스템으로, 파일 전체를 저장하지 않고 변경된 부분만 저장하는 방식이다. 커밋이 실패되면 롤백이 불가능하다.
- SVN (Subversion) : SVN은 CVS 단점을 보완하여 커밋 실패 시 롤백이 가능하도록 설계된 중앙집중형 버전 관리 시스템이다. change set을 커밋 단위로 사용하여 변경 사항을 보다 체계적으로 관리할 수 있다.
- Git : Git은 분산형 버전 관리 시스템으로, 개발자는 자신의 로컬 환경에 전체 프로젝트의 복사본을 저장할 수 있다. 원격 Git repository에 push하지 않아도 여러 브랜치를 생성하고 독립적인 작업을 할 수 있다.
출처
긴 글 읽어주셔서 감사합니다 🍀
잘못 작성된 내용은 피드백 주시면 반영하겠습니다 😎