📝

1. Git & GitHub 기본 개념

1. Git과 GitHub의 가장 큰 차이

  • 만든사람이 다릅니다.
    • Git은 리누스 토르발즈가, GitHub 회사는 2008년 톰 프레스턴워너(Tom Preston-Werner), 크리스 완스트래스(Chris Wanstrath), 피제이 하이엣(PJ Hyett)이 공동 설립하였습니다.
  • 다른 서비스입니다.
    • Git은 분산 버전 관리 시스템이며 GitHub은 루비 온 레일즈로 만들어진 웹 서비스입니다.
    • Git은 내 컴퓨터에 설치되는 SW이며, GitHub은 웹 서비스입니다.
  • Git기반의 웹 서비스가 GitHub 뿐만은 아닙니다. GitLab 등 다양한 서비스가 있어요.

2. Git과 GitHub

분산 버전 관리 툴Git을 관리해주는 웹 호스팅 서비스가 바로 GitHub입니다. 2008년에 설립되어 2018년도에 MS가 인수하였을 만큼 유명하고 범용적으로 사용되는 서비스입니다.
 
"깃헙 주소 알려주세요."
 
요즘 이력서를 작성할 때, 또는 개발 회사에서 만든 접수 플랫폼에 접수할 때 대부분 GitHub 주소를 명시하게 되어 있습니다. 그만큼 협업을 위한 필수 툴 중 하나입니다.
 
notion imagenotion image
 
회사에 입사했는데 프로젝트 관리가 이와 같이 되어 있다고 가정해보겠습니다. 아래와 같은 사항들이 불편할 것입니다.
  • 유지보수
  • 저장 용량
  • 언제 어떤 코드가 수정되었는지 확인(추적관리)
  • 코드 공유(코드 저장, 만약 파일이 저장된 노트북을 잃어버린다면?)
  • 버전 관리
 
내용을 카테고리 별로 정리해보도록 하겠습니다.
  1. 용량 : 파일이 N개라면 N * 파일용량 → 수정 내역만 저장(Git)
  1. 협업 : 파일 주고 받기, 누가 수정했는지, 얼마만큼 수정되었는지, 프로젝트 보드(GitHub, GitLab 등의 타 서비스 이용 가능)
  1. 관리 : 원하는 Version으로 되돌리기(Git), Code 피드백과 리뷰(GitHub)
 
Git, GitHub은 무료 오픈 소스이면서도 우리가 Code로 협업하는데 필요한, 위에서 언급한 불편한 사항에 대해 대부분의 솔루션을 제공해줍니다.
 
일단 GitHub(깃허브)를 이해하려면 Git(깃)이라는 프로그램을 알아야 합니다. Git은 버전 관리 도구 중 가장 선호도가 높은 프로그램입니다.
 
Git은 로컬 저장소(내 컴퓨터)와 원격 저장소(서버 컴퓨터)로 나뉩니다. 내 컴퓨터에서 작성한 프로젝트를 원격 저장소에 저장해두고, 만약 내 컴퓨터의 프로젝트가 손상되거나 다른 컴퓨터에서 코드를 가져오고 싶을 때는 원격 저장소에서 바로 가져올 수 있습니다. 이때, 코드 뿐만 아니라 코드의 변경 내역까지 모두 가져올 수 있기 때문에 Git이 "버전 관리 도구"라고 불립니다.
 
위니브위니브
위니브
 
이렇듯 Git에서 원격 저장소는 코드의 원본이나 변경 내역을 저장하는 매우 중요한 역할을 합니다. 이러한 기능을 하는 툴을 형상 관리(Configuration Management) 툴이라고 부릅니다. Git, SVN, CVS등에 툴이 있고 현재 가장 많이 사용되고 있는 것이 Git입니다.
 
이러한 Git을 클라우드 환경에서 사용할 수 있게 제공하는 공간이 GitHub입니다. GitHub가 단순히 저장소 역할만 하는 것은 아닙니다. GitHub는 개발자들 사이의 거대한 커뮤니티를 형성하고 있습니다. 자신의 프로젝트는 물론 다른 개발자들의 인기 있는 프로젝트의 코드를 볼 수 있고, 이슈(issue)를 제기할 수 있으며, 원한다면 다른 이의 프로젝트를 수정하고 발전 시키는 데에 참여할 수 있습니다. 이를 오픈소스에 기여(contribution)한다고 합니다.
 
또한 프로젝트 관리, Code Editer 제공, 심지어 블로그도 Github으로 사용할 수 있게 됨으로 지금은 하나의 생태계를 이루고 있습니다.
 

읽어 볼만한 글