Github는 분산 버전 관리 시스템을 기반으로 하는 웹 기반의 호스팅 서비스로, 개발자들이 소스 코드를 공유하고 협업하는 데 사용됩니다. 프로젝트를 등록하고, 소스 코드를 업로드하며, 이슈 트래킹 및 풀 리퀘스트 등의 기능을 제공합니다. Github는 또한 오픈소스 프로젝트에 대한 지원을 제공하며, 전 세계의 개발자들이 이를 이용하여 소프트웨어를 개발하고 협업할 수 있습니다.
더 간단하게 한줄로 요약하자면 Github는 웹 기반의 분산 버전 관리 시스템으로, 소프트웨어 개발자들이 소스 코드를 공유하고 협업하는 데 사용됩니다.
Git이란?
Git은 분산 버전 관리 시스템으로, 소프트웨어 개발 등에서 변경 내역을 추적하고 여러 명이 협업하는데 사용됩니다. 코드 변경 사항을 추적하고, 이전 버전으로 롤백하거나, 다른 브랜치에서 작업한 내용을 합칠 수 있습니다. Git은 오픈소스로 무료로 사용할 수 있습니다.
Git과 Github의 차이점
Git과 Github는 둘 다 버전 관리 시스템으로 소프트웨어 개발 등에서 사용됩니다. 그러나 Git은 로컬에서 사용하는 도구이고, Github는 Git을 기반으로 한 클라우드 기반의 웹 호스팅 서비스입니다. 즉, Github는 Git으로 관리되는 프로젝트를 호스팅하고, 다른 사용자와 협업할 수 있는 플랫폼입니다. 또한, Github는 이슈 트래킹, Pull Request 등의 기능을 제공하여 개발 프로세스를 보다 효율적으로 관리할 수 있도록 도와줍니다.
Github의 장점
협업 용이성: 여러 명이 하나의 프로젝트를 공유하고 함께 작업할 수 있어, 협업이 용이합니다.
버전 관리: Git을 이용하기 때문에, 프로젝트의 모든 버전을 관리하고, 변경 이력을 추적할 수 있습니다.
이슈 관리: 이슈 관리 기능을 제공해, 프로젝트 내에서 발생하는 문제를 추적하고 해결할 수 있습니다.
개방성: 오픈소스 프로젝트를 공유하고 참여할 수 있어, 다양한 개발자들과의 네트워크 형성이 가능합니다.
편리한 검색: Github 내에서 다양한 프로젝트를 검색하고, 관심 프로젝트를 구독하여 업데이트를 쉽게 받을 수 있습니다.
Github를 사용하는 데에는 몇 가지 규칙
Commit message 작성 시, 명확하고 간결하게 작성해야 합니다.
Pull Request(Pull 요청) 시, 요청 내용과 변경 사항을 명확히 작성해야 합니다.
Branch(브랜치)를 사용하여 개발하는 것이 좋습니다.
코드 작성 시, 코드 포맷을 일관되게 유지하고 가독성을 높여야 합니다.
Issue(이슈)를 활용하여 개발 계획 및 이슈 관리를 하면 좋습니다.
다른 사람의 코드를 사용할 때, License(라이선스)를 확인해야 합니다.
Github 사용방법
Github 사용 방법을 상세히 설명하기에는 조금 어려움이 있지만, 기본적인 Git 명령어와 Github 웹사이트의 사용법을 간단히 설명해드릴게요.
Git 명령어
git init: 새로운 Git 저장소를 생성합니다.
git add [파일명]: 수정한 파일을 Staging Area에 추가합니다.
git commit -m "커밋 메시지": Staging Area에 있는 파일을 커밋합니다.
git push: 로컬 저장소의 변경 사항을 원격 저장소로 업로드합니다.
git pull: 원격 저장소에서 변경된 사항을 로컬 저장소로 다운로드합니다.
git clone [저장소 URL]: 원격 저장소의 내용을 로컬 컴퓨터로 복사합니다.
Github 웹사이트 사용 방법
저장소 생성: Github 웹사이트에서 "New repository" 버튼을 클릭하여 새로운 저장소를 생성할 수 있습니다.
저장소 복제: git clone 명령어를 사용하여 원격 저장소의 내용을 로컬 컴퓨터로 복제할 수 있습니다.
변경 사항 업로드: 로컬 저장소에서 변경된 사항을 git add, git commit, git push 명령어를 사용하여 원격 저장소로 업로드할 수 있습니다.
협업: 저장소를 공유하고 협업할 수 있습니다. Github 웹사이트에서는 Pull Request와 Issue 등의 기능을 제공하여 협업을 보다 편리하게 할 수 있습니다.
이 외에도 Github에서는 다양한 기능과 서비스를 제공하고 있으며, 사용 방법은 상황에 따라 다르기 때문에 필요에 따라 참고 자료를 찾아보시는 것이 좋습니다.
Github의 필요성
Github는 프로젝트 협업과 소스코드 관리를 위한 강력한 도구로, 다수의 개발자들이 함께 작업하고 버전 관리를 하며, 오픈 소스 프로젝트의 경우 전 세계 개발자들과 쉽게 공유할 수 있습니다. 또한, Github의 이슈 트래커 기능은 버그 및 개선사항을 추적하고 관리하기 용이하며, Pull Request 기능을 통해 다른 개발자들과의 코드 리뷰 및 협업이 가능합니다. 이러한 이유로 Github는 개발 생산성과 협업 효율성을 높이기 위해 필수적인 도구로 인식되고 있습니다.
Github를 사용하는데 있어서 지켜야 할 규칙
Branch를 잘 관리하여, 모든 작업을 Master 브랜치에 직접 반영하지 않는다.
Commit 메시지에 작업 내용을 명확하게 작성한다.
파일과 폴더 구조를 명확하게 설정한다.
Pull Request를 통해 코드 리뷰를 받고, 승인된 코드만 Merge한다.
다른 사람의 코드를 수정할 때는 Fork를 사용하여 개별 브랜치를 만들어 작업한다.
작업 중인 내용을 주기적으로 Commit하여, 코드 상태를 관리한다.
이슈를 통해 버그 및 기능 요청을 관리하고, 마일스톤을 설정하여 작업 일정을 관리한다.
충돌이 일어날 수 있는 파일을 작업할 때는 Merge Conflict를 방지하기 위해 가능한 작은 단위로 작업하고, 자주 Push하여 충돌이 일어나지 않도록 한다.
Github에 대한 용어
Repository(저장소): 코드, 문서 등 버전 관리 대상 파일들이 저장되는 폴더 또는 공간
Commit(커밋): 변경된 내용을 저장소에 기록하는 작업
Branch(브랜치): 저장소 내에서 나무 가지처럼 분기되어 다른 작업을 할 수 있도록 만들어진 복사본
Pull request(풀 리퀘스트): 코드 수정사항을 본인이 소유하지 않은 저장소에 반영해 달라고 요청하는 기능
Fork(포크): 다른 사람의 저장소를 자신의 저장소로 복사하는 것
Issue(이슈): 버그 리포트나 추가 구현 요청 등의 문제점을 기록하고 추적하기 위한 기능
Merge(병합): 브랜치에서 변경된 내용을 기존의 브랜치나 마스터 브랜치 등에 합치는 작업
Clone(클론): 원격 저장소의 코드를 로컬 환경으로 복사하는 것
Pull(풀): 원격 저장소의 변경 내용을 로컬 저장소에 반영하는 작업
Github에서 인증키발급 하는 방법
Github 계정으로 로그인합니다.
우측 상단의 프로필 사진을 클릭하여 드롭다운 메뉴를 엽니다.
'Settings' 메뉴를 선택합니다.
왼쪽 메뉴에서 'Developer settings' 항목을 선택합니다.
'Personal access tokens'을 선택합니다.
'Generate new token' 버튼을 클릭합니다.
필요한 권한을 선택한 후, 'Generate token' 버튼을 클릭합니다.
생성된 토큰을 안전한 곳에 복사해 둡니다.
이렇게 발급받은 토큰은 API를 사용할 때 사용될 수 있으며, 이를 이용해 다양한 작업을 할 수 있습니다. 다만, 이 토큰이 노출될 경우 계정이 해킹될 가능성이 있으므로 보안에 주의해야 합니다.