[Git] 1. 버전과 버전 관리 시스템

Jimmy Joo·2021년 11월 9일
0

GIT

목록 보기
1/1
post-thumbnail

버전이란?📍

버전(version)이란 이전과 약간씩 다른 변화들을 구분하는 표시입니다.

버전을 표시하는데 숫자를 많이 사용하지만 꼭 숫자만 사용하는 것은 아닙니다.
예를 들어, macOS Monterey나 Window XP처럼 연도나 다른 기호를 통해 버전을 나타낼 수 있습니다.

버전을 부여하려면 소스 코드를 구별할 수 있는 의미 있는 변화가 있어야 합니다.

프로그램 개발 과정에서 수많은 코드가 변경되고 이를 안정되게 유지하기 위해 버전 관리가 필요합니다.


버전 관리 시스템 📍

버전 관리 시스템(VCS, Version Control System): 코드와 콘텐츠의 변화를 관리하고 추적하는 소프트웨어입니다.


로컬 VCS

아주 간단한 데이터베이스를 사용해서 파일의 변경 정보를 관리합니다.
예) RCS(Revision Control System) - Patch Set(파일에서 변경되는 부분)을 관리하고 특별한 형식의 파일로 저장합니다.


중앙집중형 VCS

모든 소스 코드가 한 곳에 집중되어 있습니다. 클라이언트-서버 모델이라고도 불립니다.

  • 장점: 저장소 하나를 중심으로 관리하기 때문에 시스템을 운영하기 쉽습니다. 모두 누가 무엇을 하는지 확인할 수 있습니다.
  • 단점: 중앙 저장 공간인 서버에 문제가 생기면, 소스 코드가 있는 메인 저장소에 모든 개발자가 접근할 수 없는 심각한 상황이 발생할 수 있습니다. 또 동시에 여러 개발자가 접근하면 충돌이 발생하기에 코드 수정을 안정적으로 할 수 있게 잠금 모델을 적용합니다. 파일을 변경하려면 개발자들은 순서대로 대기하고 있어야 합니다.


분산형 VCS

저장소가 여러 개 있습니다. 저장소와 그 안에 있는 히스토리를 전부 복제합니다. 즉, 저장소가 여러 개 존재합니다. 여러 저장소에 각 버전별 소스를 개별 보관합니다.
각 개발자에게 공유 가능한 저장소 사본을 제공합니다. 서버는 각 저장소 자료를 동기화하고 중개하는 역할만 수행합니다.
앞으로 학습할 git이 현재 가장 많이 사용하는 분산형 VCS입니다.

  • 장점: 메인 서버에 문제가 생기더라도 클라이언트(개인)의 저장소 중에서 골라 서버를 복원할 수 있습니다. 지속적으로 개발할 수 있습니다.
  • 단점: 익숙해지는 데 시간이 걸릴 수 있습니다.



참고 👏

0개의 댓글