Antilog의 개발로 쓰다
article thumbnail
반응형

참고 - git-scm.com/book/en/v2/Getting-Started-About-Version-Control

 

Git - About Version Control

1.1 Getting Started - About Version Control This chapter will be about getting started with Git. We will begin by explaining some background on version control tools, then move on to how to get Git running on your system and finally how to get it set up to

git-scm.com

✨ 버전 관리..?

버전 관리 시스템이란?

파일 변화를 시간에 따라 기록하고 특정 시점 버전을 다시 꺼낼 수 있는 시스템.

이게 왜 필요할까? 버전 관리를 하지 않으면?

극단적인 예시로

  1. 100만장에 종이 중 무작위 5장에 A라고 적었다.
  2. 그 5장에 B라고 적고 섞어두었다.
  3. B라 적은 내용을 새로 고쳐 C라고 써야한다..

위 상황에서 버전관리를 사용하지 않았다면?

100만장에 종이를 다 찾아보고 그 중 AB가 적힌 종이 5장을 찾아 AC로 고쳐적어야하는 엄청난 번거로움이 있습니다.

 

하지만 각 상황마다 버전을 기록하고 관리해두었다면?

그냥 1번 버전으로 돌아가서 3번을 수행하면 됩니다.

 

정말 더 쉽게 말하자면 뒤로가기가 가능하다는 것을 의미합니다.

 

어떠한 프로젝트나 컴퓨터 파일이 업데이트 되는 과정에서

극단적 예시에서 처럼 수정사항이 발생했거나,

이전 버전과 비교가 필요하거나,

파일의 손상이 일어나 이전 버전으로 복구해야하거나,

파일을 잘못 고친 경우 복구가 필요할때 등등

버전 관리 시스템인 (VSC - Version Control System)을 이용하여 위에 적은 여러 상황에서 아주 간편하게 해결할 수 있습니다!

 

✨ 버전 관리 시스템의 종류.

1️⃣ Local VCS.

가장 쉽고 간편하게 할 수 있는 버전 관리 방법은 파일을 각 시점마다 복사해두는 것인데,

위와 같이 저장하는 방식으로 아주 간단하고 쉽지만, 반대로 변형되기도 쉽고 삭제, 변경에 대해 취약하여 잘못되어도 알아낼 방법이 없습니다.

그렇기에 이를 더 쉽게 할 수 있게 하고자 간단한 DB에 파일의 변경 정보를 담아 관리하는 로컬 VSC라는 것이 만들어 졌습니다.

위와 같은 방식인데 모든것이 로컬 컴퓨터에 있기에 다른 컴퓨터에선 해당 DB에 접근하기 어려운데, 이러한 문제를 해결하기 위해 개발된 것이 CVCS-Centralized Version Control Systems 입니다.


2️⃣ CVCS-Centralized VCS. 중앙 집중식 버전관리 시스템

파일 관리를 하는 중앙 서버에 DB가 있어 각 로컬에서 해당 서버에서 파일을 받아서 사용합니다.

각 로컬에서 관리하지 않고 중앙에서 관리하기에 관리가 쉽고 서버 기록을 보면 누가 뭘했는지도 알 수 있습니다.

다만 CVCS도 단점이 있는데, 중앙 서버가 작동하지 않으면 각 버전의 정보를 받아올 수 없고. 중앙 서버 하드에 문제가 생기면 각 로컬로 가저간 스냅샷( 어느 특정한 버전, 상태에대한 기록)은 무사하지만 전체적인 히스토리를 잃을 수 있습니다.

이러한 문제가 개선된 것이 DVCS -Distributed Version Control Systems 입니다.


2️⃣ DVCS -Distributed VCS.  분산 버전관리 시스템.

로컬 VCS와 CVCS의 각각을 가져왔다고 생각할 수 있습니다.

단순하게 어느 버전에 대한 기록인 스냅샷을 가저오는 것이 아니라 저장소 히스토리와 모든 것을 복사해 옵니다.

로컬에서 버전 관리 DB를 만들어 서버에 올릴 수 도 있고, 다른 컴퓨터 로컬에 복사해서 줄 수 있습니다.

서버에 문제가 생기면 로컬 복제 데이터로 작업이 가능합니다. 더불어 서버의 하드에 손상이가도 아무 컴퓨터나 골라서 복구가 가능하다.

 


이들 중 우리가 사용하는 Git은 DVCS에 해당하며

내 디렉토리 안에 .git 디렉토리가 Version Database인 것이고 GitHub의 Repository가 서버에 Version Database가 되는 것이다.

 

다음 글에선 git이 다른 VCS와 차별화된 점과 깃이 관리하는 파일에 대해 자세하게 알아볼 예정입니다.
반응형
profile

Antilog의 개발로 쓰다

@Parker_J_S

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!

profile on loading

Loading...