튜토리얼: GitLab으로 Kanban 진행하기
GitLab v19.5요약
이 튜토리얼에서는 GitLab 이슈 보드를 사용해 Kanban 워크플로에서 작업을 관리하는 단계를 안내합니다. GitLab 이슈 보드를 사용해 Kanban 워크플로에서 작업을 관리하려면: 다른 정보는 이 페이지 하단의 고급 팁과 요령을 참고합니다.
이 튜토리얼에서는 GitLab 이슈 보드를 사용해 Kanban 워크플로에서 작업을 관리하는 단계를 안내합니다. 그룹, 프로젝트, 보드를 설정하고 이슈를 구성하면 투명성, 협업, 전달력을 높일 수 있습니다.
GitLab 이슈 보드를 사용해 Kanban 워크플로에서 작업을 관리하려면:
다른 정보는 이 페이지 하단의 고급 팁과 요령을 참고합니다.
그룹과 프로젝트 설정#
팀이 여러 리포지터리에서 작업하는 경우, 그룹 내에 리포지터리마다 프로젝트를 생성합니다.
이슈는 원칙적으로 각각의 프로젝트에 속하지만, Kanban 보드는 그룹에 속하므로 모든 프로젝트에 대한 가시성을 유지할 수 있습니다. 단일 리포지터리에서 작업하는 경우 이 단계를 건너뛸 수 있습니다.
레이블 생성#
다음으로, Kanban 라이프사이클의 각 단계를 나타낼 레이블을 생성합니다.
- 단일 프로젝트에서 작업하는 경우, 해당 프로젝트에 레이블을 생성합니다.
- 여러 프로젝트에서 작업하는 경우, 그룹에 레이블을 생성합니다. 이렇게 하면 모든 프로젝트에서 동일한 레이블 세트를 사용할 수 있습니다.
두 경우 모두 레이블 생성 과정은 동일합니다. status::to do, status::doing, status::done에 대한 범위 지정 레이블을 생성합니다.
Kanban 보드 설정#
레이블을 생성한 후 다음 단계는 Kanban 보드를 생성하는 것입니다.
- 상단 바에서 Search or go to를 선택하고 그룹 또는 프로젝트를 찾습니다.
- Plan > Issue Boards를 선택합니다.
- 이슈 보드의 왼쪽 상단에서 현재 보드 이름이 있는 드롭다운 목록을 선택합니다.
- Create new board를 선택합니다.
- 새 보드의 이름을 입력한 후 Create board를 선택합니다.
- + New list를 선택해 새 레이블 목록을 생성합니다.
- 목록 범위를 Label로, 값을 status::to do로 설정합니다.
- 동일한 레이블 목록 생성 과정을 반복해 status::doing과 status::done 레이블 목록을 두 개 더 생성합니다.
축하합니다, 이제 Kanban 보드가 생성되었습니다. 각 목록에서 새 이슈를 생성하고, 워크플로 단계 간에 이슈를 드래그 앤 드롭하며, 팀원에게 이슈를 할당할 수 있습니다.
선택 사항으로, 보드의 각 레이블 목록에 대해 진행 중 작업(WIP) 제한을 설정할 수 있습니다. 설정하려면:
- 레이블 목록 오른쪽 상단의 Edit list settings 톱니바퀴 아이콘을 선택합니다.
- Work in progress limit > Edit를 선택합니다.
- 해당 목록에 허용할 최대 이슈 수를 입력한 후 Enter 키를 누릅니다.
제한에 도달하면 목록 배경이 자동으로 빨간색으로 바뀝니다. 또한 목록에 "work in progress limit" 컷 라인이 표시되어, 이 선 아래에 제한을 초과한 모든 이슈를 시각적으로 나타냅니다.
플로와 분포 시각화#
Kanban에서는 전통적으로 누적 플로 다이어그램을 사용해 부하를 시각화하고 병목 지점을 파악합니다. GitLab에서는 이를 Value Stream Analytics(VSA)로 구현할 수 있습니다. 다음으로, Kanban 워크플로에 맞는 사용자 지정 VSA 보고서를 생성합니다.
플로 시각화#
플로를 시각화하려면:
- 상단 바에서 Search or go to를 선택하고 그룹 또는 프로젝트를 찾습니다.
- 사이드 내비게이션에서 Analyze > Value stream analytics를 선택합니다.
- 페이지 왼쪽 상단의 Value stream 드롭다운을 선택한 후 New Value Stream을 선택합니다.
- VSA 보고서에 원하는 이름을 입력한 후 Create from a template을 선택합니다.
- 단계 이름으로 To do를 입력합니다.
- 시작 이벤트로 Issue label added를 선택한 후 status::to do 레이블을 선택합니다.
- 종료 이벤트로 Issue label removed를 선택한 후 status::to do 레이블을 선택합니다.
- 다음으로 Add a stage를 선택합니다.
- 동일한 과정을 반복해 status::in progress와 status::done 단계를 생성합니다.
- 세 단계를 모두 추가했으면 New value stream을 선택합니다.
Kanban 보드와 동일한 워크플로에 맞춘 사용자 지정 VSA 보고서를 사용하면, GitLab이 각 이슈가 각 단계에서 소요한 시간을 자동으로 계산하고 모든 단계에 걸쳐 데이터를 집계합니다. 그 결과 리드 타임과 사이클 타임을 확인할 수 있습니다. 각 단계를 자세히 살펴보면 개별 이슈의 구체적인 소요 시간을 확인할 수 있습니다.
분포 시각화#
분포를 시각화하려면:
- 생성한 VSA 보고서에서 아래로 스크롤해 Tasks by type 차트로 이동합니다.
- 오른쪽 상단의 톱니바퀴 아이콘 드롭다운을 선택한 후, 이슈 유형을 나타내는 레이블을 검색해 선택합니다.
- type::... 범위 레이블이나 이와 유사한 레이블을 아직 생성하지 않았다면, 지금이 워크플로에 작업 항목 유형(예: feature, bug, maintenance)을 도입하기 좋은 시점입니다.
- Show issues를 선택한 후 변경 사항을 적용하려면 드롭다운 목록 바깥의 아무 곳이나 선택합니다.
- 이제 Tasks by type 차트에 선택한 레이블과 일치하는 이슈의 시간에 따른 분포가 표시됩니다.
고급 팁과 요령#
- 지정한 조건에 따라 이슈를 자동으로 업데이트하는 정책을 생성하려면
gitlab-triage를 설정합니다. 예를 들어 status::done 레이블이 적용되면 이슈를 자동으로 닫거나, 이슈가 생성되면 status::to do 레이블을 자동으로 추가하는 정책을 생성할 수 있습니다. 오픈 소스gitlab-triagegem은 GitLab 파이프라인과 매끄럽게 연동되도록 설계되었습니다. - 다양한 유형의 이슈 생성을 더 효율적이고 표준화된 방식으로 진행하려면 설명 템플릿을 생성합니다.
- 그룹 또는 프로젝트에서 각 팀원의 작업 부하를 시각화하려면 assignee lists를 사용해 추가 이슈 보드를 생성합니다.
- T셔츠 사이즈 방식으로 이슈 크기를 나타내는 범위 지정 레이블 세트를 생성합니다. 예를 들어 size::small, size::medium, size::large입니다.