InfoGrab Docs

튜토리얼: 조직 설정

요약

이 튜토리얼은 다음을 통해 회사의 GitLab 조직을 설정하고 관리하는 방법을 알려줍니다: 이 튜토리얼에서 여러분은 소규모 소프트웨어 회사의 IT 관리자입니다. 마케팅 및 영업 조직은 이미 설정되어 있습니다. 먼저, Development라는 그룹을 만듭니다.

이 튜토리얼은 다음을 통해 회사의 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.

다음을 만들 것입니다:

  • 소프트웨어 개발 조직.
  • 업무를 관리하기 위한 그룹, 서브그룹 및 프로젝트.
  • 그룹과 프로젝트에 추가하고 역할을 부여할 사용자.
  • 특정 작업을 위한 조직 내 프로젝트 및 해당 프로젝트에 사용자 추가.

시작하기 전에#

  • GitLab Self-Managed에 대한 관리자 액세스 권한이 있는지 확인합니다.

조직 부모 그룹 및 서브그룹 만들기#

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

Development 그룹을 만들려면:

  1. GitLab Self-Managed를 엽니다.
  2. 오른쪽 상단에서 Create new(+)와 New group을 선택합니다.
  3. Create group을 선택합니다.
  4. Group nameDevelopment를 입력합니다.
  5. Group URL 아래에 development-group을 입력합니다. "Group path is available"라는 메시지가 표시됩니다. 그룹 URL은 네임스페이스에 사용됩니다. 네임스페이스는 관련 프로젝트를 구성하는 장소를 제공합니다.
  6. Visibility level 아래에서 Private을 선택합니다. 이렇게 하면 이 그룹의 서브그룹도 비공개여야 합니다.
  7. Who will be using this group? 아래에서 My company or team을 선택합니다.
  8. What will you use this group for? 드롭다운 목록에서 I want to store my code를 선택합니다.
  9. 아직 GitLab 구성원이나 다른 사용자를 그룹에 초대하지 않습니다.
  10. Create group을 선택합니다.

조직의 부모 그룹을 만들었습니다. 다음으로 서브그룹을 만듭니다.

조직 서브그룹 만들기#

이 튜토리얼에서는 Development가 다음과 같은 작업 영역으로 구성된다고 가정합니다:

  • Product Management
  • Engineering
  • User Experience
    • UX Design
    • Technical Writing

이제 이 조직 구조를 반영하는 서브그룹을 만듭니다.

서브그룹과 프로젝트의 가시성 설정은 부모 그룹의 가시성 설정보다 더 제한적이어야 합니다. 예를 들어, 비공개 부모 그룹과 공개 서브그룹을 가질 수 없습니다.

조직 서브그룹을 만들려면:

  1. 상단 바에서 Search or go to를 선택합니다.
  2. View all my groups를 선택합니다.
  3. Development를 선택합니다. 소유자 역할이 있으므로 그룹 이름 옆에 Owner 레이블이 표시됩니다.
  4. 부모 그룹 개요 페이지에서 Create subgroup을 선택합니다.
  5. Subgroup nameProduct Management를 입력합니다.
  6. Subgroup slug는 자동으로 product-management로 채워집니다. 이 필드를 변경하지 않습니다.
  7. Visibility level의 경우, 부모 그룹인 Development도 비공개이므로 Private만 선택할 수 있습니다.
  8. Create subgroup을 선택합니다.
  9. 다음 서브그룹에 대해 이 단계를 반복합니다:
    • Engineering
    • User Experience

다음으로, UX Design 및 Technical Writing 서브그룹을 만듭니다. 이 서브그룹들은 User Experience 서브그룹 아래에 중첩됩니다:

  1. 상단 바에서 Search or go to를 선택합니다.
  2. View all my groups를 선택합니다.
  3. Development를 선택합니다.
  4. Subgroups and projects 탭 아래에서 User Experience를 선택합니다.
  5. User Experience 개요 페이지에서 Create subgroup을 선택합니다.
  6. Subgroup nameUX Design을 입력합니다.
  7. Create subgroup을 선택합니다.
  8. Technical Writing 서브그룹에 대해 이 단계를 반복합니다.

조직의 서브그룹을 만들었습니다. 다음으로 조직의 사용자를 만듭니다.

조직의 사용자 만들기#

이제 조직의 사용자를 수동으로 만듭니다. 이 사용자들은 테스트 사용자입니다. 첫 번째 테스트 사용자인 Alex Smith를 만들려면:

  1. 오른쪽 상단에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Overview > Users를 선택합니다.
  3. New user를 선택합니다.
  4. 필수 필드를 작성합니다:
    • Name: Alex Smith
    • Username: alexsmith
    • Email: alexsmith@example.com
    • 다른 필드는 그대로 둡니다.
  5. Create user를 선택합니다.

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

테스트 사용자의 비밀번호 설정#

사용자를 만든 후, 사용자의 개요 페이지로 이동합니다. 또는 왼쪽 사이드바에서 Users를 선택하고 사용자를 검색할 수 있습니다.

사용자를 선택한 후:

  1. Edit를 선택합니다.
  2. PasswordPassword confirmation 필드를 작성합니다.
  3. Save changes를 선택합니다.

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

Name Username Email
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. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.

  2. Manage > Members를 선택합니다.

  3. Invite members를 선택합니다.

  4. Username, name or email address 드롭다운 목록에서 Alex Smith를 선택합니다.

  5. Select maximum role 드롭다운 목록에서 Owner를 선택합니다.

  6. Access expiration date는 비워둡니다.

  7. Invite를 선택합니다.

  8. 다음 사용자들에 대해 이 과정을 반복합니다:

    User Role Access expiration date
    Blake Wang Maintainer Leave blank
    Charlie Devi Developer Leave blank
    Devon Ivanov Developer Leave blank
    Evan Kim Developer Leave blank
    Frankie Ali Reporter Leave blank
    Grayson Garcia Reporter Leave blank
    Hunter Silva Guest 2025-12-31

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

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

Development 그룹 및 모든 서브그룹의 Group Members 페이지에서 이 그룹들의 구성원을 확인합니다.

  • Source는 이 그룹에서 사용자 구성원 자격의 출처입니다. 추가된 구성원은 그룹에 직접 추가했기 때문에 직접 구성원입니다.
  • Role은 추가된 구성원이 이 그룹에서 가질 수 있는 최고 액세스 수준입니다. 역할을 선택하여 이 그룹에서 추가된 구성원의 역할을 변경할 수 있습니다.

부모 그룹 구성원으로 추가한 모든 사용자는 동일한 역할로 모든 서브그룹의 구성원이기도 합니다.

구성원 유형별 서브그룹 필터링#

서브그룹을 필터링하여 해당 서브그룹의 직접 구성원과 부모 그룹에서 서브그룹 구성원 자격을 상속받은 구성원을 볼 수 있습니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.
  2. User Experience 서브그룹을 선택합니다.
  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다.
  4. Members 페이지에서 Filter members 필드를 선택합니다.
  5. Membership을 선택한 다음 Indirect를 선택하고 Return을 누릅니다.

이제 해당 서브그룹 구성원 자격을 상속받은 User Experience 서브그룹 구성원만 볼 수 있습니다. 각 구성원의 Source 열을 확인하여 상속된 구성원을 확인할 수 있습니다. Inherited from Development라고 표시되어야 합니다.

각 사용자가 조직에서 자신의 역할과 관련된 서브그룹의 구성원으로만 있기를 원합니다. 그룹 및 서브그룹에서 사용자를 제거하기로 결정합니다.

그룹 및 서브그룹에서 사용자 제거#

서브그룹에서 구성원을 직접 제거할 수 없습니다. 부모 그룹에서만 제거할 수 있습니다.

부모 그룹으로 돌아가 Alex Smith를 제외한 모든 사람을 제거합니다:

  1. 상단 바에서 Search or go to를 선택하고 부모 그룹을 찾습니다.
  2. Manage > Members를 선택합니다.
  3. 제거하려는 구성원 행에서 수직 줄임표(⋮)를 선택한 다음 Remove member를 선택합니다.
  4. Remove member 확인 대화상자에서 Also remove direct user membership from subgroups and projects 체크박스를 선택합니다.
  5. Remove member를 선택합니다.

이제 부모 그룹 및 서브그룹에 한 명의 구성원만 있으며, 해당 구성원은 Owner 역할을 가집니다.

다음으로 서브그룹에 사용자를 직접 추가합니다.

서브그룹에 사용자 추가#

이제 다양한 서브그룹에 사용자를 직접 추가합니다.

Product Management 서브그룹에 사용자 추가#

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.
  2. Product Management 서브그룹을 선택합니다.
  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

여러분을 제외하고 Alex는 이 서브그룹의 유일한 구성원이며 직접 구성원입니다. 올바릅니다. 그러나 그들이 Owner 역할 대신 Maintainer 역할을 가져야 한다고 생각합니다.

서브그룹에서 사용자 역할 변경#

구성원 페이지에서 역할을 직접 변경할 수 없습니다. 서브그룹에서 역할을 변경하려면, Maintainer로 서브그룹에 초대합니다.

  1. Invite members를 선택합니다.
  2. 제품 관리자 Alex Smith에 대한 필드를 작성합니다.
    • Alex에게 Maintainer 역할을 부여합니다.
    • Access expiration date는 비워둡니다.
  3. Invite를 선택합니다.

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

The following member couldn't be invited
Review the invite errors and try again:
- Alex Smith: Access level should be greater than or equal to Owner inherited membership from group Development
Note

서브그룹의 부모 그룹에 대한 역할보다 낮은 액세스 수준의 서브그룹 역할을 Alex에게 부여할 수 없습니다. 부모 그룹에서 상속된 구성원 자격이 있기 때문입니다.

Alex를 이 서브그룹에서 Owner로 유지하기로 결정합니다. 조직에서 그들의 역할에 적합합니다. Cancel을 선택하여 이 초대를 취소합니다.

Product Management 서브그룹에 올바른 구성원과 역할이 있습니다. 다음으로 Engineering 서브그룹에 사용자를 추가합니다.

Engineering 서브그룹에 사용자 추가#

이제 Engineering 서브그룹에 일부 사용자를 초대합니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.

  2. Engineering 서브그룹을 선택합니다.

  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다. 여러분과 Alex만 구성원입니다. 두 구성원 모두 Owner 역할을 가지며, 상속된 역할입니다.

  4. Invite members를 선택합니다.

  5. 다음 구성원에 대한 필드를 작성합니다:

    User Role Access expiration date
    Blake Wang Maintainer Leave blank
    Charlie Devi Developer Leave blank
    Devon Ivanov Developer Leave blank
    Evan Kim Developer Leave blank
  6. Invite를 선택합니다.

    Blake Wang은 엔지니어링 관리자로서의 책임에 맞게 이 서브그룹에서 Maintainer 역할을 가집니다. 세 명의 개발자는 모두 Developer 역할을 가지며, 직접 역할입니다.

  7. 이 서브그룹의 구성원 페이지에서 역할을 직접 변경할 수 있습니다. Role 아래에서 Maintainer를 선택하여 Blake Wang의 역할을 이 서브그룹의 Owner로 변경합니다.

  8. Development 그룹의 구성원 페이지로 돌아갑니다. Engineering 서브그룹의 구성원들이 부모 그룹의 구성원이 아님을 알 수 있습니다.

사용자를 필요한 그룹과 서브그룹에 직접 추가함으로써 사용자가 불필요하게 그룹의 구성원이 되는 문제를 방지합니다. 다양한 그룹 및 프로젝트에 대한 액세스를 더 정밀하게 제어할 수 있습니다.

User Experience 서브그룹에 사용자 추가#

User Experience 서브그룹에는 두 개의 추가 중첩 서브그룹이 있습니다:

  • UX Design
  • Technical Writing

사용자 측면에서, UX Design에는 Frankie Ali와 Hunter Silva만 포함되어야 하고, Technical Writing에는 Grayson Garcia만 포함되어야 합니다.

세 명의 사용자를 모두 User Experience 서브그룹에 추가하면, 상속된 권한으로 인해 두 중첩 서브그룹 모두에 포함됩니다.

따라서 이 사용자들을 User Experience 서브그룹이 아닌 적절한 중첩 서브그룹에 직접 추가합니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.

  2. User Experience 서브그룹을 선택한 다음 UX Design 서브그룹을 선택합니다.

  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다. 여러분과 Alex Smith만 구성원입니다. 상속된 역할입니다.

  4. Invite members를 선택합니다.

  5. 다음 구성원에 대한 필드를 작성하고 Invite를 선택합니다:

    User Role Access expiration date
    Frankie Ali Maintainer Leave blank
    Hunter Silva Guest 2025-12-31
  6. Technical Writing 서브그룹에 대해 반복합니다:

    User Role Access expiration date
    Grayson Garcia Maintainer Leave blank

적절한 중첩 서브그룹에 사용자를 추가했습니다. Grayson Garcia도 User Experience 서브그룹에 있어야 한다고 결정합니다.

다른 서브그룹에 사용자 추가#

Technical Writing 서브그룹에 대한 역할을 동일하게 유지하면서 User Experience 서브그룹에 특정 역할로 Grayson을 추가할 수 있습니다.

  1. User Experience 서브그룹으로 이동합니다.
  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다. 여러분과 Alex Smith만 구성원입니다. 상속된 역할입니다.
  3. Invite members를 선택합니다.
  4. Technical Writing 서브그룹에 대한 Maintainer 역할보다 낮은 수준의 권한을 가진 Developer로 Grayson Garcia를 초대합니다.

Grayson에게 Developer 역할을 부여하면 User Experience 서브그룹에서 불필요하게 높은 수준의 권한을 갖지 않게 됩니다.

그러나 상속된 권한으로 인해, Grayson Garcia를 User Experience 서브그룹에 추가하면 UX Design 중첩 서브그룹에도 Developer로 추가됩니다.

Note

그룹 및 서브그룹의 상속된 권한에 주의하세요. 최소한의 그룹 및 서브그룹에 사용자를 추가합니다. 이 방법은 사용자가 속할 필요가 없는 그룹에 실수로 추가될 가능성을 최소화합니다.

  1. User Experience 서브그룹 구성원 페이지로 이동합니다.
  2. Frankie Ali와 Hunter Silva를 Reporter로 추가합니다. Hunter에게는 동일한 만료일을 부여합니다.
  3. Technical Writing 중첩 서브그룹으로 이동합니다.

Frankie Ali와 Hunter Silva는 이제 상속된 권한으로 인해 Technical Writing 서브그룹의 구성원입니다.

그룹, 서브그룹 및 구성원으로 조직을 성공적으로 설정했습니다.

다음으로 구성원들이 작업할 그룹 중 하나에 프로젝트를 만듭니다.

프로젝트 만들기#

이제 조직의 일부 구성원이 작업해야 하는 업무가 있다고 가정해 보겠습니다. 그 업무는 전체 조직을 위한 것입니다. 그 업무를 구성하기 위해 Development 부모 그룹에 프로젝트를 만들고 다양한 사용자를 해당 프로젝트에 추가합니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.
  2. 오른쪽 상단에서 Create new(+)와 New project/repository를 선택합니다.
  3. Create blank project를 선택합니다.
  4. 프로젝트 세부 정보를 입력합니다:
    • Project name 필드에 프로젝트 이름으로 Release 2.0을 입력합니다.
    • Project slug 필드는 프로젝트 이름을 기반으로 하여 그대로 둡니다.
    • 사용자의 프로젝트 보기 및 액세스 권한을 수정하려면 Visibility Level을 변경할 수 있습니다. 부모 그룹이 비공개이므로 프로젝트도 Private으로만 설정할 수 있습니다.
    • Git 저장소가 초기화되고, 기본 브랜치가 있으며, 복제할 수 있도록 README 파일을 만들려면 Initialize repository with a README 체크박스를 선택합니다.
    • 알려진 보안 취약점에 대해 프로젝트의 소스 코드를 분석하려면 Enable Static Application Security Testing (SAST) 체크박스를 선택합니다.
    • 무단 액세스를 방지하기 위해 보안 인증 정보 및 비밀을 소스 코드에서 분석하려면 Enable Secret Detection 체크박스를 선택합니다.
  5. Create project를 선택합니다.

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

이 프로젝트에서 Manage > Members로 이동합니다.

부모 그룹의 기존 구성원(여러분과 Alex)은 이미 이 프로젝트의 구성원입니다. 프로젝트가 그룹에 속해 있으면 프로젝트 구성원은 그룹에서 역할을 상속받습니다.

다른 사용자들도 이 프로젝트의 일부가 되어야 합니다. 이제 프로젝트에 직접 사용자를 추가합니다.

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

  1. 상단 바에서 Search or go to를 선택하고 Release 2.0 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

  3. Invite members를 선택합니다. 다음 사용자를 초대합니다:

    User Role Access expiration date
    Charlie Devi Maintainer Leave blank
    Frankie Ali Maintainer Leave blank
    Grayson Garcia Maintainer Leave blank
  4. Invite를 선택합니다.

  5. 이 사용자들을 프로젝트에 직접 추가했으므로 필요한 경우 프로젝트 구성원 페이지에서 역할을 변경할 수 있습니다. 이를 테스트하기 위해 Grayson Garcia의 역할을 Developer로 변경합니다.

  6. Development 부모 그룹 구성원 페이지로 이동합니다. 방금 프로젝트에 추가한 사용자들이 프로젝트가 부모 그룹에 있음에도 불구하고 부모 그룹에 없습니다.

  7. Guest 역할로 동일한 사용자들을 부모 그룹에 직접 추가합니다. 이 페이지에서 역할을 직접 변경할 수 있습니다. Frankie의 역할을 Reporter로 변경합니다.

  8. Release 2.0 프로젝트 구성원 페이지로 돌아갑니다. 구성원의 프로젝트 역할은 여전히 Maintainer 2명과 Developer 1명입니다.

서브그룹의 구성원인 세 명의 사용자를 부모 그룹의 프로젝트에 성공적으로 추가하고, 해당 사용자들에게 프로젝트 및 부모 그룹에서 특정 역할을 부여했습니다.

튜토리얼: 조직 설정

Tier: Free, Premium, Ultimate
Offering: GitLab Self-Managed
원문 보기
요약

이 튜토리얼은 다음을 통해 회사의 GitLab 조직을 설정하고 관리하는 방법을 알려줍니다: 이 튜토리얼에서 여러분은 소규모 소프트웨어 회사의 IT 관리자입니다. 마케팅 및 영업 조직은 이미 설정되어 있습니다. 먼저, Development라는 그룹을 만듭니다.

이 튜토리얼은 다음을 통해 회사의 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.

다음을 만들 것입니다:

  • 소프트웨어 개발 조직.
  • 업무를 관리하기 위한 그룹, 서브그룹 및 프로젝트.
  • 그룹과 프로젝트에 추가하고 역할을 부여할 사용자.
  • 특정 작업을 위한 조직 내 프로젝트 및 해당 프로젝트에 사용자 추가.

시작하기 전에#

  • GitLab Self-Managed에 대한 관리자 액세스 권한이 있는지 확인합니다.

조직 부모 그룹 및 서브그룹 만들기#

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

Development 그룹을 만들려면:

  1. GitLab Self-Managed를 엽니다.
  2. 오른쪽 상단에서 Create new(+)와 New group을 선택합니다.
  3. Create group을 선택합니다.
  4. Group nameDevelopment를 입력합니다.
  5. Group URL 아래에 development-group을 입력합니다. "Group path is available"라는 메시지가 표시됩니다. 그룹 URL은 네임스페이스에 사용됩니다. 네임스페이스는 관련 프로젝트를 구성하는 장소를 제공합니다.
  6. Visibility level 아래에서 Private을 선택합니다. 이렇게 하면 이 그룹의 서브그룹도 비공개여야 합니다.
  7. Who will be using this group? 아래에서 My company or team을 선택합니다.
  8. What will you use this group for? 드롭다운 목록에서 I want to store my code를 선택합니다.
  9. 아직 GitLab 구성원이나 다른 사용자를 그룹에 초대하지 않습니다.
  10. Create group을 선택합니다.

조직의 부모 그룹을 만들었습니다. 다음으로 서브그룹을 만듭니다.

조직 서브그룹 만들기#

이 튜토리얼에서는 Development가 다음과 같은 작업 영역으로 구성된다고 가정합니다:

  • Product Management
  • Engineering
  • User Experience
    • UX Design
    • Technical Writing

이제 이 조직 구조를 반영하는 서브그룹을 만듭니다.

서브그룹과 프로젝트의 가시성 설정은 부모 그룹의 가시성 설정보다 더 제한적이어야 합니다. 예를 들어, 비공개 부모 그룹과 공개 서브그룹을 가질 수 없습니다.

조직 서브그룹을 만들려면:

  1. 상단 바에서 Search or go to를 선택합니다.
  2. View all my groups를 선택합니다.
  3. Development를 선택합니다. 소유자 역할이 있으므로 그룹 이름 옆에 Owner 레이블이 표시됩니다.
  4. 부모 그룹 개요 페이지에서 Create subgroup을 선택합니다.
  5. Subgroup nameProduct Management를 입력합니다.
  6. Subgroup slug는 자동으로 product-management로 채워집니다. 이 필드를 변경하지 않습니다.
  7. Visibility level의 경우, 부모 그룹인 Development도 비공개이므로 Private만 선택할 수 있습니다.
  8. Create subgroup을 선택합니다.
  9. 다음 서브그룹에 대해 이 단계를 반복합니다:
    • Engineering
    • User Experience

다음으로, UX Design 및 Technical Writing 서브그룹을 만듭니다. 이 서브그룹들은 User Experience 서브그룹 아래에 중첩됩니다:

  1. 상단 바에서 Search or go to를 선택합니다.
  2. View all my groups를 선택합니다.
  3. Development를 선택합니다.
  4. Subgroups and projects 탭 아래에서 User Experience를 선택합니다.
  5. User Experience 개요 페이지에서 Create subgroup을 선택합니다.
  6. Subgroup nameUX Design을 입력합니다.
  7. Create subgroup을 선택합니다.
  8. Technical Writing 서브그룹에 대해 이 단계를 반복합니다.

조직의 서브그룹을 만들었습니다. 다음으로 조직의 사용자를 만듭니다.

조직의 사용자 만들기#

이제 조직의 사용자를 수동으로 만듭니다. 이 사용자들은 테스트 사용자입니다. 첫 번째 테스트 사용자인 Alex Smith를 만들려면:

  1. 오른쪽 상단에서 Admin을 선택합니다.
  2. 왼쪽 사이드바에서 Overview > Users를 선택합니다.
  3. New user를 선택합니다.
  4. 필수 필드를 작성합니다:
    • Name: Alex Smith
    • Username: alexsmith
    • Email: alexsmith@example.com
    • 다른 필드는 그대로 둡니다.
  5. Create user를 선택합니다.

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

테스트 사용자의 비밀번호 설정#

사용자를 만든 후, 사용자의 개요 페이지로 이동합니다. 또는 왼쪽 사이드바에서 Users를 선택하고 사용자를 검색할 수 있습니다.

사용자를 선택한 후:

  1. Edit를 선택합니다.
  2. PasswordPassword confirmation 필드를 작성합니다.
  3. Save changes를 선택합니다.

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

Name Username Email
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. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.

  2. Manage > Members를 선택합니다.

  3. Invite members를 선택합니다.

  4. Username, name or email address 드롭다운 목록에서 Alex Smith를 선택합니다.

  5. Select maximum role 드롭다운 목록에서 Owner를 선택합니다.

  6. Access expiration date는 비워둡니다.

  7. Invite를 선택합니다.

  8. 다음 사용자들에 대해 이 과정을 반복합니다:

    User Role Access expiration date
    Blake Wang Maintainer Leave blank
    Charlie Devi Developer Leave blank
    Devon Ivanov Developer Leave blank
    Evan Kim Developer Leave blank
    Frankie Ali Reporter Leave blank
    Grayson Garcia Reporter Leave blank
    Hunter Silva Guest 2025-12-31

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

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

Development 그룹 및 모든 서브그룹의 Group Members 페이지에서 이 그룹들의 구성원을 확인합니다.

  • Source는 이 그룹에서 사용자 구성원 자격의 출처입니다. 추가된 구성원은 그룹에 직접 추가했기 때문에 직접 구성원입니다.
  • Role은 추가된 구성원이 이 그룹에서 가질 수 있는 최고 액세스 수준입니다. 역할을 선택하여 이 그룹에서 추가된 구성원의 역할을 변경할 수 있습니다.

부모 그룹 구성원으로 추가한 모든 사용자는 동일한 역할로 모든 서브그룹의 구성원이기도 합니다.

구성원 유형별 서브그룹 필터링#

서브그룹을 필터링하여 해당 서브그룹의 직접 구성원과 부모 그룹에서 서브그룹 구성원 자격을 상속받은 구성원을 볼 수 있습니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.
  2. User Experience 서브그룹을 선택합니다.
  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다.
  4. Members 페이지에서 Filter members 필드를 선택합니다.
  5. Membership을 선택한 다음 Indirect를 선택하고 Return을 누릅니다.

이제 해당 서브그룹 구성원 자격을 상속받은 User Experience 서브그룹 구성원만 볼 수 있습니다. 각 구성원의 Source 열을 확인하여 상속된 구성원을 확인할 수 있습니다. Inherited from Development라고 표시되어야 합니다.

각 사용자가 조직에서 자신의 역할과 관련된 서브그룹의 구성원으로만 있기를 원합니다. 그룹 및 서브그룹에서 사용자를 제거하기로 결정합니다.

그룹 및 서브그룹에서 사용자 제거#

서브그룹에서 구성원을 직접 제거할 수 없습니다. 부모 그룹에서만 제거할 수 있습니다.

부모 그룹으로 돌아가 Alex Smith를 제외한 모든 사람을 제거합니다:

  1. 상단 바에서 Search or go to를 선택하고 부모 그룹을 찾습니다.
  2. Manage > Members를 선택합니다.
  3. 제거하려는 구성원 행에서 수직 줄임표(⋮)를 선택한 다음 Remove member를 선택합니다.
  4. Remove member 확인 대화상자에서 Also remove direct user membership from subgroups and projects 체크박스를 선택합니다.
  5. Remove member를 선택합니다.

이제 부모 그룹 및 서브그룹에 한 명의 구성원만 있으며, 해당 구성원은 Owner 역할을 가집니다.

다음으로 서브그룹에 사용자를 직접 추가합니다.

서브그룹에 사용자 추가#

이제 다양한 서브그룹에 사용자를 직접 추가합니다.

Product Management 서브그룹에 사용자 추가#

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.
  2. Product Management 서브그룹을 선택합니다.
  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

여러분을 제외하고 Alex는 이 서브그룹의 유일한 구성원이며 직접 구성원입니다. 올바릅니다. 그러나 그들이 Owner 역할 대신 Maintainer 역할을 가져야 한다고 생각합니다.

서브그룹에서 사용자 역할 변경#

구성원 페이지에서 역할을 직접 변경할 수 없습니다. 서브그룹에서 역할을 변경하려면, Maintainer로 서브그룹에 초대합니다.

  1. Invite members를 선택합니다.
  2. 제품 관리자 Alex Smith에 대한 필드를 작성합니다.
    • Alex에게 Maintainer 역할을 부여합니다.
    • Access expiration date는 비워둡니다.
  3. Invite를 선택합니다.

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

The following member couldn't be invited
Review the invite errors and try again:
- Alex Smith: Access level should be greater than or equal to Owner inherited membership from group Development
Note

서브그룹의 부모 그룹에 대한 역할보다 낮은 액세스 수준의 서브그룹 역할을 Alex에게 부여할 수 없습니다. 부모 그룹에서 상속된 구성원 자격이 있기 때문입니다.

Alex를 이 서브그룹에서 Owner로 유지하기로 결정합니다. 조직에서 그들의 역할에 적합합니다. Cancel을 선택하여 이 초대를 취소합니다.

Product Management 서브그룹에 올바른 구성원과 역할이 있습니다. 다음으로 Engineering 서브그룹에 사용자를 추가합니다.

Engineering 서브그룹에 사용자 추가#

이제 Engineering 서브그룹에 일부 사용자를 초대합니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.

  2. Engineering 서브그룹을 선택합니다.

  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다. 여러분과 Alex만 구성원입니다. 두 구성원 모두 Owner 역할을 가지며, 상속된 역할입니다.

  4. Invite members를 선택합니다.

  5. 다음 구성원에 대한 필드를 작성합니다:

    User Role Access expiration date
    Blake Wang Maintainer Leave blank
    Charlie Devi Developer Leave blank
    Devon Ivanov Developer Leave blank
    Evan Kim Developer Leave blank
  6. Invite를 선택합니다.

    Blake Wang은 엔지니어링 관리자로서의 책임에 맞게 이 서브그룹에서 Maintainer 역할을 가집니다. 세 명의 개발자는 모두 Developer 역할을 가지며, 직접 역할입니다.

  7. 이 서브그룹의 구성원 페이지에서 역할을 직접 변경할 수 있습니다. Role 아래에서 Maintainer를 선택하여 Blake Wang의 역할을 이 서브그룹의 Owner로 변경합니다.

  8. Development 그룹의 구성원 페이지로 돌아갑니다. Engineering 서브그룹의 구성원들이 부모 그룹의 구성원이 아님을 알 수 있습니다.

사용자를 필요한 그룹과 서브그룹에 직접 추가함으로써 사용자가 불필요하게 그룹의 구성원이 되는 문제를 방지합니다. 다양한 그룹 및 프로젝트에 대한 액세스를 더 정밀하게 제어할 수 있습니다.

User Experience 서브그룹에 사용자 추가#

User Experience 서브그룹에는 두 개의 추가 중첩 서브그룹이 있습니다:

  • UX Design
  • Technical Writing

사용자 측면에서, UX Design에는 Frankie Ali와 Hunter Silva만 포함되어야 하고, Technical Writing에는 Grayson Garcia만 포함되어야 합니다.

세 명의 사용자를 모두 User Experience 서브그룹에 추가하면, 상속된 권한으로 인해 두 중첩 서브그룹 모두에 포함됩니다.

따라서 이 사용자들을 User Experience 서브그룹이 아닌 적절한 중첩 서브그룹에 직접 추가합니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.

  2. User Experience 서브그룹을 선택한 다음 UX Design 서브그룹을 선택합니다.

  3. 왼쪽 사이드바에서 Manage > Members를 선택합니다. 여러분과 Alex Smith만 구성원입니다. 상속된 역할입니다.

  4. Invite members를 선택합니다.

  5. 다음 구성원에 대한 필드를 작성하고 Invite를 선택합니다:

    User Role Access expiration date
    Frankie Ali Maintainer Leave blank
    Hunter Silva Guest 2025-12-31
  6. Technical Writing 서브그룹에 대해 반복합니다:

    User Role Access expiration date
    Grayson Garcia Maintainer Leave blank

적절한 중첩 서브그룹에 사용자를 추가했습니다. Grayson Garcia도 User Experience 서브그룹에 있어야 한다고 결정합니다.

다른 서브그룹에 사용자 추가#

Technical Writing 서브그룹에 대한 역할을 동일하게 유지하면서 User Experience 서브그룹에 특정 역할로 Grayson을 추가할 수 있습니다.

  1. User Experience 서브그룹으로 이동합니다.
  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다. 여러분과 Alex Smith만 구성원입니다. 상속된 역할입니다.
  3. Invite members를 선택합니다.
  4. Technical Writing 서브그룹에 대한 Maintainer 역할보다 낮은 수준의 권한을 가진 Developer로 Grayson Garcia를 초대합니다.

Grayson에게 Developer 역할을 부여하면 User Experience 서브그룹에서 불필요하게 높은 수준의 권한을 갖지 않게 됩니다.

그러나 상속된 권한으로 인해, Grayson Garcia를 User Experience 서브그룹에 추가하면 UX Design 중첩 서브그룹에도 Developer로 추가됩니다.

Note

그룹 및 서브그룹의 상속된 권한에 주의하세요. 최소한의 그룹 및 서브그룹에 사용자를 추가합니다. 이 방법은 사용자가 속할 필요가 없는 그룹에 실수로 추가될 가능성을 최소화합니다.

  1. User Experience 서브그룹 구성원 페이지로 이동합니다.
  2. Frankie Ali와 Hunter Silva를 Reporter로 추가합니다. Hunter에게는 동일한 만료일을 부여합니다.
  3. Technical Writing 중첩 서브그룹으로 이동합니다.

Frankie Ali와 Hunter Silva는 이제 상속된 권한으로 인해 Technical Writing 서브그룹의 구성원입니다.

그룹, 서브그룹 및 구성원으로 조직을 성공적으로 설정했습니다.

다음으로 구성원들이 작업할 그룹 중 하나에 프로젝트를 만듭니다.

프로젝트 만들기#

이제 조직의 일부 구성원이 작업해야 하는 업무가 있다고 가정해 보겠습니다. 그 업무는 전체 조직을 위한 것입니다. 그 업무를 구성하기 위해 Development 부모 그룹에 프로젝트를 만들고 다양한 사용자를 해당 프로젝트에 추가합니다.

  1. 상단 바에서 Search or go to를 선택하고 Development 그룹을 찾습니다.
  2. 오른쪽 상단에서 Create new(+)와 New project/repository를 선택합니다.
  3. Create blank project를 선택합니다.
  4. 프로젝트 세부 정보를 입력합니다:
    • Project name 필드에 프로젝트 이름으로 Release 2.0을 입력합니다.
    • Project slug 필드는 프로젝트 이름을 기반으로 하여 그대로 둡니다.
    • 사용자의 프로젝트 보기 및 액세스 권한을 수정하려면 Visibility Level을 변경할 수 있습니다. 부모 그룹이 비공개이므로 프로젝트도 Private으로만 설정할 수 있습니다.
    • Git 저장소가 초기화되고, 기본 브랜치가 있으며, 복제할 수 있도록 README 파일을 만들려면 Initialize repository with a README 체크박스를 선택합니다.
    • 알려진 보안 취약점에 대해 프로젝트의 소스 코드를 분석하려면 Enable Static Application Security Testing (SAST) 체크박스를 선택합니다.
    • 무단 액세스를 방지하기 위해 보안 인증 정보 및 비밀을 소스 코드에서 분석하려면 Enable Secret Detection 체크박스를 선택합니다.
  5. Create project를 선택합니다.

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

이 프로젝트에서 Manage > Members로 이동합니다.

부모 그룹의 기존 구성원(여러분과 Alex)은 이미 이 프로젝트의 구성원입니다. 프로젝트가 그룹에 속해 있으면 프로젝트 구성원은 그룹에서 역할을 상속받습니다.

다른 사용자들도 이 프로젝트의 일부가 되어야 합니다. 이제 프로젝트에 직접 사용자를 추가합니다.

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

  1. 상단 바에서 Search or go to를 선택하고 Release 2.0 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Manage > Members를 선택합니다.

  3. Invite members를 선택합니다. 다음 사용자를 초대합니다:

    User Role Access expiration date
    Charlie Devi Maintainer Leave blank
    Frankie Ali Maintainer Leave blank
    Grayson Garcia Maintainer Leave blank
  4. Invite를 선택합니다.

  5. 이 사용자들을 프로젝트에 직접 추가했으므로 필요한 경우 프로젝트 구성원 페이지에서 역할을 변경할 수 있습니다. 이를 테스트하기 위해 Grayson Garcia의 역할을 Developer로 변경합니다.

  6. Development 부모 그룹 구성원 페이지로 이동합니다. 방금 프로젝트에 추가한 사용자들이 프로젝트가 부모 그룹에 있음에도 불구하고 부모 그룹에 없습니다.

  7. Guest 역할로 동일한 사용자들을 부모 그룹에 직접 추가합니다. 이 페이지에서 역할을 직접 변경할 수 있습니다. Frankie의 역할을 Reporter로 변경합니다.

  8. Release 2.0 프로젝트 구성원 페이지로 돌아갑니다. 구성원의 프로젝트 역할은 여전히 Maintainer 2명과 Developer 1명입니다.

서브그룹의 구성원인 세 명의 사용자를 부모 그룹의 프로젝트에 성공적으로 추가하고, 해당 사용자들에게 프로젝트 및 부모 그룹에서 특정 역할을 부여했습니다.