[2과목 : 소프트위어 개발] - 소프트웨어 버전 관리 도구
( 공유 폴더 / 클라이언트&서버 방식/ 분산 저장소 방식/ 서브 버전/ Git )
정보처리기사 필기 대비/ key point 정리 / 요약 정리 / 핵심
◎ 공유 폴더 방식
공유 폴더 방식은 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
- 개발자들은 개발이 완료된 파일을 약속된 공유 폴더에 매일 복사
- 담당자는 공유 폴더의 파일을 자기 PC로 복사한 후 컴파일 하여 이상 유무를 확인
- 이상 유무 확인 과정에서 파일이 오류가 확인되면, 해당 파일을 등록한 개발자에게 수정을 의뢰
- 파일에 이상이 없다면 개발자들이 동작 여부를 다시 확인
- 파일을 잘못 복사하거나 다른 위치로 복사하는 것에 대해비하기 위해 파일의 변경 사랑을 데이터베이스에 기록
◎ 클라이언트 / 서버 방식
클라이언트/ 서버 방식은 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식
- 서버의 자료를 개발자별로 자신의 PC(클라이언드)로 복사하여 작업한 후 변경된 내용을 서버에 반영
- 모든 버전 관리는 서버에서 수행
- 하나의 파일을 서로 다른 개발자가 작업할 경우 경고 메시지 출력
- 서버에 문제가 생기면, 서버가 복구되기 전까지 다른 개발자와의 협업 및 버전 관리 작업이 중단
◎ 분산 저장소 방식
분산 저장소 방식은 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식
- 개발자별로 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업한 후 변경된 내용을 로컬 저장소에서 우선 반영한 다음 이를 원격 저장소에 반영 (로컬 -> 원격)
- 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제 생겨도 로컬 저장소의 자료를 이용하여 작업가능
◎ Subversion (서브 버전, SVN)
- 클라이언트/ 서버 구조로, 서버에는 최신 버전의 파일들과 변경 내역이 관리 됨
- 서버의 자료를 클라이어트로 복사해와 작업한 후 변경 내용르 서버에 반영(Commit)
- 모든 개발 작업은 trunk 디렉터리에서 수행되며, 추가 작업은 branches 디렉터리 안에 별도의 디렉터리를 만들어 작업을 완료한 후 trunk 디렉터리와 병합(merge)한다.
- 커밋(Commit)할 때마다 리버전(Revision)이 1씩 증가
- 클라이언트는 대부분의 운영체제에서 사용되지만, 서버는 주로 유닉스를 사용
- 오픈 소스 = 무료
- 파일이나 디렉터리의 이름 변경, 이동 가능
- 주요 명령어_ 기본적인 명령어는 알아두기!
add |
새로운 파일이나 디렉터리를 버전 관리 대상으로 등록 add로 등록되지 않은 대상은 commit 적용 불가 |
commit | 버전 관리 대상으로 등록된 클라이언트의 소스 파일을 서버의 소스파일에 적용 |
update |
서버의 최신commit 이력을 클라이언트이 소스 파일에 적용 |
checkout | 버전 관리 정보와 소스 파일을 서버에서 클라이언트로 받아옴 |
lock/unlock | 서버의 소스 파일이나 디렉터리를 잠그거나 해제 |
import | 아무것도 없는 서버의 저장소에 맨 처음 소스 파일을 저장하는 명령 |
export | 버전 관리에 대한 정보를 제외한 순수한 소스 파일만을 서버에서 받아옴 |
info | 지정한 파일에 대한 위치나 마지막 수정 일자 등에 대한 정보를 표시 |
diff | 지정된 파일이나 경로에 대한 이전 리비전과의 차이를 표시 |
merge | 다른 디렉터리에서 작업된 버전 관리 내역을 기본 개발 작업과 병합 |
◎ Git (깃)
- Git은 분산 버전 관리 시스템으로 2rodml 저장소 ( 지역 저장소, 원격 저장소)가 존재
- 지역 저장소는 개발자들이 실제 개발을 진행하는 장소( 버전 관리 수행)
- 원격 저장손는 여러 사람들이 협업을 위해 버전을 공동 관리하는 곳
- 버전관리가 지역 저장소에서 진행되므로 버전 관리가 신속. 원격 저장소나 네트워크에 문제가 있어도 작업 가능
- 브랜치를 이용하면 기본 버전 관리 틀에 영향을 주지 않으면서 다양한 형태의 기능 테스팅 가능
- 파일의 변화를 스냅샷으로 저장, 스냅샷은 이전 스냅샷의 포인터를 가짐 -> 버전의 흐름 파악 가능
- 주요 명령어_기본적인 명령어는 알아두기! ( 표시한 것만이라도 알아두자)
add | 작업 내역을 지역 저장소에 저장하기 위해 스테이징 영역에 추가 |
commit | 작업 내역을 지역 저장소에 저장 |
branch |
새로운 브랜치 생성 최초로 commit을 하면 마스터branch가 생성 |
checkout | 지정한 브랜치로 이동 |
merge | 지정한 브랜치의 변경 역을 현재 HEAD포인터가 가리키는 브랜치에 방영함으로써 두 브랜치 병합 |
init | 지역저장소를 생성 |
remote add | 원격 저장소에 연결 |
push | 로컬 저장소의 변경 내역을 원격 저장소에 반영 |
fetch | 원격 저장소의 변경 이력만을 지역 저장소로 가져와 반영 |
clone |
원격 저장소의 전체 내용르 지역 저장소로 복제 |
fork |
지정한 원격 저장소의 내용을 자신의 원격 저장소로 복제 |
'[정보처리기사] - 2020new필기' 카테고리의 다른 글
[정보처리기사 필기 핵심] - 관계형 데이터베이스의 구조 ( 튜플/ 속성/ 도메인/ 릴레이션) & 문제 (0) | 2020.03.01 |
---|---|
[정보처리기사 필기 핵심] - 데이터베이스 설계 (개념적/ 논리적/ 물리적) & 문제 (0) | 2020.02.29 |
[정보처리기사 필기 핵심] - 모듈 연계를 위한 인터페이스 기능 식별 ( EAI / ESB) (0) | 2020.02.28 |
[정보처리기사 필기 핵심]- 테스트 기법에 따른 애플리케이션 테스트 ( 화이트 박스 테스트/ 블랙 박스 테스트) (0) | 2020.02.27 |
[2과목 : 소프트위어 개발] - 통합구현 (0) | 2020.02.26 |