본문 바로가기

2021 정보처리기사/2과목: 소프트웨어 개발

[2021 정보처리기사] 소프트웨어 형상관리(버전관리)

728x90
반응형

목차

 

 

 

 

[정보처리기사 2과목 필기 예상 키워드] 목록으로 돌아가기
과목: 2. 소프트웨어 개발
챕터: 3장 제품 소프트웨어 패키징
키워드: 형상관리(SCM)
#형상관리도구

 

 

 

소프트웨어 패키징의 형상 관리

형상관리(SCM; Software Configuration Management)란 개발 과정에서 변경사항을 관리하기 위한 일련의 활동이다

소프트웨어 변경의 원인을 알아내고 제어하며 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보
형상 관리는 소프트웨어 개발의 모든 단계 및 유지보수 단계에서도 수행된다
형상 관리는 개발 전체 비용을 줄이고 여러 방해요인 최소화 보증을 목적으로 한다
관리 항목에는 소스 코드뿐만 아니라 각종 정의서, 지침서, 분석서 등이 포함된다.

 

 

형상 관리의 중요성

🚔 지속적인 소프트웨어 변경 사항을 체계적으로 추적 및 통제
🚱 소프트웨어에 대한 무절제한 변경을 방지
🤢 버그나 수정 사항 추적
🚩 진행 정도 확인을 위한 기준으로 사용 가능(
소프트웨어는 가시성이 없으므로)
🤞   배포본을 효율적으로 관리
🧏‍♀️ 여러 명의 개발자가 동시에 개발 가능

 

 

 

형상 관리 관련 주요 기능(용어)

저장소(Repository) 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 공간
가져오기(Import) 버전 관리가 되고 있지 않은 아무것도 없는 저장소(Repository)에 처음으로 파일 복사
체크아웃(Check-Out) 저장소에서 파일을 받아온다 / 소스파일과 함께 버전관리를 위한 파일을 받아온다
체크인(Check-In) 체크아웃 한 파일의 수정을 완료한 후 저장소(Repository)에 새로운 버전의 파일로 갱신
커밋(Commit) 체크인 수행시 이전에 갱신된 내용이 있는 경우 충돌을 알리고 Diff 도구로 수정 후 갱신 완료
동기화(Update) 저장소에 있는 최신 버전으로 자신의 작업공간을 동기화
차이(Diff) 새로운 개발자가 추가된 파일의 로그(Change Log)를 확인하면서
이전 개발자가 처음 추가한 파일과 이후 변경된 파일의 차이 확인
브랜치(Branch; 가지) 메인 개발 과정과 별도로 새로운 기능의 테스트와 같이 추가적인 작업을 수행하기 위한 서브 디렉토리. branches 디렉토리 하위에 작업별 디렉토리를 만들고 그 안에서 개발을 진행한다. 이후 이 별도의 개발 결과를 Trunk와 병합할 수 있다.
트렁크(Trunk; 몸통) 개발 메인 디렉토리. 소스 파일과 추가 작업을 위한 서브 디렉토리(branch)가 존재.

 

 

 

소프트웨어 형상 관리(버전 관리)도구

(1) 공유폴더 방식(SCCS, RCS, PVCS, QVCS 등)
(2) 서버/클라이언트 방식(Subversion(SVN)
, CVS, CVSNT, Clear Case, CMVC, Perfoce 등)
(3) 분산저장소 방식(Git
, Gnu arch, DCVS, Bazzar, Mercurial, TeamWare, Bitkeeper)
형상 관리 도구의 저장 위치별 차이
  공유폴더  서버/클라이언트  분산저장소
버전 관리자료 저장 위치 로컬PC 공유폴더에 저장 서버에 저장 원격+로컬 저장소에 함께 저장

 

 

 

Subversion(SVN) vs Git(Github)

✔ Subversion(SVN)은 클라이언트/서버 구조 서버(Repository)에 최신 버전의 파일과 변경 내역이 관리된다.
Git은
분산 버전 관리 시스템으로 2개의 저장소, 즉 로컬저장소와 원격저장소(Github)가 존재한다.

👻  Git에 대해 더욱 자세하게 알아보기 (링크)
SVN을 이용한 버전관리 Git을 이용한 버전관리


SVN 주요 명령어 Git 주요 명령어
add 새로운 파일 등록 add  작업파일 스테이징
commit 서버저장, 적용 commit 로컬저장, 적용
update 최신 커밋이력 동기화 branch 추가작업영역 생성
checkout 서버에서 받기(버전+소스) checkout 지정브랜치로 이동
lock/unlock 파일,디렉터리 잠금/해제 push 로컬->원격 반영
import 서버에 첫 저장(1회사용) init 로컬 저장소 생성
export 서버에서 받기(소스만) remoteadd 원격 저장소 연결
info 위치/마지막 수정일자 fetch 원격->원격 복제(변경이력만)
diff 리비전과의 차이 clone 원격->로컬 복제(전체)
merge 브랜치+트렁크 merge 브랜치+브랜치
revision 커밋의 버전(0에서 시작) fork 지정원격 저장소->원격 복제

 

 

 

 

 

 

 

[2021 정보처리기사 키워드 정리] 2. 소프트웨어 개발 (상시업데이트)

[2021 정보처리기사 키워드 정리] 2. 소프트웨어 개발 2021년 정보처리기사 공부를 위해 각 과목/챕터 별 Best 키워드를 정리해 놓은 글입니다. 시나공 문제집의 기출빈도와 중요도를 기준으로 정리

y-oni.tistory.com

참고: 시나공 정보처리기사 필기 (저자: 강윤석, 김용갑, 김우경, 김정준 | 출판사: 길벗), 유튜브 주간컴공TV

728x90