728x90
반응형
SMALL
1) 정의 & 목적
- 정의: 소프트웨어 산출물(코드, 문서, 빌드, 설정 등)의 버전·변경·빌드·배포를 통제·추적·감사하는 체계.
- 목적: 일관성/재현성/추적성 확보, 위험 최소화, 협업 효율↑, 품질/규정 준수.
- 유지 보수 단계뿐만 아니라 개발 단계에도 적용 가능
2) 핵심 활동(ISO/IEEE 표준 프레임)
- 형상 식별(Identification)
- 관리 대상 정의: 구성항목(CI), 명명 규칙, 버전 정책(예: SemVer).
- 형상 통제(Change Control)
- 베이스라인(Baseline) 설정
- 변경요청(CR) → 영향분석 → CCB(변경통제위원회) 승인 → 수행/검토.
- 형상 감사(Audit/Review)
- 기능/물리 감사: 산출물과 요구/승인 변경이 일치하는지 점검(무단 변경 방지).
- 형상 상태기록(Status Accounting)
- 각 CI/버전/이슈의 상태·이력을 기록/보고.
3) 도구 체계 예시
- 버전관리:
- 공유 폴더 방식
- SCCS, RCS, PVCS
- 클라이언트/서버 방식(중앙집중식)
→ 서버 1곳에 버전을 관리, 클라이언트는 체크아웃/커밋 방식- RCS (Revision Control System), CVS (Concurrent Versions System), SVN (Subversion)
- 분산 저장소 방식
→ 모든 개발자가 전체 저장소 복제 후, 로컬에서 버전 관리- Git, GNU arch, Bazaar, Bitkeeper
- 공유 폴더 방식
- 이슈/변경관리: Jira, YouTrack
- 빌드/CI: Jenkins, GitHub Actions, GitLab CI
- 아티팩트 저장소: Nexus/Artifactory, Docker Registry
- 리포지토리 관리: 모노레포/멀티레포, Code Owners
- 인프라/설정: Terraform, Ansible, Helm (IaC/설정의 형상관리)
4) 형상관리 용어 정리
- 가져오기(초기): Import → (SVN) svn import / (Git) init + first push
- 작업본 받기: Checkout → (SVN) checkout / (Git) clone
- 추적 등록: Add → (공통) add
- 반영: Check-in/Commit → (SVN) commit / (Git) commit + push
- 최신화: Update → (SVN) update / (Git) pull
- 비교: Diff → (공통) diff
- 병합: Merging → (공통) merge (Git은 rebase도)
728x90
반응형
LIST