튜토리얼: 이슈 트리아지를 위한 하위 그룹이 있는 복합 그룹 설정하기
GitLab v19.5Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
이슈 트리아지란 유형과 심각도에 따라 분류하는 과정을 말합니다. 이 튜토리얼에서는 이러한 시나리오를 위해 하위 그룹이 있는 GitLab 그룹을 설정하는 방법을 배웁니다. 이슈 트리아지를 위한 하위 그룹이 있는 복합 그룹을 GitLab에 설정하려면 다음을 진행합니다.
이슈 트리아지란 유형과 심각도에 따라 분류하는 과정을 말합니다. 프로젝트가 성장하고 사람들이 더 많은 이슈를 만들게 되면, 들어오는 이슈를 어떻게 트리아지할지에 대한 워크플로를 만들어두는 것이 좋습니다.
이 튜토리얼에서는 이러한 시나리오를 위해 하위 그룹이 있는 GitLab 그룹을 설정하는 방법을 배웁니다.
이슈 트리아지를 위한 하위 그룹이 있는 복합 그룹을 GitLab에 설정하려면 다음을 진행합니다.
- 그룹 만들기
- 그룹 안에 하위 그룹 만들기
- 하위 그룹 안에 프로젝트 만들기
- 유형, 심각도, 우선순위 기준 정하기
- 기준 문서화하기
- 스코프 레이블 만들기
- 새 레이블 우선순위 지정하기
- 상위 그룹 이슈 트리아지 보드 만들기
- 기능을 위한 이슈 만들기
Before you begin#
- 이 튜토리얼에서 기존 프로젝트를 사용한다면 해당 프로젝트에 대해 Reporter, Developer, Maintainer,
또는 Owner 권한이 있는지 확인합니다.
- 기존 프로젝트에 상위 그룹이 없다면 그룹을 만들고 프로젝트 레이블을 그룹 레이블로 승격합니다.
Create a group#
그룹은 본질적으로 여러 프로젝트를 담는 컨테이너입니다. 그룹을 사용하면 여러 프로젝트를 관리하고 그룹 구성원과 한 번에 소통할 수 있습니다.
새 그룹을 만들려면 다음을 진행합니다.
- 오른쪽 위 모서리에서 Create new(+)를 선택하고 New group을 선택합니다.
- Create group을 선택합니다.
- 그룹 세부 정보를 입력합니다.
- Group name에
Web App Dev또는 다른 값을 입력합니다.
- Group name에
- 페이지 하단에서 Create group을 선택합니다.
Create subgroups inside a group#
하위 그룹은 그룹 안의 그룹입니다. 하위 그룹은 큰 규모의 프로젝트를 정리하고 권한을 관리하는 데 도움이 됩니다.
새 하위 그룹을 만들려면 다음을 진행합니다.
- 상단 바에서 Search or go to를 선택하고 Web App Dev 그룹을 찾습니다.
- Create new(+)와 New subgroup을 선택합니다.
- 하위 그룹 세부 정보를 입력합니다.
- Subgroup name에
Frontend또는 다른 값을 입력합니다.
- Subgroup name에
- Create subgroup을 선택합니다.
- 같은 과정을 반복해
Backend또는 다른 값으로 두 번째 하위 그룹을 만듭니다.
Create projects inside subgroups#
여러 프로젝트에 걸쳐 이슈 추적을 관리하려면 하위 그룹 안에 프로젝트를 만들어야 합니다.
새 프로젝트를 만들려면 다음을 진행합니다.
- 상단 바에서 Search or go to를 선택하고
Frontend하위 그룹을 찾습니다. - 오른쪽 위 모서리에서 Create new(+)를 선택하고 New project/repository를 선택합니다.
- Create blank project를 선택합니다.
- 프로젝트 세부 정보를 입력합니다.
- Project name에
Web UI를 입력합니다. 자세한 내용은 프로젝트 명명 규칙을 참고합니다.
- Project name에
- 페이지 하단에서 Create project를 선택합니다.
- 같은 과정을 반복해
Frontend하위 그룹에Accessibility Audit이라는 두 번째 프로젝트를,Backend하위 그룹에API라는 세 번째 프로젝트를 만듭니다.
Decide on the criteria for types, severity, and priority#
다음으로 다음 사항을 정해야 합니다.
- 인식하고자 하는 이슈의 유형. 더 세분화된 접근이 필요하다면 각 유형에 대한 하위 유형을 만들 수도 있습니다. 유형은 팀에 요청된 작업의 종류를 이해할 수 있도록 작업을 분류하는 데 도움이 됩니다.
- 들어오는 작업이 최종 사용자에게 미치는 영향을 정의하고 우선순위 지정을 돕기 위한 우선순위와 심각도 단계.
이 튜토리얼에서는 다음과 같이 정했다고 가정합니다.
- 유형:
Bug,Feature,Maintenance - 우선순위:
1,2,3,4 - 심각도:
1,2,3,4
참고할 만한 예시로 GitLab 이 이를 어떻게 정의하는지 확인합니다.
Document your criteria#
모든 기준에 합의한 뒤에는 팀원들이 언제든 접근할 수 있는 곳에 전부 기록해 둡니다.
예를 들어 프로젝트의 위키에 추가하거나, GitLab Pages로 게시한 회사 핸드북에 추가합니다.
Create scoped labels#
다음으로 이슈에 추가해 분류할 레이블을 만듭니다.
이를 위한 최적의 도구는 스코프 레이블로, 서로 배타적인 속성을 설정하는 데 사용할 수 있습니다.
앞서 정리한 유형, 심각도, 우선순위 목록과 대조하며 일치하는 스코프 레이블을 만듭니다.
스코프 레이블 이름의 콜론 두 개(::)는 같은 스코프의 레이블 두 개가 함께 사용되는 것을 막습니다.
예를 들어 이미 type::bug 레이블이 붙은 이슈에 type::feature 레이블을 추가하면 기존 레이블은
제거됩니다.
스코프 레이블은 Premium 및 Ultimate 티어에서 사용할 수 있습니다. Free 티어를 사용 중이라면 대신 일반 레이블을 사용할 수 있습니다. 다만 이 경우 레이블은 서로 배타적이지 않습니다.
레이블을 모든 하위 그룹의 모든 프로젝트에서 사용할 수 있게 하려면 먼저 하위 그룹을 포함하는 상위 그룹으로 이동합니다. 특정 하위 그룹의 프로젝트에서만 레이블을 사용할 수 있게 하려면 해당 하위 그룹 안에서 다음 단계를 따릅니다.
각 레이블을 만들려면 다음을 진행합니다.
- 상단 바에서 Search or go to를 선택하고 Web App Dev 그룹을 찾습니다.
- Manage > Labels를 선택합니다.
- New label을 선택합니다.
- Title 텍스트 상자에 레이블 이름을 입력합니다.
type::bug부터 시작합니다. - 선택 사항입니다. 사용 가능한 색상 중 하나를 선택하거나, Background color 텍스트 상자에 특정 색상의 16진수 색상 값을 입력합니다.
- Create label을 선택합니다.
필요한 모든 레이블을 만들 때까지 3~6단계를 반복합니다. 다음은 예시입니다.
type::bugtype::featuretype::maintenancepriority::1priority::2priority::3priority::4severity::1severity::2severity::3severity::4
Prioritize the new labels#
이제 새 레이블을 우선순위 레이블로 설정합니다. 이렇게 하면 우선순위나 레이블 우선순위로 정렬할 때 가장 중요한 이슈가 이슈 목록 상단에 표시됩니다.
우선순위나 레이블 우선순위로 정렬할 때 어떤 일이 일어나는지 알아보려면 이슈 목록 정렬 및 순서를 참고합니다.
레이블의 우선순위를 지정하려면 다음을 진행합니다.
- Labels 페이지에서 우선순위를 지정하려는 레이블 옆에 있는 Prioritize([star-o])를 선택합니다. 이제 이 레이블은 Prioritized labels 아래, 레이블 목록 맨 위에 표시됩니다.
- 이 레이블들의 상대적 우선순위를 변경하려면 목록에서 위아래로 드래그합니다. 목록 위쪽에 있을수록 우선순위가 높습니다.
- 앞서 만든 모든 레이블의 우선순위를 지정합니다. 우선순위와 심각도가 더 높은 레이블이 더 낮은 값의 레이블보다 목록 위쪽에 오도록 합니다.

Create a parent group issue triage board#
들어오는 이슈 백로그에 대비하기 위해 레이블별로 이슈를 정리하는 이슈 보드를 만듭니다. 카드를 여러 목록으로 드래그해 이슈를 빠르게 만들고 레이블을 추가하는 데 이 보드를 사용합니다.
이슈 보드를 설정하려면 다음을 진행합니다.
- 보드의 스코프를 정합니다. 예를 들어 이슈에 심각도를 할당하기 위해 그룹 이슈 보드를 만듭니다.
- 상단 바에서 Search or go to를 선택하고 Web App Dev 그룹을 찾습니다.
- Plan > Issue board를 선택합니다.
- 이슈 보드 페이지의 왼쪽 위 모서리에서 현재 보드 이름이 표시된 드롭다운 목록을 선택합니다.
- Create new board를 선택합니다.
- Title 텍스트 상자에
Issue triage (by severity)를 입력합니다. - Show the Open list 체크박스는 선택된 상태로 두고 Show the Closed list 체크박스는 해제합니다.
- Create board를 선택합니다. 빈 보드가 표시됩니다.
severity::1레이블에 대한 목록을 만듭니다.- 이슈 보드 페이지의 오른쪽 위 모서리에서 Create list를 선택합니다.
- 나타나는 열에서 Value 드롭다운 목록의
severity::1레이블을 선택합니다. - 목록 하단에서 Add to board를 선택합니다.
severity::2,severity::3,severity::4레이블에 대해 이전 단계를 반복합니다.
하위 그룹 이슈 보드를 만들려면 하위 그룹 안에서 3~10단계를 따릅니다.
지금은 보드의 목록이 비어 있을 것입니다. 다음으로 몇 가지 이슈로 목록을 채웁니다.
Create issues for features#
다가올 기능과 버그를 추적하려면 이슈를 몇 개 만들어야 합니다. 이슈는 프로젝트에 속하지만, 그룹 이슈 보드에서 직접 만들 수도 있습니다.
먼저 계획 중인 기능에 대한 이슈를 몇 개 만드는 것으로 시작합니다. 버그 이슈는 버그를 발견할 때마다 만들면 됩니다.
Issue triage (by severity) 보드에서 이슈를 만들려면 다음을 진행합니다.
-
Open 목록으로 이동합니다. 이 목록에는 다른 어떤 보드 목록에도 맞지 않는 이슈가 표시됩니다. 이슈에 어떤 심각도 레이블이 붙어야 할지 이미 알고 있다면 해당 레이블의 목록에서 바로 만들 수 있습니다. 레이블 목록에서 만든 이슈에는 해당 레이블이 그대로 붙는다는 점을 유의합니다.
지금은 Open 목록으로 진행합니다.
-
Open 목록에서 Create new issue 아이콘(+)을 선택합니다.
-
필드를 채웁니다.
- Title 아래에
Dark mode toggle을 입력합니다. - 이 이슈가 해당하는 프로젝트를 선택합니다. 이 예시에서는
Frontend / Web UI를 사용합니다.
- Title 아래에
-
Create issue를 선택합니다.
-
같은 단계를 반복해 이슈를 몇 개 더 만듭니다.
예를 들어 Web API 앱을 만들고 있다면
Frontend와Backend는 서로 다른 엔지니어링 팀을 가리킵니다. 프로젝트는 스택 개발의 서로 다른 측면을 가리킵니다. 다음 이슈를 만들고, 적절하다고 판단되는 프로젝트에 할당합니다.User registrationProfile creationSearch functionalityAdd to favoritesPush notificationsSocial sharingIn-app messagingTrack progressFeedback and ratingsSettings and preferences
한 프로젝트의 이슈 보드에 있는 이슈는 다른 프로젝트의 이슈 보드에서 볼 수 없습니다. 마찬가지로 한 하위 그룹에 속한 프로젝트의 이슈는 해당 하위 그룹의 이슈 보드에서만 볼 수 있습니다. 상위 그룹의 모든 프로젝트에 걸친 이슈를 전부 보려면 상위 그룹의 이슈 보드에 있어야 합니다.
첫 번째 트리아지 이슈 보드가 준비되었습니다. Open 목록의 이슈 몇 개를 레이블 목록 중 하나로 드래그해 심각도 레이블을 붙여 보며 사용해 봅니다.

Next steps#
다음으로 다음을 진행할 수 있습니다.
-
이슈 보드 사용 방식을 조정합니다. 다음과 같은 옵션이 있습니다.
- 현재 이슈 보드를 편집해 우선순위와 유형 레이블을 위한 목록도 추가합니다. 이렇게 하면 보드가 넓어져 가로 스크롤이 필요할 수 있습니다.
Issue triage (by priority)와Issue triage (by type)라는 별도의 이슈 보드를 만듭니다. 이렇게 하면 여러 종류의 트리아지 작업을 분리해 유지할 수 있지만, 보드 사이를 전환해야 합니다.- 팀 간 인계를 위한 이슈 보드 설정을 진행합니다.
-
이슈 목록에서 우선순위나 심각도별로 이슈를 찾아봅니다. 각 레이블로 필터링할 수 있습니다. 사용할 수 있다면 "is one of" 필터 연산자를 활용합니다.
-
이슈를 작업(tasks)으로 세분화합니다.
-
gitlab-triagegem으로 프로젝트의 이슈 트리아지를 자동화하는 정책을 만듭니다. 다음과 같은 히트맵으로 요약 보고서를 생성합니다.