<--애드센스--> <--네이버웹마스터-->

[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

지정한 원격 저장소의 내용을 자신의 원격 저장소로 복제

 

+ Recent posts