정보처리기사/소프트웨어 개발

소프트웨어 형상관리(SCM: Software Configuration Management)

glorypang 2025. 10. 5. 01:22
728x90
반응형
SMALL

1) 정의 & 목적

  • 정의: 소프트웨어 산출물(코드, 문서, 빌드, 설정 등)의 버전·변경·빌드·배포를 통제·추적·감사하는 체계.
  • 목적일관성/재현성/추적성 확보, 위험 최소화, 협업 효율↑, 품질/규정 준수.
  • 유지 보수 단계뿐만 아니라 개발 단계에도 적용 가능

2) 핵심 활동(ISO/IEEE 표준 프레임)

  1. 형상 식별(Identification)
    • 관리 대상 정의: 구성항목(CI), 명명 규칙, 버전 정책(예: SemVer).
  2. 형상 통제(Change Control)
    • 베이스라인(Baseline) 설정 
    • 변경요청(CR) → 영향분석 → CCB(변경통제위원회) 승인 → 수행/검토.
  3. 형상 감사(Audit/Review)
    • 기능/물리 감사: 산출물과 요구/승인 변경이 일치하는지 점검(무단 변경 방지).
  4. 형상 상태기록(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