Computer >> 컴퓨터 >  >> 시스템 >> Linux

GitHub란? 개발자를 위한 버전 관리·협업 플랫폼 핵심 가이드

GitHub란 무엇인가?

깃허브(GitHub)는 소프트웨어 개발자를 위한 웹 기반 버전 관리(version control) 및 협업 플랫폼입니다. 깃허브에 가장 많은 기여를 한 기업인 마이크로소프트(Microsoft)는 2018년 6월 75억 달러 규모의 깃허브 인수를 발표했습니다. SaaS(Software-as-a-Service) 비즈니스 모델로 제공되는 깃허브는 2008년에 출시되었으며, 리누스 토르발스(Linus Torvalds)가 소프트웨어 빌드 속도를 높이기 위해 개발한 오픈 소스 코드 관리 시스템인 '깃(Git)'을 기반으로 합니다.

Git과 GitHub의 역할

깃은 프로젝트의 소스 코드를 저장하고 코드에 대한 모든 변경 이력을 추적하는 데 사용됩니다. 여러 개발자가 동시에 작업할 때 발생할 수 있는 충돌을 관리하는 도구를 제공하여, 팀 단위 협업을 훨씬 효율적으로 만들어 줍니다.

깃허브에서는 누구나 공개 저장소(public repository)의 소프트웨어를 무료로 열람하고 수정·개선할 수 있으며, 비공개 저장소(private repository)를 원한다면 다양한 유료 플랜 중 하나를 선택하면 됩니다. 공개든 비공개든 각 저장소에는 프로젝트의 모든 파일과 파일별 수정(revision) 이력이 함께 담겨 있으며, 여러 명의 공동 작업자(collaborator)를 초대해 함께 관리할 수도 있습니다.

개발자를 위한 소셜 네트워킹

깃허브는 깃 코드 저장소에 웹 인터페이스와 협업 관리 도구를 결합해 '소셜 코딩(social coding)' 문화를 실현했습니다. 그래서 깃허브는 개발자들을 위한 진지한 소셜 네트워킹 서비스라고 불리기도 합니다. 회원들은 서로를 팔로우하고, 동료의 작업물을 평가하고, 관심 있는 프로젝트의 업데이트 알림을 받으며, 공개 또는 비공개 방식으로 소통할 수 있습니다.

핵심 용어 3가지: 포크, 풀 리퀘스트, 머지

깃허브에서 개발자들이 가장 자주 사용하는 세 가지 개념이 있습니다.

포크(fork), 즉 브랜치(branch)는 한 회원의 계정에서 다른 회원의 계정으로 복제된 저장소입니다. 포크와 브랜치를 활용하면 원본 코드에 영향을 주지 않고 자유롭게 수정 작업을 진행할 수 있습니다. 수정한 내용을 공유하고 싶다면 원본 저장소 소유자에게 풀 리퀘스트(pull request)를 보내면 됩니다. 소유자가 변경 사항을 검토한 뒤 반영하기로 하면, 해당 수정 사항을 수락해 원본 저장소와 머지(merge)합니다. 커밋(commit)은 기본적으로 모두 보존되어 마스터 프로젝트에 병합되며, 필요에 따라 커밋 스쿼싱(commit squashing)을 통해 더 단순한 형태로 통합할 수도 있습니다.

GitHub란? 개발자를 위한 버전 관리·협업 플랫폼 핵심 가이드
GitHub Pages로 개인 웹사이트 호스팅하기 — 7분 45초 튜토리얼 영상

비개발자도 활용하는 GitHub

깃허브는 직관적인 사용성과 강력한 버전 관리 도구 덕분에 프로그래머가 아닌 사람들도 문서 기반 프로젝트나 멀티미디어 프로젝트에 활용하기 시작했습니다. 오픈 소스 진영의 대안으로는 깃랩(GitLab)이 꼽힙니다.

GitHub 주요 제품 및 기능

깃허브는 잘 알려진 SaaS 제품 외에도 온프레미스(on-premises) 버전을 제공합니다. GitHub Enterprise는 통합 개발 환경(IDE)과 지속적 통합(CI) 도구 연동은 물론 다양한 서드파티 앱·서비스를 지원하며, SaaS 버전보다 강화된 보안성과 감사(auditability) 기능을 갖추고 있습니다.

그 밖의 주요 제품과 기능은 다음과 같습니다.

  • Gist — 코드 조각이나 메모 등을 손쉽게 공유할 수 있는 기능입니다.
  • GitHub Flow — 정기적인 배포에 적합한 경량화된 브랜치 기반 워크플로우입니다.
  • GitHub Pages — 개인 또는 조직의 깃허브 저장소에서 데이터를 직접 가져와 프로젝트를 호스팅하는 정적 웹페이지 서비스입니다.
  • GitHub Desktop — 웹사이트에 접속하지 않고도 Windows나 Mac 데스크톱 환경에서 깃허브를 사용할 수 있게 해주는 클라이언트입니다.
  • GitHub Student Developer Pack — 학생 전용 무료 개발 도구 패키지로, 클라우드 리소스, 프로그래밍 도구와 지원, 깃허브 이용 권한 등이 포함되어 있습니다.