DevBlackCat
정보처리기사: 버전 관리 와 백업과 복구와 빌드 자동화 완전 정복!! 본문
728x90
소프트웨어 버전 관리 도구
소스 코드의 다양한 버전을 관리
① 공유 폴더 방식 (RCS)
- 공유폴더에 복사후 담당자가 일일이 체크
② 클라이언트 서버 방식
- 중앙서버에 항상 버전 관리 시스템 운영
- CVS,SVN,Clear,Case등
③ 분산 저장소 방식
- 로컬과 원격저장소를 가짐
- 로컬에서 작업후 원격저장소에 반영
- Git,Betkeeper
tip:
GIT은 스냅샷 방식으로 공간을 절약
특정 컴포넌트의 일련의 버전을 코드라인이라고한다
베이스라인은 특정 시점이나 목적을 의미한다.
버전 관리 도구 특징
① CVS
- 오랜기간 사용된 형상 관리도구로 다양한 운영체제를 지원
- 중앙에 위치한 Repository에 파일을 저장하고, 인가된 모든 사용자가 접근 가능
- 과거 이력 확인 가능 커밋중 오류가 발생하면 롤백되지않음
- 덮어쓰기 방지 있고, 속도가 느리고, 디렉토리 변동이 불편
② SVN (CVS 보완 버전)
- 최초 1회 파일원본을 저장하고 그이후에는 실제 파일이 아닌 원본과 차이점을 저장
- 커밋 실패시 롤백가능
- 언제든지 원하는 시점으로 복구 가능
- Trunk,Branche,Tag의 폴더로 구성해서 관리
③ Git
- 리눅스 커널 개발을 위해 만듬
- 성능이 SVN,CVS보다 우수
- 팀개발을 위한 분산 환경 코딩에 최적화
- 원격 Repository에 장애가 있어도 버전 관리가 가능
주요 용어
용어 | 설명 |
Repository | 저장소 |
Checkout | Repository 에서 로컬로 프로젝트를 복사 (작업전 최초로 git에서 pull 하는거) |
Commit |
로컬의 변경을 Repository 에 저장 (내컴퓨터에서 프로젝트 수정후 git 서버로 커밋) |
Add | 로컬에서 새로운 파일이 추가될떄 Repository 에 등록 |
Trunk | Root 프로젝트 (Git에서 main 브랜치) |
Branch | Root 프로젝트에서 파생된 프로젝트 |
Merge | 브랜치에서 진행하던걸 root와 합침 (git에서 mian 브랜치랑 다른 브랜치랑 합치는거) |
Diff | 파일의 비교 |
백업과 복구
재난 복구 전략 시 성과 지표
용어 | 설명 |
RTO | - 업무 중단 부터 복구 및 재가동이 목표 - 업무 중단을 얼마나 허용할지 시간 (시간) |
RPO | - 재해 발생후 데이터 손실 범위 - 데이터 손실을 얼마나 감당할지 시점 (데이터) |
MTD | - 업무 중단의 최대 시간 |
RTO는 복구할수있는 목표시간이고, MTD는 장애를 허용하는 최대 시간으로 비슷하지만 기준이 조금 다름
그외 RP가 있는데 RP는 실제 업부 기능 복구 까지 걸리는 시간이다.
백업과 복구를 위한 전략
용어 | 설명 |
풀 이미지 백업 | - 전체 데이터 백업 |
차등 백업 | - 마지막 풀 이미지 백업 이후, 모든 변경사항을 백업 |
증분 백업- | - 마지막 풀 이미지 백업 이후, 점차적으로 변경된 사항 백업 |
실시간 백업 | - 변경사항을 즉시 백업, 분리된 스토리지에 실시간 복사 (장비 두대) |
합성 백업 | - 기본백업 + 후속 증분 백업으로 전체 백업 구성/통함 |
풀 이미지 백업
차등 백업
증분 백업
차등백업은 최초 풀 이미지 백업이후 변경사항을 하나로 저장하지만
증분 백업은 각각 하루 별로 변경사항을 저장한다.
절차
- 작성 지침 정의
- 구성 요소 정의
- 구성 요소별 내용 작성
- 사용자 메뉴얼 검토
작성 항목
- 기본사항
- 고객 지원 방법 및 FAQ
- 준수 정보 & 제한 보증
빌드 자동화 도구
빌드 자동화의 개념
소스 코드를 실행 가능한 소프트웨어로 변환하는 과정
지속적인 통합을 지원
특징
- 자동 빌드 , 테스트 배포 수행
- 소스코드 컴파일후 실행가능한 애플리케이션 자동 생성
① 빌드
- 개발자가 저장소에 코드를 커밋한다.
- 운영 환경과 동일한곳에 커밋
② 테스트
- JenKins 이나 Ansible 같은 배포 자동화 툴에서 새로운 코드를 인식하고 테스트를 수행한다.
- 테스트 총과시 운영환경으로 배포 할수있다.
③ 배포
- 사용자에게 배포
빌드 자동화 도구 종류 ★★
종류 | 설명 |
Make | - 유닉스 계열에서 주로 사용 - 파일 간의 종속성 기반 |
Ant | - Java 기반, XML 스크립트로 개발 - 빌드 스크립트 재사용이 어려움 |
Maven | - Dependency 관리 - 정해진 라이프 사이클에 따라 작업 |
Jenkins | - 지속적 통합 서비스 제공 - 다양한 형상 관리 도구와 연동 가능 |
Gradle | - Groovy 기반, 안드로이드 개발 환경에 주로 사용 - 다양한 언어에 대한 빌드 지원 |
728x90
'정보처리기사 > 소프트웨어 개발' 카테고리의 다른 글
정보처리기사: 소프트웨어 테스트 , 테스트 커버리지 (2) 완전 정복!! (0) | 2024.11.04 |
---|---|
정보처리기사: 소프트웨어 테스트, 테스트 오라클 (1) 완전 정복!! (1) | 2024.11.01 |
정보처리기사: 제품 소프트웨어 메뉴얼 완전 정복!! (1) | 2024.10.31 |
정보처리기사: 소프트웨어 패키징 완전정복!! (0) | 2024.10.28 |
정보처리기사:통합구현 관리 완전 정복!! (0) | 2024.10.25 |