코딩을 공부하는 사람이라면 GitHub에 대해 한번쯤은 들어본 적 있을 것이다.
Git이 무엇이고, 왜 개발자들이 많이 사용하는지에 대해 정리해봤다.
버전 관리 시스템(VCS)이란?
특정 문서 또는 소프트웨어 등의 버전을 안전하게 관리(기록, 유지, 갱신) 하는 시스템.
VCS의 종류로는 크게 3가지가 있다.
1. 로컬형 버전 관리 시스템(Local VCS)
가장 먼저 고안된 버전 관리 시스템
사용자의 컴퓨터에 관리할 버전 내용을 저장한다.
비교적 사용하기 간단하나, 다른 사람들과의 공유가 어렵고,
사용자의 컴퓨터에 문제가 생겼을 때 복구가 어려운 단점이 있다.
2. 중앙집중식 버전 관리 시스템(Centralized VCS)
다른 개발자와 협업을 해야 하는 상황에서 local VCS로는 버전 관리가 쉽지 않다.
그래서 고안된 것이 중앙집중식 버전 관리 시스템(CVCS)이다.
여러 사용자의 버전 관리 내용을 사용자의 컴퓨터가 아닌 중앙 서버에서 관리한다.
하나의 중앙 서버에서 팀원의 역할, 권한 등을 관리할 수 있기 때문에 편리하지만,
중앙 서버에 문제가 생길 경우 모든 팀원들이 작업을 할 수 없게 되며,
서버가 날아갈 경우 이때까지 쌓아온 프로젝트에 대한 정보(소스코드 및 데이터베이스 등)가
날아갈 수 있다는 위험성이 있다.
3. 분산 버전 관리 시스템(Distributed VCS)
CVCS의 문제들은 서버가 파일 및 파일 변경 이력 등을 독점하게 때문에 발생한다.
분산 버전 관리 시스템(DVCS)에서는 중앙에서 관리하고 있던 모든 이력을 가진 저장소를 복사하여,
각 사용자들의 컴퓨터로 가져와 사용한다.
사용자의 컴퓨터에서는 local로 개발을 할 수 있으며,
이를 중앙 서버로 보낼 수도 있고, 중앙 서버의 진행상황을 사용자의 컴퓨터로 갱신시켜서 사용할 수도 있다.
때문에, 중앙서버에 문제가 생겨도 사용자의 local 저장소에 저장된 데이터로 복구시키기가 용이하며
공동작업을 하는 팀원들 모두가 이러한 저장소 정보를 갖고 있으므로 서버와 일부 사용자의 데이터가 날아가도
복구가 가능하다.
이 분산 버전 관리 시스템 중에 가장 유명하고, 널리 쓰이는 것이 Git 이다.
Git
- 따로 파일을 전달할 필요없이 저장소에 있는 코드를 가져와 여러 사용자가 코드의 기능을 작성할 수 있으며(동시성),
- 코드가 잘못되었을 경우에 코드를 되돌릴 수 있는 기능(가역성),
- 또한 그 코드를 되돌릴 수 있는 기록과 작성자를 알 수 있는 기능(기록성)이 있기에
git이 개발자들의 사이 협업에 많이 사용된다.
GitHub
github는 git 저장소를 관리하는 클라우드 기반 호스팅 서비스이다.
git 저장소 호스팅 서비스는 클라우드 기반으로 다른 사람과 소스코드 공유가 가능하며 git의 기본적인 기능을 확장하여 제공한다.
또한 클라우드 서버에 소스를 올리기 때문에 한 프로젝트에 여러 명의 사람이 참여하여 버전 제어 및 공동 작업이 가능하다.
'Git' 카테고리의 다른 글
특정 프로젝트에 있는 파이썬 패키지만 requirements.txt 로 만들기 - pipreqs (0) | 2022.12.23 |
---|---|
GitHub Actions를 이용한 EC2 서버 CI/CD (0) | 2022.12.20 |
GitHub 사용 방법 - Commit, Push, Pull (0) | 2022.12.12 |
GitHub 사용 환경 구축하기(2) - Visual Studio Code 연동 (0) | 2022.12.12 |
GitHub 사용 환경 구축하기(1) - 클론 만들기 (0) | 2022.12.12 |