깃과 깃허브에 대해 알아보자 | 깃들다

hoya·2021년 10월 17일
0

깃들다

목록 보기
1/3
post-thumbnail

😮 Git?

버전 관리 소프트웨어

버전 관리는 개발자 입장에서 필수 요소 중 하나이다. 혹시 모를 상황을 대비해 이전 버전을 백업해야 하고, 협업을 함에 있어서도 어떤 부분을 어떻게 수정했는지 늘 공유해야 하기 때문에 버전 관리는 매우 중요하다.

그리고 깃은 이 버전 관리를 돕는 소프트웨어중 하나고, 여러가지 장점을 지니고 있어 현재 시장에서 가장 각광받는 버전 관리 시스템이다. 어떤 장점을 가지고 있는지 천천히 알아보도록 하자.

👨‍👨‍👦‍👦 분산형 버전관리

버전 관리 시스템(Version Control System)은 Git 이전에도 많이 있었다. 그러나 이것들은 서버에서 히스토리를 관리하는 중앙집중식 버전 관리(Centralized Version Control)의 형태를 띄었는데, 애로사항이 있었다.

1. 서버에 문제가 생기면 개발자들의 업무가 마비된다.
2. 인터넷에 문제가 생겨도 개발자들의 업무가 마비된다.

이를 대응하고자 나온 것이 바로 개개인이 히스토리를 관리하는 분산형 버전관리(Distributed Version Control)로, Git 역시 이 종류에 속해있는 버전 관리 시스템 중 하나이다.

1. 서버에 문제가 생겨도 개발자들은 서로의 정보를 이용하여 업무를 진행할 수 있다.
2. 오프라인, 즉 로컬 환경에서도 업무를 진행할 수 있다.
3. 모든 정보를 개인이 가지고 있기 때문에, 속도 역시 매우 빠르다.

📷 스냅샷 버전관리

버전 관리를 하는 방법도 Git 은 획기적인 방법을 채택했다. 기존 버전 관리를 할 때 사용했던 방법은 델타 베이스드 버전 관리(delta-based version control)이다.

위 사진은 델타 베이스드 버전 관리의 예시로, 델타라는 이름에 맞게 버전별로 각각 변경된 내용만 가지고 있는 모습을 볼 수 있다. 이로 인해 특정 버전의 데이터를 조회하려면 초기 버전부터 특정 버전까지 히스토리를 연쇄적으로 계속 적용해야 하고, 속도 저하라는 결과로 나타나기도 했다.

이에 반해 Git은 프로젝트의 전체 내용을 사진 찍듯이 스냅샷 형태로 보관한다. 이렇게 되면 용량이 커지지 않느냐는 우려가 생길 수 있지만, Git에서는 변경되지 않은 파일은 이전 파일에 링크를 걸어줌으로 문제를 해결하여 굉장히 가벼운 형태로 버전을 관리한다. 또한, 버전 사이를 이동할 때도 속도가 저하되지 않는다는 장점이 있다.


🤸‍♂️ 간략하게 정리하기

  1. 깃은 항상 모든 파일의 변화를 기록하고 있다.
    누가, 어디서, 얼마나, 무엇을 변경했는지 모두 기록한다.
  2. 다른 역할을 가진 사람들끼리도 같은 파일을 가지고 함께 작업할 수 있다.
  3. 단순히 코드뿐 아니라, 모든 컴퓨터 파일 역시 관리할 수 있다.
  4. 서버나 인터넷에 문제가 생겼을 때도 문제 없이 작업이 가능하다.
  5. 개개인이 서버를 지니고 있는 형태로, 메인 서버의 부담이 적어지고 속도 역시 빠르다.
  6. 여러 브랜치로 기능을 실험해볼 수 있다.

😮 Github?

GitHub is how people build software.
GitHub는 사람들이 소프트웨어를 개발하는 방법입니다.

Github는 Git의 저장공간을 제공하는 서비스이다. 저장공간을 제공하는 서비스 역시 Github 말고도 많이 존재하지만, 현재 시장에서 가장 각광받고 있는 상태이다. 깃허브의 장점은 다음과 같다.

  1. 일반적인 코드 백업이 가능하다.
  2. 다른 사람들이 올린 코드를 열람하고 다운로드 하여 학습할 수 있다.
  3. 여러 오픈소스 프로젝트가 공유되며, Contributor 가 되어 기여할 수 있다.
  4. 나의 프로젝트 역시 다른 사람들이 보고 오류 사항을 발견해 해결책을 제안할 수 있다.
  5. 대부분의 서비스가 무료로 제공된다.

참고 및 출처

깃, 깃허브 이건 알고 사용하자
깃. 깃허브. 기초개념 잡아드림. 5분 순삭.

profile
즐겁게 하자 🤭

0개의 댓글