현재 선택한 정보처리 과정

정보처리기사 필기 이론 학습

이론 목록으로 돌아가기

버전·형상·릴리스·배포·롤백

버전과 형상 기준선을 관리하고 릴리스 변경 내용, 배포 절차 및 롤백 조건을 정리한다.

예상 읽기 3

핵심 범위

버전 관리는 소프트웨어의 변경 이력을 추적하고, 형상 관리는 소스 코드뿐 아니라 빌드 파일·문서·설정 등 제품을 구성하는 항목 전체를 식별하고 통제한다. 릴리스와 배포에서는 승인된 버전을 적용하고 문제가 생기면 이전 상태로 복구할 수 있어야 한다.

버전 관리와 형상 관리

구분내용
버전 관리파일의 변경 이력, 작성자, 시점, 이전 상태를 관리
형상 식별관리할 형상 항목과 기준선을 정함
형상 통제변경 요청을 검토·승인하고 반영
형상 상태 기록변경·버전·배포 상태를 기록하고 보고
형상 감사승인된 기준과 실제 형상이 일치하는지 확인

형상 항목에는 소스 코드, 빌드 스크립트, 설정 파일, 데이터 변경 스크립트, 테스트 자료, 매뉴얼 등이 포함될 수 있다.

변경 통제에서는 변경 요청을 접수하고 영향·비용·일정을 분석하여 권한 있는 주체가 승인·보류·거부를 결정한다. CCB는 이러한 변경 의사결정의 책임을 맡는 대표적인 조직 형태다.

저장소 기본 용어

  • 저장소(Repository): 버전 이력과 파일을 보관한다.
  • 커밋 또는 체크인: 변경 내용을 저장소에 기록한다.
  • 체크아웃: 저장소의 특정 버전을 작업 공간으로 가져온다.
  • 브랜치: 독립된 변경 흐름을 만든다.
  • 병합(Merge): 분리된 변경 내용을 하나로 합친다.
  • 태그(Tag): 릴리스 등 특정 시점을 식별한다.

대표 방식과 도구

방식특징대표 도구
로컬 파일 이력 관리개별 파일의 수정 이력을 관리SCCS, RCS
클라이언트·서버 방식중앙 저장소를 기준으로 관리CVS, SVN
분산 방식각 개발자가 전체 저장소 이력을 보유Git, Mercurial

버전 관리 도구의 자동 병합 성공이나 충돌 표시 제거는 의미적 정합성의 보증이 아니다. 병합 후 각 변경의 의도를 검토하고 관련 확인·회귀 테스트를 수행한다.

Git의 작업 상태

작업 디렉터리 → 스테이징 영역 → 로컬 저장소 → 원격 저장소를 구분한다. 수정한 내용을 스테이징하고 커밋하면 로컬 이력에 저장된다. 다른 개발자와 공유하려면 원격 저장소로 전송하는 과정이 필요하다.

파일을 B로 수정해 스테이징한 뒤 작업 파일만 C로 바꿨다면, 추가 스테이징 없이 커밋할 때 기록되는 내용은 B다. 병합 충돌은 양쪽 변경의 의도를 검토하고 관련 테스트로 확인한다.

버전 번호와 릴리스 노트

의미적 버전 관리(SemVer)의 주.부.수정 규칙은 공개 API의 호환성을 기준으로 다음처럼 해석한다. 모든 제품이 이 규칙을 따르는 것은 아니다.

  • 주 버전: 호환되지 않는 큰 변경
  • 부 버전: 기존 기능과 호환되는 기능 추가
  • 수정 버전: 기존 기능과 호환되는 오류 수정

릴리스 노트에는 버전, 주요 변경 사항, 수정된 오류, 설치 전 조건, 호환성, 알려진 문제 등을 기록한다.

배포와 롤백

  1. 배포 대상 버전과 환경을 확인한다.
  2. 현재 상태와 중요 데이터를 백업한다.
  3. 승인된 패키지를 배포한다.
  4. 서비스 기동과 핵심 기능을 확인한다.
  5. 문제가 발생하면 중단 기준에 따라 이전 버전으로 복구한다.
  6. 배포 결과와 복구 여부를 기록한다.

롤백은 운영 환경을 이전의 정상 상태로 되돌리는 활동이다. 소스 코드만 이전 버전으로 되돌리는 것과 운영 데이터·설정까지 복구하는 것은 구분해야 한다.