Github Organization 만들기

변현섭·2023년 7월 8일
12

Github 사용법

목록 보기
7/17

오늘은 팀원들과 함께 작업하기 위해 Github Organization을 만들어보려 합니다. 여기서 Github Organization이란, 같은 프로젝트를 관리하는 데 사용하는 Github 그룹 계정을 말합니다. 지난 포스팅에선 개인 Repository에서 협업하는 방법을 다루어 보았는데, 사실은 Organization이 효율적인 협업 프로세스에 더욱 적합합니다.

1. Organization의 필요성

지금까지는 개인 Repository에 코드를 업로드하고, 팀원들과 협업하는 방법을 다뤄보았다면, 이번 포스팅에서는 Organization을 만들어 Repository를 관리해보려 한다. 개인 Repository에서 협업하는 것과 Organization Repository에서 협업하는 것의 차이가 무엇인지 알아보자.

1) 개인 Repository

개인 레포지토리는 GitHub에서 개인 사용자가 자신의 코드를 관리하는 데 사용하는 저장소이다. 개인 레포지토리는 해당 개인 계정에 속하며, 해당 계정의 소유자만이 관리 권한을 갖는다.

개인 레포지토리는 개인 프로젝트, 연습용 코드, 포트폴리오 등을 저장하고 다른 사람과 공유하기 위해 사용하는 것에 최적화되어 있다. 그러다보니 개인 레포지토리에서 제공하는 공동 작업 기능은 다소 제한적일 수 있다.

물론, 개인 Repository에서 협업을 못한다는 뜻도 아니고, 하지 말라는 뜻도 아니지만, 적어도 Organization을 사용할 때 협업이 더욱 편리해진다는 것은 분명하다.

2) Organization

Organization은 GitHub에서 팀 또는 조직을 나타내는 단위이다. Organization을 만들면 팀원들을 초대하여 공동 작업을 할 수 있게 된다. Organization은 멤버 관리, 레포지토리 관리, 팀 관리 등 다양한 협업 기능을 제공한다.

Organization은 팀의 프로젝트, 오픈 소스 프로젝트, 기업의 소스 코드 관리 등 다양한 협업 시나리오에 최적화되어 있다. Organization 내에서 팀원들은 레포지토리에 대해 공동 접근 권한을 가지며, 팀의 목표에 따라 작업을 조직화하고 협업할 수 있다. Organization은 팀 멤버의 역할과 권한을 관리할 수 있어 프로젝트의 보안과 협업의 효율성을 높일 수 있다.

3) 차이점

어떤 방식을 사용할지는 프로젝트의 규모, 협업의 정도, 요구사항에 따라 달라질 수는 있다. 다만, 일반적인 경우에 대부분 Organization을 만들어 팀프로젝트를 진행한다. 그 이유는 아래와 같다.

① 권한 관리

  • 개인 레포지토리에서는 권한 관리 기능이 제한적이다.
  • 다른 사람에게 작업을 위임하거나 특정 작업에 대한 권한을 제한하는 등의 고급 권한 설정이 어렵고 심지어는 불가능한 경우도 있다.

② 이슈 및 Pull Request 관리

  • 개인 레포지토리에서는 이슈 트래킹 및 Pull Request 관리를 위한 기능이 제한적이다.
  • 다른 사람과 공유하고 토론할 수 있는 이슈를 작성하거나 Pull Request를 리뷰하고 병합하는 것이 다소 제한적일 수 있다.

③ 프로젝트 관리

  • 개인 레포지토리에서는 프로젝트 관리 기능이 제한적이다.
  • 프로젝트 보드를 사용하여 작업을 추적하거나 프로젝트를 조직화하는 기능도 다소 제한적일 수 있다.

④ 보안 및 액세스 제어

  • 개인 레포지토리에서는 보안 및 액세스 제어 관련 기능이 제한적이다.
  • 즉, 특정 팀원 또는 그룹에게만 액세스 권한을 부여하거나 레포지토리에 대한 보안 설정을 구체적으로 제어하기가 어렵고 불편하다.

2. Organization 만들기

1) Organization 생성

① Gihub에 접속한 후 로그인한다. 화면 우상단에 + 버튼 > New Organization 버튼을 클릭한다.

② Free 버전의 Create a free organization 버튼을 클릭한다.

③ 아래와 같이 본인의 Organization의 이름과 Contact email을 입력하고 Next를 누른다.

④ 아래의 빈칸에는 초대하고자 하는 사람의 깃허브 이메일 또는 깃허브 아이디를 입력해주면 된다. 초대할 사람을 모두 입력했으면 Complete setup을 클릭한다.

⑤ Organization 생성이 완료된다.

⑥ 추가로 인원을 초대하고 싶으면, People 탭에 들어가 Invite member를 클릭하고 Member로 추가하면 된다.

2) Repository 생성

① 생성한 Organization의 Repository 탭에서 Create a new repository를 클릭한다.

② 아래와 같이 입력하여 Repository를 생성한다.

  • Repository명은 임의로 지으면 된다.
  • Add a README file은 선택사항이지만, 여기서는 선택하여 설명파일을 만든다.
  • Public으로 설정해야 소스 코드 공유가 가능하다.

③ Repositroy까지 생성이 완료되었다.

3. Organization 규칙 추가

1) 브랜치 보호 설정

브랜치 보호 설정은 지난 포스팅에서 설명한 개인 Repostiry의 브랜치 보호 설정과 동일하게 진행하면 된다. 아래의 링크를 참고하자.
>> 브랜치 보호 설정

2) Issue Template 만들기

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로 설정해주어야 한다.

profile
Java Spring, Android Kotlin, Node.js, ML/DL 개발을 공부하는 인하대학교 정보통신공학과 학생입니다.

1개의 댓글

comment-user-thumbnail
2024년 6월 16일

인하대 UMC 화이또~

답글 달기