본문 바로가기
CS/Other

Git과 Github에 대해서...

by Jman 2022. 4. 3.

[ Git ]

  • 로컬에서 관리되는 버전 관리 시스템 (VCS : Version Control System)
  • 소스코드 수정에 따른 버전을 관리해주는 시스템

 

[ Github ]

  • 클라우드 방식으로 관리되는 버전 관리 시스템
  • 자체 구축이 아닌 빌려 쓰는 클라우드 개념
  • 오픈소스는 일정 부분 무료로 저장 가능, 아닐 경우 유료 사용
  • 분산 버전 제어, 엑세스 제어, 소스코드 관리, 버그 추적, 기능 요청 및 작업관리 제공하는 플랫폼
  • 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스

 

위에 정리한 걸 풀어 설명하자면,

깃은 로컬에서 버전 관리 시스템을 운영하는 방식이고,

깃허브는 저장소를 깃허브에서 제공해주는 클라우드 서버를 이용한다는 차이입니다.

따라서,

다른 사람들과 협업을 하게 될 경우, 또는 오픈 소스를 공유하고 다른 사람들의 의견을 듣고 싶은 경우 등등.

깃허브를 이용하여 다양한 목적으로 해당 기능을 사용하실 수 있습니다.

만약 폐쇄적인 범위 내에서 협업이라면 깃만 사용해도 무방합니다.

 

여기서 잠깐,
버전 관리 시스템(VCS : Version control System) 이란?
코드가 변경된 부분을 모두 기억해준다는 의미입니다.
코드가 수정될 때마다 파일로 일일이 따로 저장해주거나, 수동으로 백업해두기가 번거로운데, 이런일을 대신해줍니다.
어떤 부분이 수정 됐는지 쉽게 볼 수 있고, 
수정된 부분을 이전 버전으로 롤백(rollback)하는 등의 편리한 기능들을 가지고 있습니다.
코드 수정에 따른 위험성을 줄일 수 있기 때문에 굉장히 많이 사용합니다.

 

???????

 

 

  • 소스코드의 관리가 왜 필요할까? 

> 웹사이트 및 웹 애플리케이션의 규모가 점점 커지고 있고, 이에 따라 수 많은 개발자들이 협업을 통해 서비스를 개발하고 있습니다.

여러 개발자가 코드를 각자 관리하면, 서비스 배포를 위해서 각자가 가지고 있는 코드들을 취합하는 과정을 거쳐야하는데, 이 부분에서 온갖 에러가 날 것입니다. 이 부분을 해결하기 위해서 더 많은 시간이 걸리기 때문에, 여러 개발자가 소스코드를 함께 관리하고 비교적 실시간으로 관리 되어야하는 환경이어야만이 리소스를 줄이는 방법입니다.

 

 

 

  • 버전 관리 시스템 종류는?

> Local VCS

> CVCS(Centralized VCS) 중앙 집중식 버전관리 시스템 

> DVCS(Distributed VCS) 분산 버전관리 시스템

https://git-scm.com/book/en/v2/Getting-Started-About-Version-Control

 

 

 

  • 분산 버전 관리 시스템(깃) 장점이자 다른 버전관리에 비해 나은 점은?

> 중앙 서버의 문제가 있어도 클라이언트 PC의 소스를 통한 원상 복구가 가능합니다. 그리고 여러 명이 동시에 작업하는 병렬 개발이 가능합니다.