소프트웨어 버전관리

김덕근·2023년 1월 18일
0

정보처리기사

목록 보기
17/17

소프트웨어 버전관리 도구

동일한 소스 코드에 대한 여러 버전을 관리하는 것

  1. 공유 폴더 방식
    매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사
    종류 : RCS, SCCS, PVCS, QVCS 등

2 클라이언트/서버 방식
중앙에 버전 관리 시스템이 항시 동작
종류 : CVS, SVN, Clear Case등

  1. 분산 저장소 방식
    로컬 저장소와 원격저장소 구조
    종류 : Git, BetKeeper

버전 관리 도구별 특징

CVS
중앙에 위치한 Repository에 파일을 저장하고, 인가된 모든 사용자가 파일에 접근할 수 있다.

SVN
최초 1회에 한해 파일 원본을 저장하고, 그 이후에는 실제 파일이 아닌 원본과 차이점을 저장하는 방식

Git
리누스 토발즈가 리눅스 커널을 개발하기 위해 만들었다.

Clear Case
IBM에서 개발된 유료 버전의 형상 관리 툴
서버가 부족할 때 서버를 하나씩 늘려 확장할 수 있다.

BitKeeper
SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 버전관리 도구

RCS
소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일을 잠금하는 방식으로 버전 컨트롤을 수행

SVN 버전 관리 주요 용어

기본 문서들을 최초로 import 한다.
Repository 저장소
Checkout Repository에서 로컬로 프로젝트를 복사
Commit 로컬의 변경된 내용을 Repository에 저장
Update Repository에 있는 내용을 로컬에 반영
Add 로컬에서 새로운 파일이 추가되었을 때 Repository에 등록
Trunk Root 프로젝트
Branch Root 프로젝트에서 파생된 프로젝트
Merge Branch에서 진행하던 작업을 Root프로젝트와 합침
Diff 파일의 비교

백업과 복구

재난 복구 전략시 성과 지표
RTO(Recovery Time Objective) - 업무 중산 시점부터 복구되어 가동될 때까지 시간 목표
RPO(Recovery Point Objective) - 재해 발생 시 데이터 손실을 수용 손실 허용 시점
MTD(Maximum Tolerable Downtime) - 장애 시 업부가 정지 상태를 허용하는 최대 시간

백업과 복구를 위한 전략

풀-이미지 백업 - 데이터 풀(full) 이미지를 백업하여 즉각적으로 이용할 수 있는 복구 시점을 생성
차등 백업 - 마지막 풀 - 이미지 백업 이후부터 발생한 모든 변경 사항을 백업한다.
증분 백업 - 마지막 풀 - 이미지 복구 시점 이후부터 변경된 사항을 점차적으로 백업
실시간 백업 - 지속적인 백업, 즉각적으로 모든 변경사항을 분리된 스토리지 디바이스에 복사
합성 백업 - 기본 백업과 후속 차등 백업으로부터 전체 백업을 구성하거나 통합하는 방식

빌드 자동화 도구

소스코드 파일들을 컴퓨터에서 실행할 수 있는 소프트웨어로 변환하는 일련의 과정

빌드
개발자가 저장장소에 코드를 커밋(Commit)한다.

테스트
JenKins나 Ansible과 같은 배포 자동화 툴에서 새로운 코드를 인식하고 일련의 테스트를 수행한다.(릴리즈 할 수 있다.)

배포
소프트웨어를 운영 환경에 배포하여 사용자에게 제공한다.

빌드 자동화 도구 종류

Make
유닉스 계열 운영체제에서 주로 사용되는 프로그램 빌드 도구이다

Ant
Java 기반의 빌드도구로 다른 빌드 도구보다 역사가 오래되었다.

Maven
프로젝트에 필요한 모든 Dependency(외부 라이브러리 목록)를 리스트 형태로 Maven에게 알려 관리할 수 있도록 돕는 방식이다.

Jenkins
Java기반의 오픈소스로 소프트웨어 개발 시 지속적 통합(continuous Integration)서비스를 제공하는 툴

Gradle
Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로 안드로이드 앱 개발 환경에서 사용

profile
안녕하세요!

0개의 댓글