Programming

[언그래머] 서른두번째 아티클_버전 관리 시스템도 종류가 있다니

송코딩 songcoding 2023. 10. 10. 08:00

안녕하세요 여러분!

김송아입니다.

 

 

연휴가 끝난 화요일이네요!! 다들 잘 주무셨나요 :)

 

저는 요즘 날씨가 시원해지다보니, 이불 속은 더 포근해지고🥹

'인간은 왜 일어나야 하는가'를 수없이 반복하다 일어나요...😇ㅋㅋㅋㅋㅋ

 

이건.. 해피투게더 였죠?ㅋㅋㅋㅋㅋ

 

이런 박명수님의 명언을 벗삼아ㅋㅋㅋ

일찍 일어난 여러분들께 존경의 박수를 보내봅니다👏🏻👏🏻👏🏻

 

-

 

오늘은 지난 시간의 버전(version)에 이어 버전 관리 시스템의 종류에 대해 알아보려 합니다!

버전은 유의미한 변화, 수정를 말한다고 했었는데, 그런 수많은 버전을 관리해주는 시스템이 있다고 했었죠?

 

버전 관리 시스템은 브랜드를 막론하고 공통적으로 제공하는 기능이 있습니다.

- 버전 관리

- 백업 복구

- (선택) 협업

 

 

버전 관리 시스템이 제공하는 기능 중 협업이 선택일 수 있다니..? 

 

협업을 위해
버전 관리 시스템 쓰는 거 아니었어?!?!?

 

라고 생각하시는 경우도 많으실 것 같습니다.

 

혹시 버전 관리 시스템(Version Control System)로 크게 3가지 종류가 있다는 것, 알고 계셨나요?

놀랍게도 버전 관리 시스템은 다음과 같이 3가지 종류가 있습니다.

1. 로컬 VCS
2. 중앙집중식 VCS
3. 분산 VCS

 

 

1. 로컬 VCS

별도 서버를 사용하는 것이 아니라, 로컬 컴퓨터 내에서만 버전을 관리할 수 있습니다.

로컬 컴퓨터 내에서만 사용하다니! VCS는 협업에 사용하기는 힘들겠죠?

 

즉, 다음과 같이 여러개의 버전들을 깔끔하게 관리해주는 목적만 달성한 방법이라고 볼 수 있습니다.

 

@위키백과

 

 

2. 중앙집중식 VCS

하나의 서버를 두고, 사용자들이 이 서버에 접근하여 수정을 원하는 파일만 로컬에 받아 작업하는 방법을 제공합니다.작은 프로젝트의 협업을 위해 사용될 수 있습니다.

 

하지만 하나의 서버에서 필요한 파일만 받아 사용하기 때문에

✔️ 혹시 그 서버에 이슈가 생긴다면 모든 이력이 날아가는 등 문제가 커질 수 있고

✔️ 접근 포인트가 한 군데이기 때문에 프로젝트의 크기가 좀더 커진다면, 충돌 문제도 생길 수 있겠죠.

 

대표적인 시스템으로 아파치 SVN(SubVersion), CVS(Concurrent Versions System) 등이 있습니다.

SVN
CVS

 

위 로고가 비슷한 걸 봐서 아시겠지만, SVN이 CVS의 단점을 보완하여 나온 소프트웨어랍니다!

SVN은 2000년대 중반까지 가장 많이 쓰이는 버전 관리 시스템이었습니다.

참고.CVS는 90년대에 개발되어 널리 쓰였던 시스템이지만, 주로 사용감이 복잡하다는 이유로 SVN이 개선되어 나왔고,
2005년을 끝으로 과거가 된 시스템입니다.

 

 

Apache Subversion

Apache® Subversion® "Enterprise-class centralized version control for the masses" Welcome to subversion.apache.org, the online home of the Apache® Subversion® software project. Subversion is an open source version control system. Founded in 2000 by Col

subversion.apache.org

 

Concurrent Versions System - Summary [Savannah]

Concurrent Versions System - Summary This group is not part of the GNU Project. CVS is a version control system, an important component of Source Configuration Management (SCM). Using it, you can record the history of sources files, and documents. It fills

savannah.nongnu.org

 

 

3. 분산식 VCS

하나의 서버를 사용하는 것은 동일하지만, 수정을 위해 프로젝트 전체를 로컬에 받아 작업한다는 것이 큰 차이점입니다.그렇다보니 서버의 상태와 상관없이 모두 안정적이게 작업할 수 있게 되었죠.

 

서버 올릴 때만 충돌을 신경쓰면 되는 장점으로 대형 프로젝트에 적합한 구조입니다.

 

대표적인 시스템으로는 Git, Mecurial, Bazaar 등이 있습니다.

 

 

깃이라 쓰고 갓이라 읽는

 

2010년도 전후로 스마트폰의 등장을 필두로 프로젝트들이 점점 더 커지면서 자연스럽게 분산식 VCS의 장점을 많이 쓰게 되긴 했지만,

Git 기능은 물론 성능까지 갓-벽하다보니 자연스럽게 Git의 세상으로 넘어온 것 같습니다.

 

 

-

 

이렇게 분류해보니 어떠신가요?

'아~ 그래서 내가 그렇게 쓰는구나!' 를 느끼셨다면 충분한 목표 달성을 한 것 같습니다ㅎㅎ

 

 

하지만 깃,, 깃허브,, 사용하기 까다롭고 어려운 용어 투성이라는 걸 너무 잘 알고 있어요.

그래서 다음엔 깃과 깃허브에 대해서 파고들어보도록 하겠습니다🫡

 

 

그럼 여러분, 오늘도! 이번주도!!!

좋은 일들만 일어나는 하루가 되시길💚

 

감기 조심하시구요!!!!

 

 

감사합니다.

김송아 드림

 

👆🏻클릭이 될까?