튜토리얼: 조직 설정하기

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. 특정 작업을 위한 조직 내 프로젝트 및 해당 프로젝트에 사용자 추가

시작 전에

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

조직 상위 그룹 및 하위 그룹 만들기

먼저 전체 소프트웨어 개발 조직을 위한 상위 그룹인 Development 그룹을 생성합니다.

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

GitLab에서 네임스페이스는 관련 프로젝트를 정리할 수 있는 공간을 제공합니다.

조직의 상위 그룹을 작성했습니다. 다음으로 하위 그룹을 생성할 것입니다.

조직 하위 그룹 생성

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

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

이제 이러한 구조를 반영하기 위해 하위 그룹을 생성할 것입니다.

하위 그룹과 프로젝트는 부모 그룹의 가시성 설정보다 적어도 그 이상으로 설정해야 합니다. 예를 들어 비공개 상위 그룹에서 공개 하위 그룹을 가질 수 없습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택합니다.
  2. 나의 그룹 모두 보기를 선택합니다.
  3. 개발을 선택합니다. 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에게 소유자(Owner) 역할 부여. 이 역할은 그룹의 모든 서브그룹 프로젝트에 적용됩니다.
    • 액세스 만료 날짜를 비워 둡니다.
  5. 초대를 선택합니다.
  6. 다음 사용자에 대해이 프로세스를 반복합니다.

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

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

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

개발(Development) 그룹 및 모든 서브그룹의 그룹 구성원(Group Members) 페이지에서 이러한 그룹의 구성원을 확인합니다.

원본은 이 그룹의 구성원으로서 사용자의 멤버십의 출처입니다. 추가된 구성원은 직접 그룹에 추가했기 때문에 직접 구성원입니다.

최대 역할(Max role)은 추가된 구성원이 이 그룹에서 허용된 최고 수준의 액세스입니다. 이 열의 드롭다운 목록을 사용하여이 그룹에서 추가된 구성원의 역할을 변경할 수 있습니다.

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

멤버십 유형의 서브그룹 필터링

서브그룹을 필터링하여 해당 서브그룹의 직접 구성원과 부모 그룹에서 상속 된 멤버십을 갖는 구성원을 표시할 수 있습니다.

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

이제 해당 서브그룹의 상속 된 구성원만 볼 수 있습니다.

각 사용자가 조직의 역할과 관련된 서브그룹의 구성원만 되도록 하려고 합니다. 사용자를 그룹 및 서브그룹에서 삭제하기로 결정했습니다.

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

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

부모 그룹으로 이동하여 Alex Smith를 제외한 모두를 제거합니다.

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

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

이제 다시 서브그룹에 사용자를 직접 추가할 것입니다.

서브그룹에 사용자 추가

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

제품 관리(Product Management) 서브그룹에 사용자 추가

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

자신을 제외하고, Alex만이 이 서브그룹의 구성원이며 직접적으로 구성원입니다. 이는 올바릅니다. 그러나, Alex가 소유자 역할 대신 메인테이너 역할을 지녀야한다고 생각합니다.

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

구성원 페이지에서 직접적으로 역할을 변경할 수는 없습니다. 서브그룹에 대해 그들의 역할을 변경하려면 해당 사용자를 메인테이너로 초대해야합니다.

  1. 구성원 초대를 선택합니다.
  2. 제품 매니저인 Alex Smith에 대한 필드를 작성합니다.
    • Alex에게 메인테이너(Maintainer) 역할을 부여합니다.
    • 액세스 만료 날짜를 비워 둡니다.
  3. 초대를 선택합니다.

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

다음 구성원은 초대할 수 없습니다.
초대 오류를 검토하고 다시 시도하십시오:
- Alex Smith: 액세스 수준이 부모 그룹인 "개발(Development)"에서 상속 된 소유자 속성보다 크거나 같아야합니다

그들이 부모 그룹의 상속 된 멤버십을 갖고 있기 때문에, 이 서브그룹에서 Alex에게 부모 그룹의 역할보다 낮은 액세스 수준을 부여할 수 없습니다.

조직의 역할을 감안할 때, Alex를 이 서브그룹에서 소유자로 유지하기로 결정했습니다. 이 초대를 취소하려면 취소를 선택하십시오.

제품 관리(Product Management) 서브그룹은 올바른 구성원과 역할을 갖고 있습니다. 다음은 엔지니어링 서브그룹에 사용자를 추가할 것입니다.

엔지니어링(Engineering) 서브그룹에 사용자 추가

이제 몇 명의 사용자를 엔지니어링 서브그룹에 초대할 것입니다.

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

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

    Blake Wang는 이 서브그룹에서 엔지니어링 매니저로서의 책임에 따라 메인테이너 역할을 갖습니다. 세 명의 개발자는 모두 개발자 역할을 갖습니다. 이것들은 직접적인 역할입니다.

  7. 이 서브그룹의 구성원 페이지에서 직접적으로 역할을 변경할 수 있습니다. Blake Wang를 이 서브그룹의 소유자로 변경합니다.
  8. 다시 개발 그룹의 구성원 페이지로 이동합니다. 엔지니어링 서브그룹의 구성원이 부모 그룹의 구성원이 아닌 것을 확인할 수 있습니다.

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

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

사용자 경험 하위그룹에는 두 개의 더 깊은 단계의 하위그룹이 있습니다.

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

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

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

따라서 이 사용자들을 사용자 경험 하위그룹이 아닌 해당 중첩된 하위그룹에 직접 추가해야 합니다.

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

    사용자 역할 엑세스 만료 날짜
    Frankie Ali Maintainer 비워 둡니다
    Hunter Silva Guest 2025-12-31
  6. 기술 문서 작성 하위그룹에 대해 반복합니다:

    사용자 역할 엑세스 만료 날짜
    Grayson Garcia Maintainer 비워 둡니다

사용자들을 해당 중첩된 하위그룹에 추가했습니다. Grayson Garcia를 또한 사용자 경험 하위그룹에 포함시키기로 결심했습니다.

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

Grayson을 기술 문서 작성 하위그룹에서의 현재 역할을 유지한 채 사용자 경험 하위그룹에 특정 역할로 추가할 수 있습니다.

  1. 사용자 경험 하위그룹으로 이동합니다.
  2. 왼쪽 사이드바에서 하위그룹 정보 > 구성원을 선택합니다. 당신과 Alex Smith만 회원입니다. 이는 상속된 역할입니다.
  3. 구성원 초대를 선택합니다.
  4. Grayson Garcia를 낮은 권한 수준인 Developer로 초대합니다.

이는 Grayson Garcia가 사용자 경험 하위그룹에서 불필요하게 높은 권한을 갖지 않게 합니다.

그러나 상속된 권한 때문에 Grayson Garcia를 사용자 경험 하위그룹에 추가하면 Developer로써 UX 디자인 중첩된 하위그룹에도 추가됩니다.

그룹 및 하위그룹의 상속된 권한을 주의하세요. 사용자를 가능한 적은 수의 그룹 및 하위그룹에 추가하여 필요 없는 그룹의 회원으로 오도록 하는 기회를 최소화하세요.

  1. 사용자 경험 하위그룹 구성원 페이지로 이동합니다.
  2. Frankie Ali와 Hunter Silva를 Reporters로 추가합니다. Hunter에게 동일한 만료 날짜를 지정하세요.
  3. 기술 문서 작성 중첩된 하위그룹으로 이동합니다.

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

조직을 그룹, 하위그룹 및 회원으로 성공적으로 설정했습니다.

프로젝트 생성

이제 당신이 속한 조직의 특정 회원이 전체 조직에서 작업해야 하는 작업이 있다고 가정해 봅시다. 그 작업을 조직화하기 위해 개발 상위 그룹에 프로젝트를 생성하고 다른 사용자를 해당 프로젝트에 추가할 것입니다.

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

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

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

이 프로젝트의 기존 회원 중 일부 (당신과 Alex)는 이미 상위 그룹의 회원이고 프로젝트 회원은 그룹에서 역할을 상속합니다.

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

프로젝트 및 상위 그룹에 사용자 추가

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

    사용자 역할 엑세스 만료 날짜
    Charlie Devi Maintainer 비워 둡니다
    Frankie Ali Maintainer 비워 둡니다
    Grayson Garcia Maintainer 비워 둡니다
  4. 초대를 선택합니다.
  5. 이 사용자들을 프로젝트에 직접 추가했기 때문에 프로젝트 회원 페이지에서 필요에 따라 사용자 역할을 변경할 수 있습니다. Grayson Garcia의 역할을 테스트로 Developer로 변경합니다.
  6. 개발 상위 그룹 구성원 페이지로 이동합니다. 프로젝트에 방금 추가한 사용자들은 그룹에 없습니다.
  7. Guest 역할로 상위 그룹에 동일한 사용자를 직접 추가합니다. Frankie의 역할을 Reporter로 변경할 수 있습니다.
  8. 다시 릴리스 2.0 프로젝트 구성원 페이지로 이동합니다. 구성원은 2명의 Maintainer와 1명의 Developer인 채로 유지됩니다.

그러므로 서브그룹의 구성원인 세 명의 사용자를 상위 그룹에 속한 프로젝트에 성공적으로 추가하고 그 사용자들에게 프로젝트와 상위 그룹에서 특정 역할을 부여했습니다.