일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 완전탐색
- 자바 코테
- 에라토스테네스의채
- 백준
- 순열
- 전화번호속의암호
- 삼성역테
- 자바
- 중복조합
- 재귀함수
- 백준15652
- Bfs와DFS
- D드라이브생성
- 파티션 크기 조정
- java
- 정올 1620
- 코테준비
- 백준13458
- N과M
- 코테
- 완탐
- 알고리즘
- 23288
- 알고리즘개념
- 정보처리기사
- BFS
- 중복순열
- 주사위굴리기2
- 볼륨 만들기
- 백준2251
- Today
- Total
뚱땅뚱땅
[2020 정보처리기사 필기] 2.3.47 소프트웨어 버전 관리 도구 본문
# 필기 참고: 2020 시나공 정보처리기사 필기 2. 소프트웨어 개발 >3.제품 소프트웨어 패키징
1. 공유 폴더 방식
버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
- 개발자: 개발 완료된 파일을 약속된 공유 폴더에 매일 복사
- 담당자: 공유 폴더 파일을 자기 PC로 복사-> 컴파일->이상 유무 확인
- if 파일 오류 확인, 해당 파일 등록한 개발자에게 수정 의뢰
- if 이상x, 각 개발자들이 동작 여부 다시 확인
- 파일의 변경 사항을 데이터베이스에 기록하여 관리
- SCCS,RCS, PVCS, QVCS
2. 클라이언트/서버 방식
버전 관리 자료가 서버(중앙 시스템)에 저장되어 관리
- 서버의 자료를 자신의 PC(client)로 복사하여 작업한 후 변경된 내용을 서버에 반영
- 모든 버전 관리: 서버
- 하나의 파일을 서로 다른 개발자들이 수행할 경우: 경고 메시지 출력
- 서버에 문제 생기면, 서버 복구 전까지 다른 개발자와의 협업 및 버전 관리 작업 중단됨.
- ex. CVS, SVN(Subversion), CVSNT, Clear Case, CMVS, Perforce
3. 분산 저장소 방식
버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식
- 원격 저장소의 자료를 로컬 저장소로 복사하여 작업 -> 변경된 내용을 로컬 저장소에서 우선 반영(버전 관리)-> 원격 저장소에 반영
- 로컬 저장소에서 버전 관리 가능-> 원격 저장소에 문제 생겨도 로컬 저장소의 자료를 이용하여 작업 가능
4. Subversion (SVN)
CVS를 개선한 것
- 클라이언트/서버 구조. 서버(저장소, Repository)에는 최신 버전의 파일들과 변경 내역 관리
- 서버의 자료: 클라이언트로 복사해와서 작업 -> 변경 내용을 서버에 반영(Commit)
- 모든 개발 작업: trunk 디렉토리에서 수행. 추가작업: branches 디렉토리안에 별도의 디렉토리 만들어 작업 완료후 trunk 디렉토리와 병합(merge)
- commit할 때마다 revision 1 증가
* revision: commit version. 처음 저장소 만들면 revision 0
- 클라이언트는 대부분의 os에서 사용됨, 서버: 주로 유닉스
- 소스: 오픈-> 무료로 사용가능
- 파일이나 디렉터리의 이름 변경 이동 가능
- 주요 명령어
명령어 | 의미 |
add |
- 새로운 파일이나 디렉터리를 버전 관리 대상으로 등록 - add로 등록되지 않은 대상: commit의 적용 대상 아님 |
commit | 버전 관리 대상으로 등록된 클라이언트의 소스파일을 서버의 소스 파일에 적용 |
update |
- 서버의 최신 commit 이력을 클라이언트 소스 파일에 적용 - commit 전에는 매번 update 수행-> 클라이언트에 적용되지 않은 서버의 변동 내역을 클라이언트에 적용 |
checkout | 버전 관리 정보, 소스파일 -> 서버에서 클라이언트로 받아옴 |
lock/unlock | 서버의 소스 파일이나 디렉터리를 잠그거나 해제 |
import |
아무것도 없는 서버의 저장소에 맨 처음 소스 파일을 저장하는 명령어. 한번 사용하면 다시는 사용 안함 |
export | 버전 관리에 대한 정보를 제외한 순수 소스 파일만을 서버에서 받아옴 |
info | 지정한 파일에 대한 위치나 마지막 수정 일자 등에 대한 정보 표시 |
diff | 지정된 파일이나 경로에 대해 이전 리비전과의 차이 표시 |
merge | 다른 디렉터리에서 작업된 버전 관리 내역을 기본 개발 작업과 병합 |
5. Git
- 분산 버전 관리 시스템. 지역 저장소&원격 저장소
- 지역 저장소: 개발자들이 실제 개발 진행하는 장소. 버전관리가 수행됨
- 원격 저장소: 버전을 공동 관리(for 협업), 자기의 버전 관리 내역을 반영하거나 다른 변경 내용 가져올 때
- 버전 관리: 지역 저장소->버전 관리 신속 처리 가능.
-> 원격 저장소/네트워크 문제에도 ㄱㅊ
- 브랜치 이용시 기본 버전 관리 틀에 영향 안주면서 다양한 형태의 기능 테스팅 가능
- 파일의 변화 형태; 스냅샷으로 저장. 스냅샷: 이전 스냅샷의 포인터를 가짐-> 버전의 흐름 파악 가능
- 주요 명령어
명령어 | 의미 |
add |
- 작업 내용을 지역 저장소에 저장하기 위해 staging area에 추가함. - '--all' 옵션으로 작업 디렉터리의 모든 파일을 스테이징 영역에 추가 |
commit | 작업 내역을 지역 저장소에 저장 |
branch |
- 새로운 브랜치 생성 - 최초 커밋 시 마스터 브랜치 생성 - 커밋할 때 마다 해당 브랜치는 가장 최근의 커밋 내용을 가리킴 - '--d' : 브렌치 삭제 가능 |
checkout |
-지정 브랜치로 이동 - 현재 작업중인 브랜치는 HEAD포인터가 가리킴. 이 명령하면, HEAD포인터를 지정한 브랜치로 이동시킴 |
merge | 지정한 브랜치의 변경 내역을 현재 HEAD포인터가 가리키는 브랜치에 반영 -> 두브랜치 병합 |
init | 지역 저장소 생성 |
remote add | 원격 저장소에 연결 |
push | 로컬 저장소의 변경 내역을 원격 저장소에 반영 |
fetch | 원격 저장소의 변경 이력만을 지역 저장소로 가져와 반영 |
clone | 원격 저장소의 전체 내용을 지역 저장소로 복제 |
fork | 지정한 원격 저장소의 내용을 자신의 원격 저장소로 복제 |
'아카이브' 카테고리의 다른 글
[2020 정보처리기사 필기] 2.4.50 애플리케이션 테스트 분류 (0) | 2020.04.01 |
---|---|
[2020 정보처리기사 필기] 2.3.48 빌드 자동화 도구 (0) | 2020.04.01 |
[2020 정보처리기사 필기] 2.3.46 소프트웨어 버전 등록 (0) | 2020.03.31 |
[2020 정보처리기사 필기] 2.3.43 디지털 저작권 관리(DRM) (0) | 2020.03.31 |
[2020 정보처리기사 필기] 2.3.42 릴리즈 노트 작성 (0) | 2020.03.31 |