자습서: 조직 설정

Tier: Free, Premium, Ultimate Offering: Self-managed

GitLab에서는 회사의 GitLab 조직을 설정하고 관리하는 방법은 다음과 같습니다.

  • 그룹, 서브그룹 및 프로젝트 생성
  • 이러한 그룹 및 프로젝트에서 그룹 구성원에게 다양한 역할 할당

이 자습서에서는 소프트웨어 회사의 IT 관리자입니다. 이 회사는 GitLab을 사용하며 마케팅, 영업 및 개발 부서로 나뉘어 있습니다.

이미 마케팅 및 영업 조직을 설정했습니다. 이번 자습서에서는 소프트웨어 개발 조직을 설정합니다. 이 조직에는 다음과 같은 정규 직원이 있습니다.

  • IT 관리자 1명: 여러분
  • 제품 관리자 1명: Alex Smith
  • 엔지니어링 관리자 1명: Blake Wang
  • 소프트웨어 개발자 3명: Charlie Devi, Devon Ivanov, Evan Kim
  • UX 디자이너 1명: Frankie Ali
  • 기술 작가 1명: Grayson Garcia

또한 이 조직에는 계약자 콘텐츠 전략가 1명, Hunter Silva가 있습니다.

다음을 생성할 예정입니다.

  1. 소프트웨어 개발 조직
  2. 업무를 관리하기 위해 그룹, 서브그룹 및 프로젝트 생성
  3. 이러한 그룹과 프로젝트에 추가할 사용자 및 해당 사용자에게 역할 할당
  4. 특정 업무를 위한 조직 내 프로젝트를 생성하고 해당 프로젝트에 사용자 추가

시작하기 전에

  • 자체 관리 GitLab 인스턴스에 관리자 액세스 권한이 있는지 확인합니다.

조직 부모 그룹 및 서브그룹 생성

먼저 전체 소프트웨어 개발 조직의 부모 그룹으로 사용할 Development 그룹을 만듭니다.

  1. 자체 관리 GitLab 인스턴스를 엽니다.
  2. 왼쪽 사이드바 상단에 있는 링크 밑의 새로 만들기를 선택합니다.
  3. 그룹 생성을 선택합니다.
  4. 그룹 이름Development를 입력합니다.
  5. 그룹 URLdevelopment-group을 입력합니다. “그룹 경로를 사용할 수 있습니다”라는 메시지가 표시됩니다. 이 그룹 URL은 네임스페이스에 사용됩니다.
  6. 가시성 레벨에서 그룹을 비공개로 만듭니다. 이는 이 그룹의 서브그룹도 비공개여야 함을 의미합니다.
  7. 다음 질문에 대답하여 GitLab 경험을 개인화합니다.
    • 역할에서 개발팀 리드를 선택합니다. 이 역할은 구성원 권한에 영향을 미치는 역할과는 다릅니다.
    • 이 그룹을 사용할 사람에서 내 회사 또는 팀을 선택합니다.
    • 이 그룹을 사용할 목적에서 내 코드를 저장하려고 함을 선택합니다.
  8. 아직 GitLab 구성원이나 다른 사용자를 그룹에 초대하지 않습니다.
  9. 그룹 생성을 선택합니다.

GitLab에서 네임스페이스는 관련 프로젝트를 구성하는 곳을 제공합니다.

조직의 부모 그룹을 만들었습니다. 이제 서브그룹을 만들 예정입니다.

조직 서브그룹 만들기

이 자습서에서, Development는 다음과 같은 작업 영역으로 구성된다고 가정합니다.

  • 제품 관리
  • 엔지니어링
  • 사용자 경험
    • UX 디자인
    • 기술 문서 작성

이제 이 조직 구조를 반영하기 위해 서브그룹을 만들 예정입니다.

서브그룹과 프로젝트는 부모 그룹의 가시성 설정보다 적어도 같거나 제한적인 가시성 설정을 가져야 합니다. 예를 들어, 비공개 부모 그룹과 공개 서브그룹을 가질 수 없습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택합니다.
  2. 내 그룹 모두 보기를 선택합니다.
  3. Development를 선택합니다. Owner 역할이므로 그룹 이름 옆에 소유자 레이블이 표시됩니다.
  4. 부모 그룹 개요 페이지에서 오른쪽 상단에 새로운 서브그룹을 선택합니다.
  5. 서브그룹 이름제품 관리를 입력합니다.
  6. 서브그룹 슬러그는 자동으로 product-management로 완성됩니다. 이 필드를 변경하지 마세요.
  7. 가시성 레벨은 부모 그룹인 Development가 비공개이므로 비공개만 선택할 수 있습니다.
  8. 서브그룹 생성을 선택합니다.
  9. 다음 서브그룹에 대해 반복합니다.
    • 엔지니어링
    • 사용자 경험
      • UX 디자인
      • 기술 문서 작성

UX 디자인 및 기술 문서 작성은 사용자 경험 서브그룹에 중첩된 서브그룹입니다.

이제 조직의 서브그룹을 만들었습니다. 이제 조직을 위해 사용자를 만들 예정입니다.

조직 사용자 만들기

이제 조직의 사용자를 수동으로 만들 예정입니다. 이는 테스트 사용자입니다. 첫 번째 테스트 사용자인 Alex Smith를 만들기 위해 다음을 수행합니다.

  1. 왼쪽 사이드바 하단에서 관리자 영역을 선택합니다.
  2. 개요 > 사용자를 선택합니다.
  3. 새 사용자를 선택합니다.
  4. 필수 필드를 완료합니다.
    • 이름: Alex Smith
    • 사용자명: alexsmith
    • 이메일: alexsmith@example.com
    • 다른 필드는 변경하지 않습니다.
  5. 사용자 생성을 선택합니다.

실제 사용자의 경우, 재설정 링크가 사용자의 이메일로 전송되며 해당 사용자는 첫 번째 로그인 시에 비밀번호를 설정해야 합니다. 그러나 해당 사용자는 가짜 이메일로 테스트 사용자이므로 이메일 확인을 사용하지 않고 사용자의 비밀번호를 설정해야 합니다.

테스트 사용자의 암호 설정

  1. 사용자를 선택합니다.
  2. 편집을 선택합니다.
  3. 암호와 암호 확인 필드를 완료합니다.
  4. 변경 사항 저장을 선택합니다.

첫 번째 테스트 사용자를 만들었습니다. 이제 다른 사용자에 대해 반복하세요:

이름 사용자 이름 이메일
Blake Wang blakewang blakewang@example.com
Charlie Devi charliedevi charliedevi@example.com
Devon Ivanov devonivanov devonivanov@example.com
Evan Kim evankim evankim@example.com
Frankie Ali frankieali frankieali@example.com
Grayson Garcia graysongarcia graysongarcia@example.com
Hunter Silva huntersilva huntersilva@example.com

조직의 사용자를 만들었습니다. 이제 이러한 사용자를 다른 그룹 및 하위 그룹에 추가할 것입니다.

그룹 및 하위 그룹에 사용자 추가

사용자를 해당 그룹에 추가하여 해당 그룹에 있는 모든 프로젝트에 액세스할 수 있습니다.

먼저, 모든 사용자를 상위 그룹인 Development에 추가할 것입니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 Development 그룹을 찾습니다.
  2. 관리 > 구성원 선택합니다.
  3. 구성원 초대를 선택합니다.
  4. 제품 매니저인 Alex Smith의 필드를 완료합니다.
    • Alex에게 소유자 역할 부여. 이 역할은 그룹의 모든 하위 그룹 프로젝트에 적용됩니다.
    • 액세스 만료 날짜를 비워 둡니다.
  5. 초대를 선택합니다.
  6. 다음 사용자에 대해 이 프로세스를 반복합니다:

    사용자 역할 액세스 만료 날짜
    Blake Wang 메인테이너 비워 둡니다
    Charlie Devi 개발자 비워 둡니다
    Devon Ivanov 개발자 비워 둡니다
    Evan Kim 개발자 비워 둡니다
    Frankie Ali 기고자 비워 둡니다
    Grayson Garcia 기고자 비워 둡니다
    Hunter Silva 게스트 2025-12-31

    동일한 역할과 액세스 만료 날짜가 있는 경우 동시에 여러 사용자를 초대할 수 있습니다.

모든 것이 올바르게 설정되었는지 확인

Development 그룹과 모든 하위 그룹의 그룹 구성원 페이지에서 이러한 그룹의 멤버십을 확인합니다.

소스는 사용자의 이 그룹 멤버십의 원본입니다. 추가된 멤버는 직접 그룹에 추가했기 때문에 직접 멤버입니다.

최대 역할은 추가된 멤버가 이 그룹에서 허용된 가장 높은 액세스 수준입니다. 이 열의 드롭다운 목록을 사용하여 이 그룹의 추가된 멤버 역할을 변경할 수 있습니다.

상위 그룹 멤버로 추가한 모든 사용자는 동일한 역할로 모든 하위 그룹의 멤버입니다.

멤버십 유형별로 하위 그룹 필터링

하위 그룹을 필터링하여 해당 하위 그룹의 직접 멤버 및 부모 그룹에서 멤버십을 상속받은 멤버를 표시할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 Development 그룹을 찾습니다.
  2. 사용자 경험 하위 그룹을 선택합니다.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 멤버를 선택합니다.
  4. 멤버 페이지에서 멤버 필터 필드를 선택합니다.
  5. 멤버십을 선택한 다음 상속됨을 선택하고 Return을 누릅니다.

이제 해당 하위 그룹의 상속된 멤버십을 가지는 사용자만 볼 수 있습니다.

조직에서 사용자마다 해당 조직 내의 역할과 관련된 하위 그룹의 멤버로만 지정하고 싶습니다. 이에 따라 사용자를 그룹 및 하위 그룹에서 제거하기로 결정했습니다.

그룹 및 하위 그룹에서 사용자 제거

하위 그룹에서 멤버를 직접 제거할 수는 없습니다. 멤버는 오직 상위 그룹에서만 제거할 수 있습니다.

상위 그룹으로 돌아가서 Alex Smith를 제외한 모든 사용자를 제거합니다:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 상위 그룹을 찾습니다.
  2. 관리 > 구성원을 선택합니다.
  3. 제거하려는 멤버 행에서 수직 타원 ()을 선택한 다음 멤버 제거를 선택합니다.
  4. 멤버 제거 확인 상자에서 하위 그룹 및 프로젝트에서 직접 사용자 멤버십도 제거 확인란을 선택합니다.
  5. 멤버 제거를 선택합니다.

이제 상위 그룹과 하위 그룹에는 한 명의 멤버만 있고 해당 멤버는 소유자 역할을 가지고 있습니다.

다음으로 사용자를 하위 그룹에 직접 추가할 것입니다.

하위 그룹에 사용자 추가

이제 서로 다른 하위 그룹에 사용자를 직접 추가할 겁니다.

제품 관리 하위 그룹에 사용자 추가

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 개발(Development) 그룹을 찾습니다.
  2. 제품 관리(Product Management) 하위 그룹을 선택합니다.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원(Members)을 선택합니다.

당신을 제외하고 Alex만이 이 하위 그룹의 직접 구성원이며 올바른 것입니다. 그러나, 그들이 소유자 역할 대신 메인테이너 역할을 가져야 한다고 생각합니다.

하위 그룹에서 사용자 역할 변경

구성원 페이지에서 직접 역할을 변경할 수 없습니다. 하위 그룹에서 그들의 역할을 변경하려면 그들을 메인테이너로 초대하세요.

  1. 구성원 초대를 선택하세요.
  2. 제품 관리자인 Alex Smith에 대한 필드를 완료하세요.
    • Alex에게 메인테이너(Maintainer) 역할을 지정합니다.
    • 액세스 만료 날짜(Access expiration date)를 비워 둡니다.
  3. 초대를 선택합니다.

다음 메시지가 표시됩니다.

다음 구성원을 초대할 수 없습니다
초대 오류를 검토하고 다시 시도하세요:
- Alex Smith: 액세스 수준은 상위 그룹인 Development 그룹에서 상속된 소유자보다 크거나 같아야 함

그들이 상위 그룹에서 상속된 멤버십을 갖고 있기 때문에 하위 그룹에서 그들의 역할을 상위 그룹에서의 역할보다 낮은 액세스 수준으로 지정할 수 없습니다.

당신은 그들이 조직에서의 자리에 맞게 이 하위 그룹에서 소유자로 유지하기로 결정했습니다. 이 초대를 취소하려면 취소를 선택하세요.

제품 관리 하위 그룹에는 올바른 구성원과 역할이 있습니다. 이제 다음으로 엔지니어링 하위 그룹에 사용자를 추가할 겁니다.

엔지니어링 하위 그룹에 사용자 추가

이제 엔지니어링 하위 그룹에 몇 명의 사용자를 초대할 예정입니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 개발(Development) 그룹을 찾습니다.
  2. 엔지니어링(Engineering) 하위 그룹을 선택합니다.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원(Members)를 선택합니다. 당신과 Alex만이 직접 소유자 역할을 가진 구성원입니다. 이들은 상속된 역할입니다.
  4. 구성원 초대를 선택하세요.
  5. 다음 구성원에 대한 필드를 완료하세요:

    사용자 역할 액세스 만료 날짜
    Blake Wang 메인테이너(Maintainer) 비워둡니다
    Charlie Devi 개발자(Developer) 비워둡니다
    Devon Ivanov 개발자(Developer) 비워둡니다
    Evan Kim 개발자(Developer) 비워둡니다
  6. 초대를 선택하세요.

    Blake Wang는 엔지니어링 매니저로서의 책임에 부응하기 위해 이 하위 그룹에서 메인테이너 역할을 가지게 됩니다. 세 명의 개발자들은 모두 개발자 역할을 갖게 됩니다. 이들은 직접 역할입니다.

  7. 이들의 역할을 이 하위 그룹의 구성원 페이지에서 직접 변경할 수 있습니다. Blake Wang를 이 하위 그룹의 소유자로 변경하세요.
  8. 다시 개발 그룹의 구성원 페이지로 돌아가보세요. 엔지니어링 하위 그룹의 구성원들은 상위 그룹의 구성원이 아님을 알 수 있습니다.

그들이 필요로 하는 그룹과 하위 그룹에 직접적으로 구성원을 추가함으로써, 그룹에 불필요하게 구성원이 추가되는 문제를 피할 수 있습니다. 당신은 더욱 정확한 방법으로 다양한 그룹과 프로젝트에 대한 액세스를 제어할 수 있습니다.

사용자를 사용자 경험 하위 그룹에 추가

사용자 경험 하위 그룹에는 두 개 이상의 중첩된 하위 그룹이 있습니다:

  • UX 디자인(UX Design).
  • 기술 문서(Technical Writing).

사용자들에 대한 관점으로, UX 디자인에는 Frankie Ali와 Hunter Silva만 포함되어야하며, 기술 문서에는 Grayson Garcia만 포함되어야합니다.

만약 세 명의 사용자를 모두 사용자 경험 하위 그룹에 추가한다면, 상속된 권한으로 인해 모두 중첩된 하위 그룹에 포함될 것입니다.

따라서 사용자를 사용자 경험 하위 그룹이 아닌 적절한 중첩된 하위 그룹에 직접 추가할 것입니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 개발(Development) 그룹을 찾습니다.
  2. 사용자 경험(User Experience) 하위 그룹을, 그리고 UX 디자인(UX Design) 하위 그룹을 선택하세요.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원(Members)을 선택하세요. 당신과 Alex Smith가 현재 유일한 구성원입니다. 이들은 상속된 역할입니다.
  4. 구성원 초대를 선택하세요.
  5. 다음 구성원에 대한 필드를 완료하고 초대를 선택하세요:

    사용자 역할 액세스 만료 날짜
    Frankie Ali 메인테이너(Maintainer) 비워둡니다
    Hunter Silva 게스트(Guest) 2025-12-31
  6. 테크니컬 라이팅(Technical Writing) 하위 그룹에 대해서 다시 진행하세요:

    사용자 역할 액세스 만료 날짜
    Grayson Garcia 메인테이너(Maintainer) 비워둡니다

이제 사용자들을 적절한 중첩된 하위 그룹에 추가했습니다. Grayson Garcia도 사용자 경험 하위 그룹에 속해야 한다고 결정했습니다.

기타 하위 그룹에 사용자 추가

그레이슨을 테크니컬 라이팅(Technical Writing) 하위 그룹의 역할과 동일한 채로 사용자 경험(User Experience) 하위 그룹에 추가할 수 있습니다.

  1. 사용자 경험(User Experience) 하위 그룹으로 이동하세요.
  2. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원(Members)를 선택합니다. 당신과 Alex Smith가 현재 유일한 구성원입니다. 이들은 상속된 역할입니다.
  3. 구성원 초대를 선택하세요.
  4. 그레이슨 가르시아를 테크니컬 라이팅(Technical Writing) 하위 그룹에서의 메인테이너 역할보다 더 낮은 권한 수준인 개발자(Developer)로 초대하세요.

그레이슨 가르시아가 사용자 경험 하위 그룹에서 불필요하게 높은 권한 수준을 가지고 있지 않도록 할 수 있습니다.

하지만, 상속된 권한으로 인해 그레이슨 가르시아를 사용자 경험 하위 그룹에 추가하면 그들은 UX 디자인 중첩 하위 그룹에도 개발자로 추가됩니다.

그룹과 하위 그룹의 상속된 권한을 주의하세요. 사용자를 최소한의 그룹과 하위 그룹에 추가하여 그들이 필요하지 않은 그룹에 무심코 추가되는 가능성을 최소화하세요.

  1. 사용자 경험 하위 그룹의 구성원 페이지로 이동하세요.
  2. Frankie Ali와 Hunter Silva를 리포터(Reporters)로 추가하세요. Hunter에게 동일한 만료 날짜를 부여하세요.
  3. 테크니컬 라이팅 중첩된 하위 그룹으로 이동하세요.

Frankie Ali와 Hunter Silva는 상속된 권한으로 인해 기술 문서 하위 그룹의 구성원이 되었습니다.

여러분은 그룹, 하위 그룹 및 구성원을 성공적으로 설정했습니다.

다음으로 구성원들이 작업할 프로젝트를 하나의 그룹에 만들어보겠습니다.

프로젝트 생성

이제 당신의 조직 구성원 중 일부가 작업해야 할 작업이 있고, 그 작업은 전체 조직을 대상으로 합니다. 그 작업을 구성하기 위해 개발 부모 그룹에 프로젝트를 만들고 해당 프로젝트에 다른 사용자를 추가할 것입니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 Development 그룹을 찾습니다.
  2. 새로 만들기 () 및 새 프로젝트/저장소 만들기를 선택합니다.
  3. 빈 프로젝트 만들기를 선택합니다.
  4. 프로젝트 세부 정보 입력:
    • 프로젝트 이름 필드에 프로젝트 이름으로 릴리스 2.0을 입력합니다.
    • 프로젝트 슬러그 필드는 프로젝트 이름을 기반으로 하므로 그대로 둡니다.
    • 사용자의 프로젝트에 대한 보기 및 액세스 권한을 수정하려면 가시성 수준을 변경할 수 있습니다. 부모 그룹이 비공개이기 때문에 프로젝트는 비공개여야 합니다.
    • Git 리포지토리가 초기화되고 기본 브랜치가 있으며 복제될 수 있도록 README 파일을 만들려면 README로 리포지토리 초기화 확인란을 선택합니다.
    • 프로젝트의 소스 코드를 분석하여 알려진 보안 취약성이 있는지 확인하려면 정적 애플리케이션 보안 테스트 (SAST) 활성화 확인란을 선택합니다.
  5. 프로젝트 만들기를 선택합니다.

이제 당신은 부모 그룹에 프로젝트를 만들었습니다.

이 프로젝트에서 관리 > 구성원으로 이동합니다.

부모 그룹의 기존 구성원(당신과 Alex)은 프로젝트가 그룹에 속해 있기 때문에 이미 이 프로젝트의 구성원입니다.

이 프로젝트에 속해야 하는 다른 사용자들이 있습니다. 이제 이 프로젝트에 사용자들을 직접 추가할 것입니다.

프로젝트와 부모 그룹에 사용자 추가

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 릴리스 2.0 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 관리 > 구성원을 선택합니다.
  3. 구성원 초대를 선택합니다. 다음 사용자들을 초대합니다:

    사용자 역할 액세스 만료 날짜
    Charlie Devi 유지보수자 비워 둡니다
    Frankie Ali 유지보수자 비워 둡니다
    Grayson Garcia 유지보수자 비워 둡니다
  4. 초대를 선택합니다.
  5. 이 사용자들을 프로젝트에 직접 추가했기 때문에 필요한 경우 프로젝트 구성원 페이지에서 그들의 역할을 변경할 수 있습니다. 이를 테스트하기 위해 Grayson Garcia의 역할을 개발자로 변경합니다.
  6. 개발 부모 그룹 구성원 페이지로 이동합니다. 방금 프로젝트에 추가한 사용자들은 여전히 그곳에 없습니다.
  7. 동일한 사용자들을 부모 그룹에 직접 게스트 역할로 추가합니다. 이 페이지에서 직접 역할을 변경할 수 있습니다. Frankie의 역할을 기고자로 변경합니다.
  8. 릴리스 2.0 프로젝트 구성원 페이지로 돌아갑니다. 구성원의 프로젝트 역할은 여전히 2명의 유지보수자와 1명의 개발자입니다.

이제 당신은 부모 그룹의 프로젝트에 소그룹의 구성원으로 3명의 사용자를 성공적으로 추가했고, 그들에게 프로젝트와 부모 그룹에서 특정 역할을 부여했습니다.