GitHub은 버전 관리 기능을 갖춘 온라인 코드 호스팅 서비스입니다. 코드와 유사한 형식의 파일을 위한 클라우드 기반 개발 플랫폼이라고 생각하면 이해하기 쉽습니다. GitHub에는 3,000만 명이 넘는 사용자가 있으며, 이들은 서로 코드를 공유하고 함께 개발하며 미래의 소프트웨어를 만들어가고 있습니다.
GitHub은 다양한 프로그래밍 언어로 작성된 소스 코드 프로젝트를 호스팅하고, 모든 반복 작업과 변경 사항을 추적합니다. 또한 팀원 누구나 전 세계 어디에서든 같은 프로젝트에 함께 참여할 수 있습니다.
GitHub은 여러 명이 협업하는 프로젝트에서 특히 빛을 발합니다. 소프트웨어와 앱 개발팀은 중앙화된 저장소를 통해 코드를 업로드·관리하고 동시에 편집 작업을 진행할 수 있습니다.
반면 Dropbox와 같은 다른 클라우드 시스템에서는 변경 사항이 서로 덮어써질 수 있습니다. 먼저 저장한 사람의 작업이 우선권을 가지며, 동시에 수정하려던 다른 팀원의 작업은 사라질 수 있습니다.
GitHub은 엔지니어와 프로그래머가 주로 사용하지만, 기술 경험이 많지 않은 사람도 파일 공유와 협업 도구로 손쉽게 활용할 수 있습니다.
예를 들어 Word 문서를 자주 수정해야 하는 팀원이라면 GitHub의 버전 관리 기능이 큰 도움이 됩니다.
1. 코딩 프로젝트 추적하기
GitHub 플랫폼의 근간은 분산 버전 관리 시스템인 Git(파일의 개발 과정과 변경 사항을 추적하는 프로그램)을 활용해 프로젝트를 추적하는 기능입니다.
팀원들은 어떤 프로젝트든 전체적인 진행 상황을 한눈에 파악할 수 있습니다. 진행률 표시줄을 통해 진행 중인 작업, 해야 할 일 목록, 완료된 항목을 확인할 수 있습니다.
또한 GitHub에서는 프로젝트 URL을 노트 필드에 입력하여 다른 조직의 프로젝트 보드도 추적할 수 있습니다. 필요하다면 특정 프로젝트의 추적을 끄는 것도 가능합니다.
2. 키보드 단축키 활용하기
대부분의 사람들은 반복적이거나 복잡한 작업을 더 빠르게 처리하기 위해 키보드 단축키를 사용하는 데 익숙할 것입니다.
GitHub의 거의 모든 페이지에는 해당 페이지에서 사용할 수 있는 단축키 목록이 포함되어 있습니다. 대화 상자에 "?"를 입력하면 단축키 목록을 바로 확인할 수 있습니다.
3. 다른 프로젝트 탐색하기
대부분의 개발팀은 GitHub을 자신들의 프로젝트를 호스팅하고 관리하는 용도로 사용합니다. 하지만 다른 사람들이 이 플랫폼을 어떻게 활용하는지 살펴보고 그들의 프로젝트를 둘러보는 것도 큰 도움이 됩니다. 자신의 프로젝트에 적용할 새로운 인사이트, 아이디어, 영감을 얻을 수 있습니다.
GitHub 커뮤니티에서 유행하는 트렌드를 확인하고, 다른 멤버들과 연결하며, 라벨이나 토픽으로 검색해 더 많은 정보를 얻어보세요.
코딩 중심의 플랫폼임에도 불구하고 GitHub은 놀랍도록 '사람 친화적'이며, 사용자와 커뮤니티 중심의 환경으로 빛나고 있습니다. 사용자 중심 개발에 대한 강조는 GitHub 문화 자체에 녹아 있으며, 세계에서 가장 일하기 좋은 직장 20위 안에 드는 곳이기도 합니다.
4. 코딩 그 이상의 활용
많은 사람들이 GitHub이 개발자에게만 유용하다고 생각하지만, 실제로는 다양한 분야에서 활용할 수 있는 리소스입니다. 모든 사람에게 도움이 되는 대표적인 협업 기능 두 가지가 바로 브랜칭(branching)과 포킹(forking)입니다.
포킹은 접근 권한이 있는 경우 다른 사람의 작업물을 복제(clone)하는 기능입니다. 원본으로 연결되는 하이퍼링크를 유지한 채 콘텐츠를 테스트하고 편집 및 수정 작업을 진행할 수 있습니다.
브랜칭 도구를 사용하면 리소스의 임시 복사본을 만들 수 있습니다. 이를 통해 같은 콘텐츠를 동시에 작업하는 여러 사용자가 서로 호환되지 않는 변경 사항을 프로젝트에 적용하는 것을 방지할 수 있습니다.
브랜칭과 포킹은 협업 프로젝트를 진행하는 사용자에게 매우 유용한 도구입니다. 코더가 아닌 팀도 아래와 같은 방식으로 활용할 수 있습니다:
- 여행 기록
- 법률 문서
- 음악 악보
- 기자를 위한 데이터 시각화
- 블로그 및 콘텐츠 마케팅
- 레시피 공유
5. 저장소(Repository) 만들기
저장소(레포지토리)란 프로젝트가 담기는 공간을 뜻합니다. 데이터를 저장할 수 있는 선택지는 다음과 같습니다:
- 아무 온라인 호스트
- 컴퓨터의 폴더
- GitHub 스토리지
저장소에는 이미지, 텍스트, 코드 파일 등 모든 종류의 파일을 보관할 수 있습니다. 첫 번째 저장소를 시작하는 것은 어렵지 않습니다. 먼저 GitHub 계정을 만들어야 합니다.
그다음 로그인 상태에서 오른쪽 상단의 플러스(+) 아이콘을 클릭하고 "New repository"를 선택하세요.
그러면 다음과 같은 화면이 나타납니다:
저장소는 기본적으로 공개(public)로 설정된다는 점에 유의하세요. 접근을 제한하고 진행 상황을 모두에게 공개하고 싶지 않다면, 열람자를 직접 지정할 수 있습니다. 프라이버시를 유지하려면 유료 서비스로 업그레이드해야 합니다.
6. README 효과적으로 활용하기
README 파일의 목적은 사용자가 프로젝트에 흥미를 갖도록 만드는 것입니다. 전용 저장소를 만들기 시작할 때 README 파일을 추가할 수 있습니다.
WordPress 플랫폼을 사용하는 사람이라면 README 파일이 익숙할 것입니다. 플러그인을 설치하기 전에 팀원들이 이 파일을 읽으면 해당 플러그인이 무엇을 하는지, 어떻게 사용하는 것이 좋은지 더 명확하게 파악할 수 있습니다.
README 파일을 길고 지루하게 만들면 사용자가 이탈할 가능성이 높습니다. README 작성 모범 사례는 다음과 같습니다:
- 설명력 있는 제목
- 헤더 이미지
- 추가 문서로 연결되는 외부 링크
- 간결한 기능 목록
- 명확하고 간결한 요약
7. 다른 사람 팔로우하기
GitHub에서 다른 사용자의 프로필을 팔로우하며 교류할 수 있습니다. 공개 저장소 내에서 다른 사람들이 작업 중인 내용을 모니터링하고, GitHub 개인 대시보드에서 그들의 활동 알림을 받을 수도 있습니다.
자신의 개발 프로젝트에 활용할 수 있는 훌륭한 아이디어를 발견하고, 같은 분야의 팀원들과 협업하며 지식과 전문성을 공유할 수 있습니다.
GitHub에서 누군가를 팔로우하려면 주제나 분야로 검색한 후 해당 사용자의 프로필 페이지로 이동해 "Follow"를 클릭하면 됩니다.
8. 커뮤니티에 참여하기
오픈소스 플랫폼의 많은 장점 중 하나는 다른 사람들과 협업하고, 배우고, 공유하고, 소통할 수 있다는 점입니다.
GitHub은 비용 부담 없이 잠재력을 충분히 탐색할 수 있습니다. 오픈소스의 목적은 대중의 기여를 통해 더 나은 솔루션을 만드는 데 있습니다.
새로운 기술을 배우거나 실력을 향상시키고, 자신의 경험과 전문성으로 다른 사람을 도울 수도 있습니다.
GitHub 커뮤니티에 합류하면 관심 있는 프로젝트의 개발 과정을 따라가고, 해당 프로젝트를 복제해 자신의 개인 저장소에서 자유롭게 실험해볼 수 있습니다.
참여하고 싶은 커뮤니티를 찾으려면 "Explore" 기능을 사용해 관심 분야와 관련된 컬렉션을 검색해 보세요.
9. 최고의 작업물 소개하기
SNS를 활발히 사용한다면 고정 게시글의 힘을 잘 알 것입니다. 예를 들어 Twitter 프로필에 새 게시글을 고정하면 피드 최상단에 계속 노출되어 프로필을 방문하는 모든 사람이 볼 수 있습니다.
Facebook 페이지에도 같은 기능이 있습니다. SNS 프로필에 게시글을 고정하면 방문자가 전체 피드를 뒤질 필요 없이 가장 중요한 게시글을 먼저 보게 됩니다.
GitHub 역시 프로필 페이지에 즐겨찾는 저장소나 가장 관련성 높은 저장소를 고정할 수 있습니다. 무료 계정 사용자는 최대 6개의 저장소를 프로필 상단에 고정할 수 있습니다.
10. Blame 기능으로 변경자 확인하기
네, GitHub에는 실제로 "blame"이라는 버튼이 있습니다. 다정한 단어는 아니지만 꽤 유용한 기능입니다. 특정 파일에서 누가 어떤 변경을 했는지 확인하고 싶다면 blame 기능을 사용해 보세요.
파일의 blame 뷰에서는 전체 수정 이력을 줄 단위로 확인할 수 있습니다. 또는 특정 줄의 변경 사항이나 버전 이력을 살펴볼 수도 있습니다.
무언가가 깨졌거나 제대로 작동하지 않을 때 이 기능을 활용하면 어떤 팀원이 함께 해결책을 찾아야 하는지 신속하게 파악할 수 있습니다.
협업, 공유, 저장, 테스트, 배포까지 하나의 중앙화된 클라우드 기반 플랫폼에서 처리하고 싶다면, GitHub이 강력한 솔루션이 되어줄 것입니다.