지옥에서 온 관리자 Git 정리(2) - (분산)버전관리 시스템

재명·2021년 12월 14일
0

Git-Github

목록 보기
2/2
post-thumbnail

3강 - Git설치 및 Github 회원가입

https://www.youtube.com/watch?v=j5RIYL4rFVU&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=3

1) 구글에서 git download 검색후 운영체제에 맞는 버전을 받는다

2) 받은 파일을 설치후 (앵간한건 다 next) c드라이브에 gitworkspace 폴더 생성 -> 하위에 ex01폴더 생성

3) ex01폴더 안에서 우클릭을 했을때 Git Bash를 실행할 수 있어야함

4) github.com 접속후 회원가입(리캡챠 및 이메일 인증 필요)

5) 로그인 후 +아이콘을 눌러 새 repository 생성





4강 - 버전관리 시스템이란(VCS)

https://www.youtube.com/watch?v=8Y6FE8qolc0&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=4

다음과 같은 상황을 가정해 보자

개발자 A가 file1.txt 작업완료 후 이메일로 팀장님에게 전송 -> 이 파일 내용에 대해서 수정을 요청받음 file1.txt에 덮어쓰기 후 다시 팀장님께 전송했더니, 이전 자료가 더 나은것 같다며 다시 기존 파일을 달라고 함... 이미 기존파일에 덮어쓰기를 한데다가 팀장님도 이메일 지움 ㅋㅋㅋㅋㅋ?...
서로 기존데이터를 소실한 상태에서 이걸 달라고 하니 file1.txt를 다시 만들 수 밖에 없는 상황
그래서 같은상황을 반복하지 않기 위해 file1_v2.txt(새파일)로 만들어 다시 팀장님께 전송
추후 업그레이드 요청시 file1_v3.txt로 만들고 관리하여 버전별 관리가 시작됨


이번에는 파일 100개짜리 큰 프로젝트가 들어오게 되고, 최종 완성 후 이메일로 전송
100개중 file3번의 수정요청이 들어옴.. 근데 하필 file3번이 file20번과 연결이 되있어서
동시에 두개를 수정해야 하는 상황

이전의 버전관리 방식에 따라 (1~100번째 파일까지)전체 프로젝트를 통으로 복사한 뒤
file3 과 file20번을 수정하여 프로젝트ver.2를 만듬


근데 이런 식으로 버전 업그레이드를 반복하면, 통으로 복사를 계속하는 만큼 시간과 용량 손실이 점점 커질 수 밖에 없다

이와같은 상황을 타개하기위해 VCS(Version Control System)이 등장

VCS는 file1.txt를 데이터베이스에 저장시켰을때, 해당 파일을 전체 복사하여 수정본을 저장/관리하는 것이 아닌 변경된 부분만 복사하여 관리해줌. 각버전의 수정부분을 제외한부분은 일일히 복사할 필요없이 원문 그대로 남아있었기 때문에 훨씬 효율적이었다

그러나 VCS도 치명적인 약점이있었는데.. 바이러스에 걸리면 끝장이었고, 로컬에서만 사용가능했기 때문 협업을 할 수 없다는 점 등이 있었다.



이를 해결하기 위한 대안으로 각 버전의 자료들을 외부 컴퓨터에서 총체적으로 관리하는 CVCS(Centralized Version Control System)가 고안됨

CVCS를 통해 협업을 어느정도 가능케한 발전이 있었으나 여전히 치명적인 단점이 있었는데, 만약 개발자A가 CVCS를 통해 내용을 업데이트 했을때 이를 모른채로 개발자B가 동일 명의 파일을 올리면 개발자A가 업데이트한 내용은 사라진다, 이사실을 모른채로 B가 다시 해당파일을 CVCS를 통해 내려받으면 기존데이터는 완전히 소실된다...
협업이 불가능에서 가능의 영역으로 발전한것은 굉장한 것이라 볼 수 있겠지만, 이에 엄청난 주의를 요하며 여전히 바이러스, 오류에 취약한 상황

결론적으로 이를 해결하기위해 나온것이 DVCS(Distributed Version Control System) - Git이다





5강 - 분산 버전관리시스템(DVCS)

https://www.youtube.com/watch?v=IiEFOjTFEKk&list=PL93mKxaRDidFtXtXrRtAAL2hpp9TH6AWF&index=5

서로다른 개발자 A,B가 CVCS를 통해 동일한 파일 file1.txt를 관리 한다고 하자. 개발자A,B가 모두 file1.txt안에 1) 안녕 이라는 내용을 담아 공유하고 있었는데, A가 여기에 2) 반가워라는 내용을 추가해서 업로드함, CVCS에서는 기존파일의 폐기 후 file1.txt(ver.2)로 업그레이드 하여 관리하게 되는데
CVCS는 내부 DB를 통해 이와같은 변경점들에 대한 History를 가지고 있으나 개발자들에겐 해당사항이 없었고, 이는 파일을 다시 CVCS로부터 내려받더라도 마찬가지였다

이부분에 대한 개선안으로써 나온것이 DVCS이다

자료를 자유롭게 주고받는다는 측면에서는 CVSC와 거의 비슷하다 볼 수 있으나, 각 사용자들이 해당 자료의 변경 History를 공유할 수 있으며, 이를 통해 중앙 컴퓨터가 바이러스 감염등의 피해를 입더라도 로컬에서 가지고있던 종단점까지의 모든 자료를 다시 업로드하는 것만으로도 복구가 가능하기 때문에 이전 CVCS의 단점을 거의 다 보완했다고 할 수 있다.

profile
개발자가 되고싶은 늦깎이 코린이

0개의 댓글