오늘은 팀원들과 함께 작업하기 위해 Github Organization을 만들어보려 합니다. 여기서 Github Organization이란, 같은 프로젝트를 관리하는 데 사용하는 Github 그룹 계정을 말합니다. 지난 포스팅에선 개인 Repository에서 협업하는 방법을 다루어 보았는데, 사실은 Organization이 효율적인 협업 프로세스에 더욱 적합합니다.
지금까지는 개인 Repository에 코드를 업로드하고, 팀원들과 협업하는 방법을 다뤄보았다면, 이번 포스팅에서는 Organization을 만들어 Repository를 관리해보려 한다. 개인 Repository에서 협업하는 것과 Organization Repository에서 협업하는 것의 차이가 무엇인지 알아보자.
개인 레포지토리는 GitHub에서 개인 사용자가 자신의 코드를 관리하는 데 사용하는 저장소이다. 개인 레포지토리는 해당 개인 계정에 속하며, 해당 계정의 소유자만이 관리 권한을 갖는다.
개인 레포지토리는 개인 프로젝트, 연습용 코드, 포트폴리오 등을 저장하고 다른 사람과 공유하기 위해 사용하는 것에 최적화되어 있다. 그러다보니 개인 레포지토리에서 제공하는 공동 작업 기능은 다소 제한적일 수 있다.
물론, 개인 Repository에서 협업을 못한다는 뜻도 아니고, 하지 말라는 뜻도 아니지만, 적어도 Organization을 사용할 때 협업이 더욱 편리해진다는 것은 분명하다.
Organization은 GitHub에서 팀 또는 조직을 나타내는 단위이다. Organization을 만들면 팀원들을 초대하여 공동 작업을 할 수 있게 된다. Organization은 멤버 관리, 레포지토리 관리, 팀 관리 등 다양한 협업 기능을 제공한다.
Organization은 팀의 프로젝트, 오픈 소스 프로젝트, 기업의 소스 코드 관리 등 다양한 협업 시나리오에 최적화되어 있다. Organization 내에서 팀원들은 레포지토리에 대해 공동 접근 권한을 가지며, 팀의 목표에 따라 작업을 조직화하고 협업할 수 있다. Organization은 팀 멤버의 역할과 권한을 관리할 수 있어 프로젝트의 보안과 협업의 효율성을 높일 수 있다.
어떤 방식을 사용할지는 프로젝트의 규모, 협업의 정도, 요구사항에 따라 달라질 수는 있다. 다만, 일반적인 경우에 대부분 Organization을 만들어 팀프로젝트를 진행한다. 그 이유는 아래와 같다.
① 권한 관리
② 이슈 및 Pull Request 관리
③ 프로젝트 관리
④ 보안 및 액세스 제어
① Gihub에 접속한 후 로그인한다. 화면 우상단에 + 버튼 > New Organization 버튼을 클릭한다.
② Free 버전의 Create a free organization 버튼을 클릭한다.
③ 아래와 같이 본인의 Organization의 이름과 Contact email을 입력하고 Next를 누른다.
④ 아래의 빈칸에는 초대하고자 하는 사람의 깃허브 이메일 또는 깃허브 아이디를 입력해주면 된다. 초대할 사람을 모두 입력했으면 Complete setup을 클릭한다.
⑤ Organization 생성이 완료된다.
⑥ 추가로 인원을 초대하고 싶으면, People 탭에 들어가 Invite member를 클릭하고 Member로 추가하면 된다.
① 생성한 Organization의 Repository 탭에서 Create a new repository를 클릭한다.
② 아래와 같이 입력하여 Repository를 생성한다.
③ Repositroy까지 생성이 완료되었다.
브랜치 보호 설정은 지난 포스팅에서 설명한 개인 Repostiry의 브랜치 보호 설정과 동일하게 진행하면 된다. 아래의 링크를 참고하자.
>> 브랜치 보호 설정
Issue는 코드에 대한 오류사항, 변경사항, 질의사항 등을 등록하기 위해 사용한다. Issue를 사용하는 가장 큰 이유는 트러블 슈팅에 있다고 생각한다. 즉, 지난번에 어떠한 문제가 있었는지, 그걸 어떻게 해결했는지 기록을 남겨두면 다음에 같은 문제가 생기더라도 빠르게 해결할 수 있다는 것이다. 또한 이런 사항들을 자세히 남겨두는 것이 포트폴리오의 질을 더욱 향상시켜 줄 수 있기도 하다.
Issue를 작성할 때 작성방식을 통일화시켜주는 게 좋은데, 이 때 사용하는 것이 Issue 템플릿이다.
① 방금 생성한 Repositiry의 Settings > General > Features > Issues > Set up templates를 클릭한다.
② Add template: select 버튼을 클릭한 후 Feature request를 클릭한다.
③ Preview and edit 버튼을 클릭하고 연필 아이콘을 클릭하면 수정을 진행할 수 있다.
④ 아래와 같이 작성하고 Progress changes 버튼을 클릭한다.
## 설명
> 코드에 대한 설명
## 진행 상황
- [ ] todo1
- [ ] todo2
- [ ] todo3
## 부가 설명
> 기타
⑤ 아래와 같이 커밋 메시지를 작성하고 Commit changes를 클릭하면 이슈 템플릿 작성이 완료된다.
⑥ 완성된 템플릿은 issue 탭 > New issue > Get started 에서 확인할 수 있다.
⑦ 마지막으로, 본인의 Organization (Repository 아님)의 Settings > Access > Member privileges에서 멤버의 Base 권한을 Write로 설정해주어야 한다.
인하대 UMC 화이또~