dev.syw

이슈로 일감을 추적하고 라벨과 칸반 보드로 진행 상황을 시각화하며 마일스톤으로 릴리스를 묶는 방법을 익힌다.

이슈, 보드, 마일스톤

코드만 관리해서는 프로젝트가 굴러가지 않습니다. "무엇을, 누가, 언제까지 할지"를 추적해야 합니다. GitLab은 이슈, 라벨, 보드, 마일스톤이라는 도구로 작업 관리를 코드 저장소와 같은 공간에서 제공합니다.

학습 목표

  • 이슈로 일감을 만들고 추적한다.
  • 라벨로 이슈를 분류한다.
  • 이슈 보드(칸반)로 진행 상황을 시각화한다.
  • 마일스톤으로 여러 이슈를 릴리스 단위로 묶는다.

이슈로 일감 추적

이슈(Issue)는 할 일, 버그, 기능 요청 등 모든 작업의 기본 단위입니다. 프로젝트의 Plan > Issues에서 만듭니다.

이슈에 담을 수 있는 정보입니다.

  • Title / Description: 무엇을 해야 하는지. 설명에는 마크다운과 체크리스트를 쓸 수 있다.
  • Assignee: 담당자
  • Labels: 분류 태그
  • Milestone: 소속 릴리스/기간
  • Due date: 마감일

이슈 설명에 - [ ] 항목 형태로 체크리스트를 만들면 세부 작업의 진행률이 자동 표시됩니다. 또한 이슈는 MR과 연결되어, 머지될 때 자동으로 닫히도록 할 수 있습니다.

라벨로 분류

라벨(Label)은 이슈와 MR에 붙이는 색상 태그입니다. 상태나 종류를 한눈에 구분하게 해 줍니다.

  • 종류: bug, feature, docs
  • 우선순위: priority::high, priority::low
  • 상태: status::todo, status::doing, status::done

::를 쓰는 scoped label은 같은 그룹 안에서 하나만 선택되도록 강제합니다. 예를 들어 priority::highpriority::low는 동시에 붙을 수 없어, 우선순위 같은 배타적 속성을 깔끔하게 관리할 수 있습니다.

라벨은 프로젝트 단위뿐 아니라 그룹 단위로도 정의해 여러 프로젝트에서 공유할 수 있습니다.

이슈 보드 (칸반)

이슈 보드(Issue Board)는 이슈를 칸반 형태로 보여 주는 화면입니다. Plan > Boards에서 봅니다.

  • 각 열(list)은 보통 라벨에 대응합니다(예: To Do, Doing, Done).
  • 이슈 카드를 열에서 열로 드래그하면, 해당 라벨이 자동으로 붙거나 떨어집니다.
  • 담당자별 열을 만들어 누가 무엇을 하는지 볼 수도 있습니다.

즉 보드에서 카드를 옮기는 것만으로 이슈의 라벨 상태가 갱신되므로, 진행 상황을 시각적으로 관리하면서 데이터도 일관되게 유지됩니다.

마일스톤으로 릴리스 묶기

마일스톤(Milestone)은 여러 이슈와 MR을 하나의 목표나 릴리스, 기간으로 묶는 단위입니다. Plan > Milestones에서 만듭니다.

  • 시작일과 종료일을 정해 스프린트나 릴리스 주기로 활용한다.
  • 이슈와 MR을 마일스톤에 배정해 범위를 정의한다.
  • 마일스톤 화면에서 전체 진행률(완료된 이슈 비율)과 남은 작업을 한눈에 본다.

프로젝트 마일스톤뿐 아니라 그룹 마일스톤도 있어, 여러 프로젝트에 걸친 릴리스를 함께 추적할 수 있습니다.

함께 쓰는 흐름

실무에서는 이 도구들이 자연스럽게 연결됩니다.

  1. 작업을 이슈로 등록하고 라벨과 마일스톤을 붙인다.
  2. 보드에서 진행 상황을 옮겨 가며 관리한다.
  3. 작업 브랜치에서 MR을 만들고 이슈와 연결한다(Closes #번호).
  4. MR이 머지되면 이슈가 닫히고 마일스톤 진행률이 올라간다.

요약

GitLab의 이슈는 모든 일감의 기본 단위이고, 라벨로 분류하며, 보드로 칸반처럼 시각화하고, 마일스톤으로 릴리스 단위로 묶습니다. scoped label과 그룹 단위 라벨·마일스톤을 활용하면 여러 프로젝트에서도 일관되게 작업을 추적할 수 있습니다. 이 작업 관리 기능은 코드, MR, CI/CD와 같은 공간에서 통합되어 있다는 점이 핵심입니다.

댓글 0

GitLab강좌에 대한 댓글입니다.

댓글을 작성하려면 로그인이 필요합니다.