GitHub는 개발자들에게 널리 알려진 원격 저장소 서비스입니다. 이전 토픽에서 이미 GitHub의 원격 저장소로서의 역할을 다룬 바 있죠. 이번 레슨에서는 GitHub의 다양한 기능들을 살펴보고자 합니다. GitHub는 단순히 코드를 저장하는 공간을 넘어, 개발자들의 소통과 협업을 돕는 플랫폼으로 성장했습니다. 이 레슨에서는 GitHub의 협업 기능들에 초점을 맞추어 자주 사용하는 기능 위주로 코드 공유 및 소통 도구로써의 GitHub를 소개합니다.
GitHub의 Organization은 팀원들을 한데 모아 프로젝트와 저장소를 효율적으로 관리하는 팀 협업 도구입니다. 이 기능은 주로 회사나 대규모 조직에서 권한 관리와 보안을 향상시키기 위해 사용됩니다.
Organization 기능을 활용하면 Front-end와 Back-end 등의 다양한 영역으로 나눠진 저장소를 한데 모아, 프로젝트 관리를 간소화할 수 있습니다. 이는 팀원들 간의 협업을 더욱 원활하게 하고, 프로젝트의 통합 관리를 가능하게 합니다.
더불어, Organization 내에서는 Projects라는 기능을 이용할 수 있습니다. Projects는 할 일 목록 등을 관리하는 도구로, 이를 통해 프로젝트의 진행 상황을 시각화하고 작업의 우선순위를 정할 수 있습니다. 이 기능을 활용하면, 팀원들이 작업 항목과 진행 상황을 빠르게 파악하며, 효과적인 협업을 실현할 수 있습니다. 그러나 Projects를 최대한 활용하기 위해서는 이슈 관리 등의 기본적인 협업 지식이 필요할 수 있습니다.
kubernates 등 클라우드를 위한 다양한 오픈소스를 개발, 관리하는 단체의 orgranization overview page
kubernates 등 클라우드를 위한 다양한 오픈소스를 개발, 관리하는 단체의 orgranization overview page
Organization의 핵심 기능으로, Teams를 들 수 있는데요. Teams 기능을 통해 소속된 collaborator를 목적에 따라 그룹화할 수 있습니다. Teams에서는 필요에 따라 다양한 팀을 만들고 운영할 수 있습니다.
이렇게 만들어진 팀들은 이후 이 토픽에서 설명하게 될 Pull Request, Code Review, CODEOWNERS 등 다양한 기능에서 활용되게 됩니다.

Issues는 버그 추적과 프로젝트 관련 토론을 위한 중요한 기능입니다. 사용자들은 이슈를 작성하여 버그 리포트, 기능 요청 등을 다른 사용자들과 공유하고 토론할 수 있습니다. 이슈를 통해 프로젝트의 문제를 추적하고 해결할 수 있으며, 팀원들과의 협업과 의사소통을 강화할 수 있습니다.

npm cli에 등록돼 있는 수많은 issue들
Pull Request는 다른 사용자들에게 자신이 작업한 코드 변경 사항을 검토하고 병합해달라고 요청하는 기능입니다. 다른 사용자들은 Pull Request를 검토하고 의견을 주고받을 수 있으며, 프로젝트에 기여할 수 있습니다. Pull Request는 코드 변경의 품질을 개선하고 버그를 예방하는 데에 중요한 역할을 합니다. 이를 통해 다른 사람들과의 협업과 코드 리뷰를 통한 품질 향상을 이끌어낼 수 있습니다.
npm cli repository에 병합되기를 기다리는 수많은 Pull Request들

Pull Request를 통한 Discussion
Code Reviews는 GitHub에서 코드 리뷰를 위한 기능을 제공합니다. Pull Requests를 통해 다른 사람들이 작업한 코드를 검토하고 피드백을 주고받을 수 있습니다. 코드 리뷰는 코드의 품질을 향상시키고 버그를 예방하는 데에 핵심적인 역할을 합니다. 팀원들은 코드 리뷰를 통해 서로의 코드를 검증하고 개선할 수 있으며, 이를 통해 더 견고하고 효율적인 코드를 개발할 수 있습니다.

Github에서는 코드리뷰를 진행할 수 있다.
GitHub는 단순히 원격 저장소의 역할을 넘어 개발자들이 소통하고 협업하는 중추적인 플랫폼으로 발전했습니다. 이러한 다양한 기능들을 활용하면, 여러분들은 개발 커뮤니티에 더욱 적극적으로 참여하고 성장할 수 있습니다.
이 토픽은 여러분들이 다양한 프로젝트에 참여하고, 협업을 통해 전문적인 성장을 이루는데 도움을 줄 수 있도록 구성하였는데요. 특히, 개발 과정과 협업에서 중요한 역할을 하고 실제 작업 환경에서도 자주 사용하는 Pull Request와 Code Review에 대해 깊이 다루었습니다. 이제 본격적을 시작해 볼게요!