튜토리얼: 조직 설정하기

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.

또한 조직에는 계약 직 전략가인 Hunter Silva가 있습니다.

다음을 생성할 것입니다:

  1. 소프트웨어 개발 조직.
  2. 작업 관리를 위한 그룹, 서브그룹 및 프로젝트.
  3. 해당 그룹과 프로젝트에 추가할 사용자 및 사용자 역할 할당.
  4. 특정 작업을 위한 조직의 프로젝트 생성 및 해당 프로젝트에 사용자 추가.

시작하기 전에

  • Self-Managed형 GitLab 인스턴스에 관리자 액세스권이 있는지 확인하세요.

조직 상위 그룹 및 서브그룹 생성

먼저 개발이라는 그룹을 생성하여 소프트웨어 개발 조직 전체의 상위 그룹으로 사용합니다.

  1. Self-Managed형 GitLab 인스턴스를 엽니다.
  2. 왼쪽 사이드바에서 맨 위에 있는 새로 만들기 () 및 새 그룹을 선택합니다.
  3. 그룹 생성을 선택합니다.
  4. 그룹 이름Development를 입력합니다.
  5. 그룹 URLdevelopment-group을 입력합니다. “그룹 경로를 사용할 수 있습니다”라는 메시지가 표시됩니다. 그룹 URL은 네임스페이스에 사용됩니다.
  6. 가시성 레벨은 그룹이 비공개여야 하므로 비공개로 설정합니다. 이는 이 그룹의 모든 서브그룹이 비공개여아 한다는 것을 의미합니다.
  7. 다음 질문에 답변하여 GitLab 환경을 맞춥니다:
    • 역할에서 개발팀 리드를 선택합니다. 이 역할은 구성원 권한에 영향을 미치는 다른 역할과 다릅니다.
    • 이 그룹을 사용할 대상은 누구입니까?에서 내 회사 또는 팀을 선택합니다.
    • 이 그룹을 사용하려는 목적은 무엇입니까?에서 코드를 저장하고 싶습니다를 선택합니다.
  8. 아직 어떤 GitLab 구성원이나 다른 사용자도 그룹에 초대하지 마세요.
  9. 그룹 생성을 선택합니다.

GitLab에서 네임스페이스는 연관된 프로젝트를 구성하는 위치를 제공합니다.

이제 조직의 상위 그룹을 생성했습니다. 이제 서브그룹을 생성할 차례입니다.

조직 서브그룹 생성

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

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

이제 이 조직 구조를 반영하기 위해 서브그룹을 생성합니다.

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택합니다.
  2. 내 모든 그룹 보기를 선택합니다.
  3. Development를 선택합니다. 그룹 이름 옆에 소유자 레이블이 표시되어야 합니다. 이는 Owner 역할을 갖고 있기 때문입니다.
  4. 상위 그룹 개요 페이지에서 오른쪽 상단에 새 서브그룹을 선택합니다.
  5. 서브그룹 이름Product Management를 입력합니다.
  6. 서브그룹 슬러그product-management로 자동 완성됩니다. 이 필드를 변경하지 마세요.
  7. 가시성 레벨에서 상위 그룹 Development가 비공개이므로 비공개만 선택할 수 있습니다.
  8. 서브그룹 생성을 선택합니다.
  9. 다음과 같은 서브그룹들을 위의 단계를 반복하여 생성합니다:
    • Engineering.
    • User Experience.
      • UX Design.
      • Technical Writing.

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. User Experience 하위 그룹을 선택합니다.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원을 선택합니다.
  4. 구성원 필터링 필드를 선택합니다.
  5. 멤버십을 선택한 다음 상속됨을 선택하고 Return을 누릅니다.

그러면 이제 상속된 멤버십을 가진 User Experience 하위 그룹 구성원만 표시됩니다.

각 사용자가 조직 내에서 자신의 역할과 연결된 하위 그룹의 구성원으로만 속하길 원합니다. 따라서 사용자들을 그룹 및 하위 그룹에서 제거하기로 결정합니다.

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

하위 그룹에서 구성원을 직접적으로 제거할 수는 없습니다. 부모 그룹에서만 제거할 수 있습니다.

부모 그룹으로 돌아가서 Alex Smith를 제외한 모든 구성원을 제거합니다.

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

이제 부모 그룹과 하위 그룹에는 단 하나의 구성원만 남아 있으며 해당 구성원은 소유자 역할을 갖고 있습니다.

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

하위 그룹에 사용자 추가

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

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

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

당신을 제외하고 Alex만이 이 하위 그룹의 구성원이자 직접 구성원입니다. 이는 올바른 것입니다. 그러나 Alex는 Owner 역할 대신 유지보수자(Maintainer) 역할을 가져야 한다고 생각합니다.

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

그들의 역할을 직접 변경할 수는 없습니다. 그들의 역할을 유지보수자로 변경하려면 해당 사용자를 유지보수자로 하위 그룹에 초대해야 합니다.

  1. 구성원 초대를 선택합니다.
  2. 제품 관리자, Alex Smith에 대한 필드를 작성하세요.
    • Alex에게 유지보수자(Maintainer) 역할을 부여합니다.
    • 접근 만료 날짜를 비워 둡니다.
  3. 초대를 선택합니다.

아래 메시지가 표시됩니다:

다음 구성원이 초대되지 않았습니다.
초대 오류를 검토하고 다시 시도하세요:

- Alex Smith: Access level should be greater than or equal to Owner inherited membership from group Development

그들이 부모 그룹에서 상속 된 멤버십보다 낮은 액세스 수준을 가진 하위 그룹 역할을 Alex에게 부여할 수 없습니다.

그들의 조직 내 역할을 고려할 때 Alex를 이 하위 그룹에서 소유자로 유지하는 것이 적절하다고 결정합니다. 이 초대를 취소하기 위해 취소를 선택하세요.

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

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

이제 엔지니어링 하위 그룹에 일부 사용자를 초대할 것입니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 Development 그룹을 찾습니다.
  2. 엔지니어링 하위 그룹을 선택합니다.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원을 선택합니다. 현재 Owner 역할을 가진 당신과 Alex만이 구성원입니다. 이들은 상속된 역할입니다.
  4. 구성원 초대를 선택합니다.
  5. 다음 구성원을 위한 필드를 작성합니다:

    사용자 역할 접근 만료 날짜
    Blake Wang 유지보수자(Maintainer) 비워 둡니다
    Charlie Devi 개발자(Developer) 비워 둡니다
    Devon Ivanov 개발자(Developer) 비워 둡니다
    Evan Kim 개발자(Developer) 비워 둡니다
  6. 초대를 선택합니다.

    Blake Wang는 엔지니어링 관리자로서 유지보수자(Maintainer) 역할을 수행합니다. 세 개의 개발자들은 모두 개발자(Developer) 역할을 갖습니다. 이들은 직접적인 역할입니다.

  7. 이들의 역할을 이 하위 그룹의 구성원 페이지에서 직접 변경할 수 있습니다. Blake Wang의 역할을 이 하위 그룹의 소유자로 변경하세요.
  8. 개발 그룹의 구성원 페이지로 돌아가봅니다. 엔지니어링 하위 그룹의 구성원은 부모 그룹의 구성원이 아닌 것을 볼 수 있습니다.

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

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

사용자 경험 하위 그룹에는 추가로 두 가지의 중첩된 하위 그룹이 있습니다:

  • UX 디자인.
  • 기술 문서 작성.

사용자 면에서 UX 디자인에는 Frankie Ali와 Hunter Silva만 포함되어야 하며, 기술 문서 작성에는 Grayson Garcia만 포함되어야 합니다.

세 명의 사용자를 모두 사용자 경험 하위 그룹에 추가하면 모든 세 명이 상속 된 권한으로 인해 둘 이상의 중첩된 하위 그룹에 포함됩니다.

따라서 사용자를 사용자 경험 하위 그룹이 아닌 해당 중첩된 하위 그룹에 직접 추가하기로 결정합니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 Development 그룹을 찾습니다.
  2. 사용자 경험 하위 그룹을 선택한 후 UX 디자인 하위 그룹을 선택합니다.
  3. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원을 선택합니다. 현재 여러분과 Alex Smith만이 구성원입니다. 이들은 상속된 역할입니다.
  4. 구성원 초대를 선택합니다.
  5. 다음 구성원을 위한 필드를 작성하고 다음 구성원을 선택하세요:

    사용자 역할 접근 만료 날짜
    Frankie Ali 유지보수자(Maintainer) 비워 둡니다
    Hunter Silva 게스트(Guest) 2025-12-31
  6. Technical Writing 하위 그룹에 대해 반복하세요:

    사용자 역할 접근 만료 날짜
    Grayson Garcia 유지보수자(Maintainer) 비워 둡니다

이제 사용자들을 해당 중첩된 하위 그룹에 추가하였습니다. 그러나 Grayson Garcia는 사용자 경험 하위 그룹에도 포함되어야 한다고 결정합니다.

다른 하위 그룹에 사용자 추가

Grayson을 Technical Writing 하위 그룹에서의 역할을 유지한 채 사용자 경험 하위 그룹에 특정 역할로 추가할 수 있습니다.

  1. 사용자 경험 하위 그룹으로 이동합니다.
  2. 왼쪽 사이드바에서 하위 그룹 정보 > 구성원을 선택합니다. 현재 여러분과 Alex Smith만이 구성원입니다. 이들은 상속된 역할입니다.
  3. 구성원 초대를 선택합니다.
  4. Grayson Garcia를 개발자(Developer)로 초대합니다. 이는 그들의 Technical Writing 하위 그룹에서의 유지보수자(Maintainer) 역할보다 낮은 권한 수준의 역할입니다.

이렇게 함으로써 Grayson Garcia가 사용자 경험 하위 그룹에서 불필요하게 높은 수준의 권한을 갖지 않게 됩니다.

그러나 상속 된 권한으로 인해 Grayson Garcia를 사용자 경험 하위 그룹에 추가하면 그들은 게스트(Guest)로 UX 디자인 중첩된 하위 그룹에도 추가됩니다.

그룹 및 하위 그룹의 상속된 권한에 유의하십시오. 사용자를 최소한의 그룹과 하위 그룹에 추가하여 그룹의 멤버십을 무심코 추가할 가능성을 최소화하세요.

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

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

이제 그룹, 하위 그룹 및 구성원을 성공적으로 설정하셨습니다.

다음으로 그룹 중 하나에 프로젝트를 생성하여 구성원이 작업할 수 있도록 하겠습니다.

프로젝트 생성

이제 당신은 조직의 특정 구성원들이 작업해야 하는 작업물이 있고, 이 작업물이 전체 조직을 위한 것이라고 가정해 봅시다. 그 작업물을 조직화하기 위해, 개발 부모 그룹 내에서 프로젝트를 생성하고 해당 프로젝트에 다양한 사용자를 추가할 것입니다.

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

이제 당신은 부모 그룹 내에서 프로젝트를 생성했습니다.

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

부모 그룹의 기존 구성원(당신과 알렉스)은 프로젝트가 그룹에 속하기 때문에 자동으로 그룹의 역할을 상속받습니다.

이 프로젝트에 포함되어야 하는 다른 사용자들이 있습니다. 이제 직접 사용자를 프로젝트에 추가할 것입니다.

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

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

    사용자 역할 액세스 만료일
    찰리 데비 관리자 비워 둠
    프랭키 알리 관리자 비워 둠
    그레이슨 가르시아 관리자 비워 둠
  4. 초대를 선택합니다.
  5. 이들 사용자를 프로젝트에 직접 추가했기 때문에, 필요하다면 프로젝트 구성원 페이지에서 그들의 역할을 변경할 수 있습니다. 이를 테스트하기 위해 그레이슨 가르시아의 역할을 개발자로 변경합니다.
  6. 개발 부모 그룹 구성원 페이지로 이동합니다. 방금 프로젝트에 추가한 사용자들은 부모 그룹에 있음에도 불구하고 그 곳에 표시되지 않습니다.
  7. 동일한 사용자들을 부모 그룹에 직접 추가하고 게스트 역할로 변경합니다. 프랭키의 역할을 기고자로 변경할 수 있습니다.
  8. 릴리스 2.0 프로젝트 구성원 페이지로 돌아갑니다. 구성원의 프로젝트 역할은 여전히 2명의 관리자와 1명의 개발자입니다.

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