개인 프로젝트 개발 시, 코드 저장소 사용은 의무적이지 않으며, 별도로 필요성을 느끼지 못할 수도 있습니다.
그러나 프로젝트를 다른 사람들에게 알리거나, 공유하거나, 협업을 해야할 상황이라면 어떤 방법을 사용해야 할까요?
이같은 상황에서 권장할 수 있는 플랫폼이 바로 Github입니다.
Github는 Git을 활용해 코드를 저장하고 관리하는 기능을 제공하는 복합적인 코드 저장소 플랫폼입니다.
코드 저장소리는 카테고리로 불리나, 코드 린트, 포럼, 이슈 트래킹 등의 다양한 기능 덕분에 Github은 단순히 코드를 저장하는데 그치지 않고 다양한 활동에 활용할 수 있습니다.
Github는 코드 저장소를 제공하는 플랫폼일 뿐만 아니라, 그 이상의 복합적인 기능을 제공합니다.
이슈 트래킹 기능을 이용하면 다른 사용자 혹은 개발자로부터 프로젝트에 대한 피드백이나 수정 제안을 받을 수 있습니다.
또한, 포럼 기능을 활용하면 실시간 피드백을 주고 받을 수 있으며, 위키 기능을 통해 프로젝트의 사용법이나 설명서를 작성할 수 있습니다.
더불어, Github의 Action 기능은 설정 파일을 통해 리눅스 인스턴스를 디플로이할 수 있어 이러한 기능으로 코드 체크 및 CI/CD와 같은 기능도 구현할 수 있습니다.
이렇게 광범위한 기능 세트는 개발자로 하여금 쉽고 효율적으로 협업하고 프로젝트를 관리하도록 돕습니다.
해당 섹션에서는 Github에서 사용하는 일부 용어에 대해 설명합니다.
| 용어 | 설명 |
|---|---|
| 레포지토리 (Repository) | 하나의 프로젝트를 담는 저장소. |
| 이슈 (Issue) | 프로젝트에서 발생하는 문제 혹은 불편사항을 자신 혹은 타인이 기록하는 기능. |
| 포크 (Fork) | 다른 사람의 레포지토리를 복사하여 자신의 레포지토리로 가져오는 기능. |
| 커밋 (Commit) | 코드의 변경사항을 저장하는 행위. |
| 브랜치 (Branch) | 코드의 변경사항을 분리하여 관리하는 기능. |
| 풀 리퀘스트 (Pull Request) | 포크한 레포지토리 혹은 브랜치에서 변경사항을 원본 레포지토리에 반영하는 기능. |
| 머지 (Merge) | 브랜치에서 변경사항을 원본 레포지토리에 반영하는 행위. |
| 컨트리뷰터 (Contributor) | 해당 레포지토리에 기여한 사람. |
| 리뷰 (Review) | 코드의 품질을 높이기 위해 다른 개발자가 코드를 검토하는 행위. |
| LFS | 대용량 파일을 저장하는 기능. Github는 한 파일당 10GB까지만 허용하며, 나머지는 Git LFS를 이용하여 따로 커밋해야 합니다. |
| 헤드 (HEAD) | 현재 작업중인 브랜치의 가장 최신 커밋을 가리키는 포인터. |
| 메인 브랜치 (master / main) | 기본 브랜치로, 보통 최종적인 코드가 저장되는 브랜치. master과 main을 혼용하여 쓰며, Github의 패치 이후로 main을 기본으로 사용합니다. |