버전이란?🤷♀️
버전은 기존 프로젝트에서 개선된 것을 수정하는 건데요. 이때 수정은 유의미한 수정을 꼭 해야 합니다.
예를 들어 ABC를 A B C로 수정을 하긴 했지만 ABC의 의미가 달라지는 게 아니게 됩니다. ABC를 EFG로 수정을 했다면 유의미한 수정이기 때문에 이는 새로운 버전이 될 수 있는 것입니다.
이렇게 버전을 만들어 놓으면 관리하는 데도 사용이 될 뿐더러, 백업이나 롤백이 가능하기 때문에 유지보수 하는데 있어서 아주 편리합니다.
이렇게 좋은 버전을 관리해 주는 시스템이 있는데요. 이걸 VCS(Version Control System)이라고 합니다.
VCS는 3차례에 걸친 변화가 있었는데요.
버전의 종류 🔍
1. 로컬 VCS : RCS
제일 처음 나온 VCS이며, 로컬 말 그대로 내 컴퓨터에서만 사용되는 시스템으로 버전마다 파일을 가져와 수정을 할 수 있는데요. 파일만 가져오다보니 용량이 적게 드는게 특징입니다. 하지만 로컬에서 관리하기 때문에 협업을 할수 없는데요. 뿐만 아니라 바이러스나 데이터베이스가 날아갈 경우에는 복구가 힘듭니다.
2. 중앙집중식 VCS(CVCS) : SVN, CVS
중앙 집중 방식은 다른 개발자와의 협업을 하기 위해서 개발됐는데요. 파일을 관리하는 중앙에 서버가 별도로 존재하고 클라이언트가 서버에서 파일을 받아서 사용을 했었습니다. CVCS는 누가 무엇을 하고 있는지 알 수 있었고 로컬에서 관리하는 것보다 훨씬 쉬웠는데요. 문제는 중앙 서버에 문제가 생기면 그 시간 동안 다른 사람들과 협업을 할 수 없고 백업도 안될뿐더러 서버 하드에 문제가 발생할 경우에는 프로젝트의 모든 히스토리가 사라지는 치명적인 단점이 있었습니다.
3. 분산 VCS(DVCS) : Git, Mecurial, Bazzar
이 CVCS를 보완해서 나온 게 바로 분산 버전 관리 시스템입니다. DVCS의 가장 큰 특징으로는 파일이 아닌 저장소 자체를 복제하기 때문에 로컬과 서버에 각각 소스코드와 히스토리가 존재하는데요 이 때문에 중앙서버에 문제가 발생하더라도 PC의 소스들을 이용해서 원상 복구가 가능할뿐더러 오프라인 상태여도 작업이 가능하며 내 히스토리도 마찬가지로 보존이 가능합니다.
오늘도 파이팅🐣
'프로젝트 > 프로젝트 관리' 카테고리의 다른 글
[git] git 명령어 (init, remote, add, commit, log, status, push, pull) (0) | 2023.12.02 |
---|---|
[git] git add와 staging area (0) | 2023.12.01 |
[git] git 과 github 시작하기 (0) | 2023.12.01 |
마크다운 문법 정리 (0) | 2023.12.01 |
리드미(README.md) 작성하기 (0) | 2023.12.01 |