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
'2021 정보처리기사 > 2과목: 소프트웨어 개발' 카테고리의 다른 글
[2021 정보처리기사/2과목] #테스트 프로세스 (0) | 2021.04.10 |
---|---|
[2021 정보처리기사/2과목] #어플리케이션 테스트(블랙박스, 화이트박스) (0) | 2021.04.10 |
[2021 정보처리기사] 소프트웨어 패키징(SW 패키징) (0) | 2021.04.08 |
[2021 정보처리기사] 개발지원도구 / IDE, 빌드도구, 기타 협업도구 (0) | 2021.04.08 |
[2021 정보처리기사 필기 요약] 단위 모듈 테스트 (0) | 2021.04.07 |