정처기 감자정처기 감자
SW 개발통합구현

검색

검색어를 입력해 개념, 문제, 필기를 찾습니다.

형상 관리 (SCM) - 4가지 활동과 도구(CVS·SVN·Git)

SW개발통합구현형상관리
읽는데 11분 소요
처음 쓰인 날: 2026-04-29
마지막 수정일: 2026-10-01
조회수: —

요약

정보처리기사 실기 시험에서 자주 등장하는 소프트웨어 형상 관리(SCM, Software Configuration Management)의 정의, 4가지 활동(형상 식별·통제·감사·기록), 베이스라인 개념, 대표 도구(CVS, SVN, Git)를 정리하고 기출문제로 마무리합니다.

형상 관리(SCM, Software Configuration Management) 는 소프트웨어 개발 생명주기 동안 발생하는 산출물(소스 코드·문서·설정 파일 등)의 변경 사항을 체계적으로 추적·통제하여 무결성1을 유지하는 활동입니다. 4가지 활동(식별·통제·감사·기록)으로 구성되며 대표 도구로 CVS, SVN, Git 이 있습니다.

용어키워드
형상 관리(SCM)변경 사항 추적·통제, 무결성 유지, 도구: CVS·SVN·Git
베이스라인(Baseline)공식 검토·합의를 거친 형상 항목의 기준선
형상 식별관리 대상(형상 항목) 정의 및 베이스라인 설정
형상 통제변경 요구를 검토·승인하여 베이스라인에 반영
형상 감사베이스라인의 무결성·일관성 확인
형상 기록형상 항목의 변경 이력 기록·보고

형상 관리란?

형상 관리(SCM, Software Configuration Management) 는 소프트웨어 개발 과정에서 발생하는 변경 사항을 체계적으로 추적·통제하는 기법입니다.

소프트웨어 프로젝트는 시간이 흐르면서 소스 코드, 설계 문서, 빌드 설정, 테스트 스크립트 등 수많은 산출물이 끊임없이 변경됩니다. 누가, 언제, 어떤 이유로 무엇을 바꿨는지 기록되지 않으면 누가 마지막 수정자인지 모르는 코드, 재현 불가능한 빌드2, 사라진 설계 결정 같은 문제가 발생합니다.

형상 관리는 이런 산출물을 형상 항목(Configuration Item) 으로 식별해 변경 이력을 남기고, 변경 요청을 통제하며, 어느 시점의 산출물 모음으로도 다시 빌드·배포할 수 있도록 보장합니다.

Git으로 비유하면 형상 관리는 프로젝트를 Git 저장소로 관리하는 것과 같습니다. 파일을 고칠 때마다 커밋3을 남기면 누가·언제·왜 바꿨는지가 이력으로 쌓이고, 언제든 원하는 시점의 파일로 되돌아갈 수 있습니다.

형상 관리가 없으면 누가 고쳤는지 모르는 파일 더미에 혼란스러운 감자, 있으면 커밋 이력을 따라 원하는 시점으로 되돌리는 여유로운 감자
커밋 한 줄이 쌓이면 언제든 그 시점으로 돌아갈 수 있다

대표 도구는 CVS, SVN, Git 같은 버전 관리 시스템(VCS)입니다.


베이스라인(Baseline)

베이스라인(Baseline) 은 공식 검토와 합의를 거쳐 확정된 형상 항목의 모음으로, 이후 변경의 기준이 되는 기준선입니다.

요구사항·설계·제품 베이스라인이 프로젝트 진행에 따라 차례로 확정되며 형상 항목이 쌓이는 그림
단계마다 자물쇠를 채워 확정한 묶음이 베이스라인
  • 베이스라인이 설정되면 그 안의 형상 항목은 임의로 수정할 수 없으며, 반드시 정해진 절차(형상 통제)를 거쳐야 변경할 수 있습니다.
  • 프로젝트 단계마다 요구사항 베이스라인 → 설계 베이스라인 → 제품 베이스라인 식으로 단계별 베이스라인이 누적됩니다.
  • 베이스라인이 있어야 "어느 시점의 어떤 산출물 묶음"인지 명확해지며, 회귀(regression)4 시 비교 기준이 됩니다.

Git으로 비유하면 베이스라인은 검토를 마친 커밋에 v1.0 같은 태그5를 붙여 두는 것과 같습니다. 태그를 붙인 시점은 기준이 되어, 나중에 문제가 생기면 v1.0과 지금을 비교해 무엇이 바뀌었는지 찾을 수 있습니다.


형상 관리 4가지 활동

형상 관리는 4가지 활동으로 구성되며, 각 활동은 베이스라인의 무결성을 유지하기 위한 서로 다른 역할을 합니다.

활동역할핵심 키워드
형상 식별(Identification)관리 대상(형상 항목)을 정의하고 베이스라인을 설정식별, 베이스라인 설정
형상 통제(Control)변경 요구를 검토·승인하여 베이스라인에 반영변경 요구 검토·승인, CCB
형상 감사(Audit)베이스라인의 무결성·일관성을 확인검증, 감사
형상 기록(Status Accounting)형상 항목의 변경 이력을 기록·보고변경 이력, 보고서

4가지 활동을 Git 작업 흐름에 대응시키면 다음과 같습니다.

활동Git으로 비유하면
형상 식별어떤 파일을 저장소에 넣어 관리할지 정하고, 확정한 커밋에 태그를 붙임
형상 통제바로 main 브랜치6에 올리지 않고 Pull Request7로 변경을 요청해 리뷰어가 승인해야 합침
형상 감사합치기 전에 자동 테스트가 통과하는지, 배포할 태그에 필요한 파일이 빠짐없이 들어 있는지 확인
형상 기록git log8처럼 누가·언제·무엇을 바꿨는지 이력을 남기고 조회
형상 식별·통제·감사·기록 4가지 활동을 감자 4명이 태그 붙이기, 승인 도장, 돋보기 점검, 장부 기록으로 나눠 맡은 흐름도
태그 붙이고, 도장 받고, 점검하고, 적어 둔다

1. 형상 식별 (Configuration Identification)

  • 어떤 산출물을 형상 항목으로 관리할지 결정하고 식별자를 부여합니다.
  • 베이스라인을 정의하여 변경 통제의 기준을 마련합니다.

2. 형상 통제 (Configuration Control)

  • 변경 요청(CR, Change Request)이 들어오면 변경 통제 위원회(CCB, Change Control Board) 가 영향도·일정·비용을 검토하고 승인 또는 기각합니다.
  • 승인된 변경만 베이스라인에 반영됩니다. "변경 요구를 검토·승인하여 베이스라인에 반영"이라는 지문이 나오면 형상 통제입니다.

3. 형상 감사 (Configuration Audit)

  • 베이스라인이 요구사항을 충족하는지, 형상 항목의 무결성과 일관성이 유지되는지 검증합니다.
  • 기능 감사(FCA, Functional Configuration Audit), 물리 감사(PCA, Physical Configuration Audit)로 나뉩니다.
    • 기능 감사(FCA): 만든 소프트웨어가 요구사항에 적힌 기능을 실제로 수행하는지 테스트 결과로 확인합니다. 예를 들어 요구사항의 "회원 가입 시 이메일 인증" 기능이 테스트에서 실제로 동작했는지 봅니다.
    • 물리 감사(PCA): 배포할 산출물(실행 파일·소스 코드·문서)이 베이스라인에 기록된 내용과 똑같이 갖춰져 있는지 확인합니다. 예를 들어 배포 패키지에 들어간 소스 코드 버전과 사용자 매뉴얼이 베이스라인의 목록과 일치하는지 봅니다.

4. 형상 기록 (Status Accounting)

  • 형상 항목의 식별 정보, 변경 이력, 베이스라인 상태를 기록·보고하여 누구나 현재 상태를 추적할 수 있도록 합니다.

형상 관리 도구

형상 관리 도구는 소스 코드와 산출물의 변경 이력을 추적·통제하는 버전 관리 시스템(VCS, Version Control System) 을 가리킵니다. 시험에서 자주 등장하는 도구는 다음 세 가지입니다.

도구풀네임분류특징
CVSConcurrent Versions System중앙 집중식초기 오픈소스9 VCS. 파일 단위 버전 관리
SVNSubversion중앙 집중식CVS의 한계를 보완. 파일뿐 아니라 디렉토리10와 메타데이터11의 변경 이력까지 관리
GitGit분산형(DVCS)개발자마다 전체 이력을 담은 로컬 저장소12를 가진 분산 버전 관리. 현재 표준

중앙 집중식 vs 분산형

  • 중앙 집중식(Centralized VCS): CVS, SVN. 단일 중앙 서버에 모든 이력이 저장되며 클라이언트13는 서버에 의존합니다. 서버 장애 시 작업이 어려워집니다.
  • 분산형(Distributed VCS): Git, Mercurial. 모든 개발자가 전체 이력을 가진 로컬 저장소를 보유합니다. 오프라인 작업과 빠른 분기·병합14이 가능합니다.

Git으로 비유하면 git clone으로 저장소를 받는 순간 내 PC에도 전체 이력이 복사됩니다. 그래서 GitHub 서버가 잠시 멈춰도 내 PC에서 커밋을 계속 쌓고 이력을 볼 수 있습니다. 반대로 SVN은 커밋할 때마다 중앙 서버에 접속해야 합니다.

중앙 서버가 멈추면 모두 멈추는 중앙 집중식과, 각자 전체 이력 사본으로 계속 커밋하는 분산형을 비교한 감자 그림
서버가 쓰러져도 Git 감자는 내 PC의 이력에 계속 커밋한다

정보처리기사 실기 기출문제

문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.
문제를 불러오는 중이에요.

Footnotes

  1. 무결성: 데이터가 허락 없이 바뀌지 않고 온전하게 유지되는 상태입니다. ↩

  2. 재현 불가능한 빌드: 예전에 만들어 배포한 프로그램을 똑같이 다시 만들어 낼 수 없는 상태입니다. 그때 어떤 버전의 소스 코드와 설정 파일을 썼는지 기록이 없으면, 고객이 쓰는 버전에서 난 오류를 다시 일으켜 보거나 고칠 수 없습니다. ↩

  3. 커밋(commit): Git에서 파일 변경 내용을 설명 메시지와 함께 이력 한 칸으로 저장하는 것입니다. ↩

  4. 회귀(regression): 새로 고친 코드 때문에 예전에는 잘 되던 기능이 다시 망가지는 것입니다. 베이스라인과 비교하면 무엇이 바뀌어 문제가 생겼는지 찾을 수 있습니다. ↩

  5. 태그(tag): 특정 커밋에 v1.0처럼 이름표를 붙여 나중에 바로 찾아갈 수 있게 하는 Git 기능입니다. ↩

  6. 브랜치(branch): 원본 이력에서 갈라져 나와 따로 작업하는 작업 갈래입니다. main 브랜치는 보통 배포 기준이 되는 원본 갈래입니다. ↩

  7. Pull Request: 내 브랜치의 변경을 main 브랜치에 합쳐 달라고 요청하고, 다른 사람이 검토·승인하는 GitHub 기능입니다. ↩

  8. git log: 저장소의 커밋 이력(작성자·날짜·메시지)을 보여 주는 Git 명령입니다. ↩

  9. 오픈소스: 소스 코드가 공개되어 누구나 무료로 쓰고 고칠 수 있는 소프트웨어입니다. ↩

  10. 디렉토리: 파일을 담는 폴더, 즉 폴더 구조를 말합니다. ↩

  11. 메타데이터: 파일 내용이 아니라 파일 이름·속성처럼 파일에 딸린 부가 정보입니다. ↩

  12. 로컬 저장소: 서버가 아니라 개발자 자기 PC에 있는 저장소입니다. ↩

  13. 클라이언트: 서버에 접속해 작업하는 개발자 PC입니다. ↩

  14. 분기·병합: 작업 갈래를 나눴다가(분기) 다시 하나로 합치는(병합) 것입니다. ↩


메가커피와 함께, 홈페이지 개선에 참여하세요! ☕
혹시 이용에 불편한 점이나 개선이 필요한 부분을 발견하셨나요? 댓글로 알려주시면 더 나은 감자가 될 수 있어요! 🥔 제보해주신 모든 분께 메가커피 기프티콘을 드립니다! (본인 이메일로 댓글 달아주셔야해요~)

관련 글

(15개)
제목태그업데이트시험
URL 구조
인터페이스SW개발인터페이스
2026-06-26-
EAI와 ESB - 기업 애플리케이션 통합
인터페이스SW개발인터페이스
2026-04-29-
테스트 레벨(단위, 통합, 시스템, 인수 테스트)과 V 모델
테스트SW개발테스트
2026-01-11-
SW개발15개
제목태그업데이트시험
URL 구조
인터페이스SW개발인터페이스
2026-06-26-
EAI와 ESB - 기업 애플리케이션 통합
인터페이스SW개발인터페이스
2026-04-29-
테스트 레벨(단위, 통합, 시스템, 인수 테스트)과 V 모델
테스트SW개발테스트
2026-01-11-
테스트 케이스 구성 요소
테스트SW개발테스트
2026-01-10-
SW 개발 왕감자 정보처리기사 실기 모의 시험
SW개발SW개발
2025-11-04응시
AJAX, Fetch API 등 - 인터페이스 통신 기술
SW개발정처기인터페이스SW개발
2026-06-29-
데이터 표현 형식 - JSON, XML, YAML
인터페이스SW개발인터페이스
2025-10-07-
인터페이스 정보처리기사 실기 모의 시험
인터페이스SW개발인터페이스
2025-10-07응시
IPSec - AH, ESP, 전송/터널 모드
인터페이스SW개발인터페이스
2025-10-07-
테스트 자동화(하네스) 구성요소
테스트정처기SW개발테스트
2025-10-07-
테스트 커버리지, 블랙박스, 테스트 자동화 정보처리기사 실기 모의 시험
테스트SW개발테스트
2025-10-07응시
웹 서비스 인터페이스 - SOAP와 REST
인터페이스SW개발인터페이스
2025-10-23-
블랙박스 테스트 유형 정리
테스트SW개발테스트
2026-09-29-
인터페이스 보안 암호화 프로토콜(PPTP, L2TP, SSL, S-HTTP)
인터페이스SW개발인터페이스
2025-10-25-
테스트 커버리지 종류 구문(문장), 결정, 조건, MC DC
테스트SW개발테스트
2026-07-17-
정처기 감자정처기 감자

정보처리기사 합격
도와줄라고 하는 감자

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매

실기 이론

  • 이론 공부법
  • DB
  • 네트워크/OS
  • SW 설계
  • SW 개발
  • 보안/신기술

시험 응시

  • 시험장 찾기
  • 원서 접수
  • 응시자격 서류

요약 PDF

  • 26년 3회 이론 압축
  • 26년 3회 코딩 압축
  • 초압축 25년 3회
  • 압축 25년 3회

기출문제

  • 전체 기출문제
  • 25년 3회
  • 25년 2회
  • 문제 포럼

감자 이용권

  • 이용권 구매
© 2025 재현기획개발. All rights reserved.
  • 정처기 감자의 시작
  • 업데이트 로그
  • 개인정보 처리방침
  • 이용약관
상호명 : 재현기획개발 / 주소: 서울특별시 영등포구 영등포로 150, 지하1층 108호 L145 가라지(당산동1가, 생각공장 당산) / 대표: 김재현 / 전화: 010-8158-7127 / 통신판매업신고: 제2025-서울영등포-1569호 / 이메일: contact@edugamja.com / 사업자등록번호: 573-51-00999