Git과Github
Git과 Github
프로그래밍을 해본 사람은 대부분 알고 있겠지만 Git과 Github는 이름만 다를뿐 실제로는 각자 다른 역할을 한다.
먼저 Git은 버전관리 시스템(VCS, Version Control System)중 가장 유명한 프로그램이고 Github는 그러한 Git의 데이터를 저장하는 서버이다.
Git
위에서 말한 것처럼 깃은 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 버전관리시스템중 하나이다.
깃은 2005년 리눅스 커널 개발을 위해 초기 개발에 기여한 다른 커널 개발자들과 함께 2005년에 리누스 토르발스가 처음 개발했고 2005년부터 지금까지 주니오 하마노가 소프트웨어의 유지보수를 맡고 있다.
깃 홈페이지에 가보면 깃에 대한 특징을 크게 6가지로 정리하고 있다.
- Branching and Merging
- 사용자는 메인 코드에서 가지를 생성해서 독립성을 유지한 채로 개발을 진행할 수 있다. 이는 다양한 코드를 개발 또는 테스트 해 볼 수 있는 환경을 제공해준다.
- Small and Fast
- Git은 모든 작업이 대부분 로컬에서 진행되기 때문에 매번 네트워크에 접속할 필요가 없어 네트워크 속도와 관계없이 빠르게 진행이 가능하다.
- Distributed
- 사용자들은 복사된 프로젝트에서 동시에 작업을 진행할 수 있고 서버가 다운되어도 사용자 각각은 코드전체를 가지고 있기 때문에 문제가 발생하지 않는다.
- Data Assurance
- Git은 프로젝트의 무결성을 보장하는데, 모든 파일은 체크섬 검사를 거치게 된다. 이를 통해 누가 어느 파일을 작업했는지 기록이 남기 때문에 버전 히스토리 관리도 가능하다.
- Staging Area
- 깃은 준비 영역을 갖고 있다. 이는 수정한 내용을 반영하기 전 검토하는 단계이다. 작업 디렉토리에서 반영할 파일을 선택하고 이후 수정한 파일을 실제로 저장소에 반영하는 2단계를 거쳐야 작업이 완료된다.
- Free and Open Source
- 깃은 오픈소스이기 때문에 누구나 무료로 사용이 가능하다.
또한, 깃은 분산 버전 관리 시스템(DVCS) 종류중 하나이다.
다양한 버전관리 시스템이 있는데 여기서는 포스팅이 길어질 수 있으니 간단하게 링크만 첨부하고 넘어가는 것으로 하겠다.
Github
깃허브는 위에서 말한 것처럼 git의 데이터를 저장하는 서버이다.원래 공개 프로젝트만 무료로 제공을 했지만 마이크로 소프트가 인수한 이후 2019년 1월부터 비공개 저장소까지 무료로 제공하기 시작하였다.
비슷한 서비스로는 gitlab, bitbucket등이 있으니 이 서비스를 사용해보는 것도 좋을 것 같다.
또한 깃허브는 개발자들에게 유용한 기능들을 엄청나게 많이 지원을 해주는데 간단하게 나열해보자면 다음과 같다.
- Github Action : 소프트웨어 워크플로우를 자동화할 수 있도록 도와주는 도구로, 코드검사, 자동배포등을 도와주는 기능을 스크립트로 만들어서 사용할 수 있는 일종의 CI/CD 도구이다.
- Github OAuth : 깃허브 아이디를 이용해 다른 사이트 회원가입이나 로그인을 할 수있도록 api 를 제공한다.
- Github Pages : 무료로 정적 사이트를 배포할 수 있는 도구이다.
- Github Desktop : 깃허브 소스코드 관리 툴중하나로 간편하게 GUI형태로 git을 관리할 수 있다.
- Github Discussions : 일종의 네이버 지식인 같은 개념으로 다양한 토론을 레포지토리 안에서 진행할 수 있다.
- Github Codespaces: 최근에 도입된 기능으로 레포지토리에서 .을 누르면 웹으로 vs code 사용이 가능하다.
참고
기여자
Kyun Heo
📦