HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📚
위니브 책 모음(공개 링크)
/
알아서 잘 딱 깔끔하고 센스있게 정리하는 GitHub 핵심 개념
알아서 잘 딱 깔끔하고 센스있게 정리하는 GitHub 핵심 개념
/
📝
1. Git & GitHub 기본 개념
📝

1. Git & GitHub 기본 개념

1. Git과 GitHub의 가장 큰 차이2. 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 image
 
회사에 입사했는데 프로젝트 관리가 이와 같이 되어 있다고 가정해보겠습니다. 아래와 같은 사항들이 불편할 것입니다.
  • 유지보수
  • 저장 용량
  • 언제 어떤 코드가 수정되었는지 확인(추적관리)
  • 코드 공유(코드 저장, 만약 파일이 저장된 노트북을 잃어버린다면?)
  • 버전 관리
 
내용을 카테고리 별로 정리해보도록 하겠습니다.
  1. 용량 : 파일이 N개라면 N * 파일용량 → 수정 내역만 저장(Git)
  1. 협업 : 파일 주고 받기, 누가 수정했는지, 얼마만큼 수정되었는지, 프로젝트 보드(GitHub, GitLab 등의 타 서비스 이용 가능)
  1. 관리 : 원하는 Version으로 되돌리기(Git), Code 피드백과 리뷰(GitHub)
 
Git, GitHub은 무료 오픈 소스이면서도 우리가 Code로 협업하는데 필요한, 위에서 언급한 불편한 사항에 대해 대부분의 솔루션을 제공해줍니다.
Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. It outclasses SCM tools like Subversion, CVS, Perforce, and ClearCase with features like cheap local branching, convenient staging areas, and multiple workflows.
Git
https://git-scm.com/
Git
 
일단 GitHub(깃허브)를 이해하려면 Git(깃)이라는 프로그램을 알아야 합니다. Git은 버전 관리 도구 중 가장 선호도가 높은 프로그램입니다.
 
Git은 로컬 저장소(내 컴퓨터)와 원격 저장소(서버 컴퓨터)로 나뉩니다. 내 컴퓨터에서 작성한 프로젝트를 원격 저장소에 저장해두고, 만약 내 컴퓨터의 프로젝트가 손상되거나 다른 컴퓨터에서 코드를 가져오고 싶을 때는 원격 저장소에서 바로 가져올 수 있습니다. 이때, 코드 뿐만 아니라 코드의 변경 내역까지 모두 가져올 수 있기 때문에 Git이 "버전 관리 도구"라고 불립니다.
 
GitHub: Where the world builds software
GitHub is where over 56 million developers shape the future of software, together. Contribute to the open source community, manage your Git repositories, review code like a pro, track bugs and features, power your CI/CD and DevOps workflows, and secure code before you commit it.
GitHub: Where the world builds software
https://github.com/
GitHub: Where the world builds software
위니브
위니브
 
이렇듯 Git에서 원격 저장소는 코드의 원본이나 변경 내역을 저장하는 매우 중요한 역할을 합니다. 이러한 기능을 하는 툴을 형상 관리(Configuration Management) 툴이라고 부릅니다. Git, SVN, CVS등에 툴이 있고 현재 가장 많이 사용되고 있는 것이 Git입니다.
 
이러한 Git을 클라우드 환경에서 사용할 수 있게 제공하는 공간이 GitHub입니다. GitHub가 단순히 저장소 역할만 하는 것은 아닙니다. GitHub는 개발자들 사이의 거대한 커뮤니티를 형성하고 있습니다. 자신의 프로젝트는 물론 다른 개발자들의 인기 있는 프로젝트의 코드를 볼 수 있고, 이슈(issue)를 제기할 수 있으며, 원한다면 다른 이의 프로젝트를 수정하고 발전 시키는 데에 참여할 수 있습니다. 이를 오픈소스에 기여(contribution)한다고 합니다.
 
또한 프로젝트 관리, Code Editer 제공, 심지어 블로그도 Github으로 사용할 수 있게 됨으로 지금은 하나의 생태계를 이루고 있습니다.
 

읽어 볼만한 글
버전 관리 - 위키백과, 우리 모두의 백과사전
버전 관리(version control, revision control), 소스 관리(source control), 소스 코드 관리(source code management, SCM)란 동일한 정보에 대한 여러 버전을 관리하는 것을 말한다. 공학과 소프트웨어 개발에서 팀 단위로 개발 중인 소스 코드나, 청사진 같은 설계도 등의 디지털 문서를 관리하는데 사용된다. 그러한 문서의 변경 사항들에 숫자나 문자로 이뤄진 ("개정판 번호"나 "개정판 레벨"이라고도 불리는) " 버전"을 부여해서 구분한다.
버전 관리 - 위키백과, 우리 모두의 백과사전
https://ko.wikipedia.org/wiki/%EB%B2%84%EC%A0%84_%EA%B4%80%EB%A6%AC
버전 관리 - 위키백과, 우리 모두의 백과사전
유의적 버전 2.0.0
버전을 주.부.수 숫자로 하고: 기존 버전과 호환되지 않게 API가 바뀌면 "주(主) 버전"을 올리고, 기존 버전과 호환되면서 새로운 기능을 추가할 때는 "부(部) 버전"을 올리고, 기존 버전과 호환되면서 버그를 수정한 것이라면 "수(修) 버전"을 올린다. 주.부.수 형식에 정식배포 전 버전이나 빌드 메타데이터를 위한 라벨을 덧붙이는 방법도 있다. 소프트웨어 관리의 세계에는 "의존성 지옥"이라 불리는 성가신 문제가 있다.
https://semver.org/lang/ko/