포스트

[GitHub 100일 챌린지] Day 75 - GitHub Projects 고급 관리

[GitHub 100일 챌린지] Day 75 - GitHub Projects 고급 관리

100일 챌린지 Day 75 - 커스텀 필드, 다양한 뷰, 인사이트로 프로젝트 관리를 최적화합니다.

⏱️ 예상 학습 시간: 45-50분 📚 난이도: ⭐⭐⭐ (중급)

배울 내용

  1. 커스텀 필드로 정보 확장하기
  2. Board, Table, Roadmap 뷰 활용
  3. 그룹화와 필터링으로 집중하기
  4. Insights로 진행 상황 분석
  5. 고급 자동화 워크플로우

시작하기 전에

이 내용은 다음 개념을 알고 있다면 더 쉽게 이해할 수 있습니다:

  • ✅ [Day 74 - GitHub Projects 기본 사용법]
  • ✅ 칸반 보드 사용 경험
  • ✅ 애자일/스크럼 용어 (Story Points, Sprint 등)

Day 74에서 프로젝트 보드를 만들어봤다면, 이번엔 그것을 더 강력하게 활용하는 방법을 배웁니다!


1. 커스텀 필드 (Custom Fields)

필드란?

정의: 각 항목에 추가 정보를 저장하는 사용자 정의 속성

1
2
3
4
5
6
7
8
9
10
기본 필드:
- Title (제목)
- Assignees (담당자)
- Status (상태)

커스텀 필드로 확장:
+ Priority (우선순위)
+ Size (작업 크기)
+ Sprint (스프린트)
+ Estimate (예상 시간)

필드 타입

타입 설명 예시
Text 짧은 텍스트 팀명, 태그
Number 숫자 스토리 포인트, 우선순위
Date 날짜 마감일, 시작일
Single select 단일 선택 Priority (High/Medium/Low)
Iteration 반복 주기 Sprint 1, Sprint 2

Single Select 필드 만들기

Priority 필드 예시:

1
2
3
4
5
6
7
8
9
10
1. Project Settings → Custom fields
2. New field 클릭
3. 이름: Priority
4. Type: Single select
5. Options 추가:
   - 🔴 Critical
   - 🟠 High
   - 🟡 Medium
   - 🟢 Low
   - ⚪ None

활용:

1
2
3
4
5
6
7
Issue #123
├─ Title: 로그인 버그 수정
├─ Status: In Progress
├─ Assignee: @developer
└─ Priority: 🔴 Critical

→ 우선순위별로 필터링 및 정렬 가능

Number 필드: Story Points

애자일 개발에 유용:

1
2
3
4
5
6
7
8
9
10
11
필드 설정:
이름: Story Points
타입: Number
범위: 1-13 (피보나치 수열)

사용 예시:
#123: 로그인 기능 → 5 points
#124: 회원가입 → 8 points
#125: UI 수정 → 3 points

→ Sprint 계획 시 capacity 계산

Date 필드: 마감일 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
필드: Due Date
타입: Date

활용:
┌─────────────────────────────┐
│ Issue #123                  │
│ Due Date: 2024-12-31       │
│                             │
│ 상태:                        │
│ ⚠️ 3일 남음                  │
│ 🔴 마감일 지남                │
│ ✅ 완료됨                     │
└─────────────────────────────┘

→ 마감일 기준으로 정렬 및 알림

Iteration 필드: 스프린트

스프린트 기반 개발:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
필드 생성:
이름: Sprint
타입: Iteration
기간: 2주
시작: 2024-01-01

자동 생성:
- Sprint 1 (01/01 - 01/14)
- Sprint 2 (01/15 - 01/28)
- Sprint 3 (01/29 - 02/11)

활용:
Issue를 현재 Sprint에 할당
→ Sprint별로 그룹화
→ Burndown 차트 생성

실전 예시: 완벽한 필드 조합

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
프로젝트: E-commerce Redesign

커스텀 필드:
1. Priority (Single select)
   - Critical, High, Medium, Low

2. Size (Single select)
   - XS (1일), S (2-3일), M (1주), L (2주), XL (1달+)

3. Sprint (Iteration)
   - 2주 단위

4. Story Points (Number)
   - 1, 2, 3, 5, 8, 13

5. Due Date (Date)
   - 마감일

6. Team (Single select)
   - Frontend, Backend, Design, QA

활용:
┌─────────────────────────────────────────┐
│ #123: 결제 시스템 구현                    │
├─────────────────────────────────────────┤
│ Status: In Progress                     │
│ Priority: 🔴 Critical                   │
│ Size: L (2주)                           │
│ Sprint: Sprint 3                        │
│ Story Points: 13                        │
│ Due Date: 2024-02-15                   │
│ Team: Backend                           │
│ Assignees: @john, @jane                │
└─────────────────────────────────────────┘

2. 다양한 뷰 활용

Board View (칸반 보드)

언제 사용?

  • 작업 흐름 시각화
  • 진행 상태 한눈에 파악
  • 팀 스탠드업 미팅

설정:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Group by: Status
Columns:
┌──────┬─────────────┬─────────┬─────────┐
│ Todo │ In Progress │ Review  │  Done   │
├──────┼─────────────┼─────────┼─────────┤
│ #101 │    #103     │  #105   │  #107   │
│ #102 │    #104     │  #106   │  #108   │
│      │             │         │  #109   │
└──────┴─────────────┴─────────┴─────────┘

카드 표시:
- Title (항상)
- Assignees (옵션)
- Priority (옵션)
- Labels (옵션)

Group by 옵션:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Status별:
Todo → In Progress → Done

Assignee별:
@john   @jane    @bob    Unassigned
  #101    #103    #105      #107
  #102    #104    #106

Priority별:
Critical  High    Medium   Low
  #101     #103     #105    #107
  #102     #104     #106

Sprint별:
Sprint 1  Sprint 2  Sprint 3  Backlog
  #101      #103      #105      #107
  #102      #104      #106

Table View (스프레드시트)

언제 사용?

  • 데이터 중심 관리
  • 대량 편집
  • 필터링과 정렬

구성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
┌────────┬──────────────┬──────────┬──────────┬────────┬───────┐
│ Title  │   Status     │ Assignee │ Priority │  Size  │ Sprint│
├────────┼──────────────┼──────────┼──────────┼────────┼───────┤
│ #123   │ In Progress  │  @john   │ Critical │   L    │ Spr 1 │
│ #124   │ Todo         │  @jane   │ High     │   M    │ Spr 1 │
│ #125   │ Done         │  @bob    │ Medium   │   S    │ Spr 1 │
│ #126   │ Review       │  @alice  │ High     │   L    │ Spr 2 │
└────────┴──────────────┴──────────┴──────────┴────────┴───────┘

기능:
- 셀 직접 편집 (인라인 편집)
- 다중 정렬 (Priority → Size)
- 고급 필터 (Priority:Critical AND Size:L)
- CSV 내보내기

컬럼 커스터마이징:

1
2
3
4
5
6
7
8
9
10
11
12
표시할 컬럼 선택:
☑ Title
☑ Status
☑ Assignees
☑ Priority
☑ Story Points
☐ Labels (숨김)
☐ Milestone (숨김)
☐ Repository (숨김)

컬럼 순서:
드래그로 재배치 가능

Roadmap View (타임라인)

언제 사용?

  • 장기 계획
  • 마일스톤 관리
  • 팀 간 조율

구성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2024 Q1          Q2           Q3           Q4
│               │            │            │
├─ v1.0 ────────┤            │            │
│  #101-#110    │            │            │
│               ├─ v1.5 ─────┤            │
│               │  #111-#120 │            │
│               │            ├─ v2.0 ─────┤
│               │            │  #121-#130 │

각 항목:
┌─────────────────────────────┐
│ v1.0 Release                │
│ ████████████░░░░░░░░ 65%   │
│ Start: 2024-01-01          │
│ End: 2024-03-31            │
│ Items: 10 (6 done, 4 open) │
└─────────────────────────────┘

설정:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
X축: 날짜 (자동)
Y축: 그룹화
- No grouping (기본)
- Status
- Assignee
- Milestone

필수 필드:
- Start date
- End date (또는 Duration)

옵션:
- Zoom: 주/월/분기/년
- Markers: 중요 날짜 표시
- Dependencies: 의존성 표시 (곧 지원 예정)

실전 예시: 뷰별 활용

아침 스탠드업: Board View

1
2
3
4
5
6
7
8
9
10
11
12
Group by: Assignee

@john        @jane        @bob
┌──────┐    ┌──────┐    ┌──────┐
│ #101 │    │ #103 │    │ #105 │
│ #102 │    │ #104 │    │      │
└──────┘    └──────┘    └──────┘

각자 진행 상황 공유:
- 어제 한 일 (Done으로 이동)
- 오늘 할 일 (In Progress)
- 블로커 (Blocked 라벨)

Sprint 계획: Table View

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Filter: Sprint = "Sprint 3"
Sort by: Priority (High → Low), Story Points

┌─────┬──────────┬────────┬───────┐
│ #   │ Priority │ Points │ Team  │
├─────┼──────────┼────────┼───────┤
│ 123 │ Critical │   13   │ Back  │
│ 124 │ High     │    8   │ Front │
│ 125 │ High     │    5   │ Front │
│ 126 │ Medium   │    3   │ Back  │
└─────┴──────────┴────────┴───────┘

Total Points: 29
Team Capacity: 30
→ Sprint 계획 완료!

분기 계획: Roadmap View

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Zoom: Quarter
Group by: Team

Frontend Team:
├─ Homepage Redesign ──────┤
├─ Mobile App ─────────────────┤

Backend Team:
├─ API v2 ──────────┤
├─ Database Migration ─────────┤

DevOps Team:
├─ K8s Migration ──────────────────┤

→ 팀 간 일정 조율 및 리소스 배분

3. 필터링과 정렬

고급 필터

필터 생성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Filters → Add filter

예시 1: 긴급 작업
is:open
priority:"Critical"
assignee:@me

예시 2: 리뷰 대기 중인 작업
is:open
status:"Review"
-assignee:@me

예시 3: 이번 Sprint 백로그
sprint:"Sprint 3"
status:"Todo"
no:assignee

다중 정렬

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Primary sort: Priority (High → Low)
Secondary sort: Story Points (High → Low)
Tertiary sort: Updated (Recent → Old)

결과:
┌─────┬──────────┬────────┬────────────┐
│ #   │ Priority │ Points │  Updated   │
├─────┼──────────┼────────┼────────────┤
│ 123 │ Critical │   13   │ 1 hour ago │
│ 124 │ Critical │    8   │ 2 hours ago│
│ 125 │ High     │   13   │ 1 day ago  │
│ 126 │ High     │    8   │ 2 days ago │
│ 127 │ Medium   │    5   │ 3 days ago │
└─────┴──────────┴────────┴────────────┘

Saved Views (저장된 뷰)

자주 사용하는 뷰 저장:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
뷰 1: My Work (내 작업)
Type: Board
Filter: assignee:@me
Group by: Status

뷰 2: Sprint Planning (스프린트 계획)
Type: Table
Filter: sprint:"Current"
Sort: Priority, Points
Columns: Title, Priority, Points, Assignee, Size

뷰 3: Roadmap 2024 (로드맵)
Type: Roadmap
Filter: created:>2024-01-01
Group by: Team
Zoom: Quarter

뷰 4: Bugs (버그만)
Type: Board
Filter: label:bug is:open
Group by: Priority

4. Insights와 리포트

Insights 개요

목적: 프로젝트 진행 상황을 시각적으로 분석

1
2
3
4
5
6
7
Project → Insights 탭

차트 종류:
1. Burnup (번업)
2. Burndown (번다운)
3. Velocity (속도)
4. Cumulative Flow (누적 흐름)

Burndown Chart (번다운 차트)

Sprint 진행률 추적:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
세로축: 남은 작업 (Story Points)
가로축: 시간 (Sprint 기간)

     │
  30 │●
     │ ●
  20 │  ●●
     │    ●●
  10 │      ●●
     │        ●●●
   0 │___________●●
     Day1  Day7  Day14

이상적 선(Ideal Line): 균등하게 감소
실제 선(Actual Line): 실제 작업 완료

분석:
- 실제 > 이상 → 진행 느림 (빨강)
- 실제 < 이상 → 진행 빠름 (초록)
- 평평한 구간 → 블로커 발생

Velocity Chart (속도 차트)

Sprint별 생산성:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
세로축: 완료한 Story Points
가로축: Sprint

     │
  30 │      ████
     │  ████████
  20 │  ████████ ████
     │  ████████ ████ ████
  10 │  ████████ ████ ████
     │  ████████ ████ ████
   0 │──────────────────────
      Sprint1  Spr2  Spr3

분석:
Sprint 1: 25 points (팀 적응 중)
Sprint 2: 30 points (안정화)
Sprint 3: 30 points (일정한 속도)

평균 Velocity: 28.3 points/sprint
→ 다음 Sprint 계획 시 참고

Cumulative Flow Diagram

작업 흐름 분석:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
세로축: 항목 수
가로축: 시간

      │
   40 │          ╱╱╱╱╱ Done
      │        ╱╱╱╱╱╱╱
   30 │      ╱╱╱╱╱╱╱╱╱ Review
      │    ╱╱╱╱╱╱╱╱╱╱╱
   20 │  ╱╱╱╱╱╱╱╱╱╱╱╱╱ In Progress
      │╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱
   10 │╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱ Todo
      │───────────────────
       Week1 Week2 Week3

색상별 영역:
- 초록 (Done): 완료된 작업
- 파랑 (Review): 리뷰 중
- 노랑 (In Progress): 진행 중
- 회색 (Todo): 대기 중

분석:
- In Progress 너비 → WIP 제한 확인
- Review 구간 늘어남 → 리뷰 병목
- Done 기울기 → 완료 속도

Custom Charts

커스텀 차트 만들기:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
예시 1: Priority 분포
Type: Pie Chart
Field: Priority
Filter: is:open

결과:
Critical: 15% (3개)
High: 35% (7개)
Medium: 40% (8개)
Low: 10% (2개)

예시 2: Team별 작업량
Type: Bar Chart
Field: Team
Value: Story Points

결과:
Frontend: ████████████ 30 pts
Backend:  ████████████████ 40 pts
DevOps:   ████████ 20 pts

💡 초보자 팁 Insights는 처음엔 복잡해 보일 수 있습니다. 가장 유용한 것은 Burndown 차트입니다! Sprint가 끝날 때마다 Burndown을 확인하여 팀이 계획대로 진행했는지 체크하세요. Story Points가 없어도 괜찮습니다. Issue 개수로도 충분히 유용한 차트를 만들 수 있습니다.


5. 고급 자동화

워크플로우 자동화

자동화 규칙 추가:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Project Settings → Workflows

규칙 1: Issue 생성 시 Todo에 추가
Trigger: Item added to project
Condition: type:issue
Action: Set Status to "Todo"

규칙 2: PR 생성 시 In Progress로
Trigger: Item added to project
Condition: type:pull_request
Action: Set Status to "In Progress"

규칙 3: PR 머지 시 Done으로
Trigger: Pull request merged
Action: Set Status to "Done"

규칙 4: Issue 닫힘 시 Archived로
Trigger: Item closed
Action: Set Status to "Archived"

고급 워크플로우 예시

Sprint 자동화:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
규칙 1: 새 Issue는 Backlog에
Trigger: Item added
Condition: no:sprint
Action: Set Status to "Backlog"

규칙 2: Sprint 할당 시 Todo로
Trigger: Sprint field updated
Condition: sprint:is_set
Action: Set Status to "Todo"

규칙 3: 담당자 할당 시 Ready로
Trigger: Assignee added
Condition: status:"Todo"
Action: Set Status to "Ready"

규칙 4: 작업 시작 시 Sprint에 추가
Trigger: Status changed to "In Progress"
Condition: no:sprint
Action: Set Sprint to "Current Sprint"

6. 실전 워크플로우

애자일 스크럼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
프로젝트 설정:
Views:
- Product Backlog (Table)
- Sprint Board (Board)
- Sprint Planning (Table)
- Roadmap (Roadmap)

Fields:
- Story Points
- Sprint (Iteration: 2주)
- Priority
- Size

워크플로우:
1. Product Owner가 Backlog 정리
2. Sprint Planning 회의
   - Team Capacity 계산
   - Story Points 할당
   - Sprint 항목 선택
3. Daily Standup
   - Board View로 진행 상황 공유
4. Sprint Review
   - Velocity 차트 확인
5. Sprint Retrospective
   - Done 항목 Archive
   - 다음 Sprint 준비

칸반 방식

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
프로젝트 설정:
Views:
- Main Board (Board)

Fields:
- Priority
- Size
- WIP Limit (각 컬럼별)

워크플로우:
Backlog → Todo → In Progress → Review → Done
                    (WIP: 5)

규칙:
1. WIP 제한 준수 (In Progress 최대 5개)
2. Pull System (Done 이동 후 새 작업 시작)
3. 블로커 즉시 해결
4. 주간 회의로 우선순위 조정

직접 해보기 (30-40분)

실습을 통해 배운 내용을 체화해봅시다!

📝 실습 1: 커스텀 필드 추가하기 (10분)

1
2
3
4
5
- [ ] 1. Day 74에서 만든 프로젝트 열기
- [ ] 2. Priority 필드 추가 (Single select: Critical, High, Medium, Low)
- [ ] 3. Story Points 필드 추가 (Number: 1-13)
- [ ] 4. Due Date 필드 추가 (Date)
- [ ] 5. 기존 Issue들에 필드 값 설정하기

📝 실습 2: 다양한 뷰 만들기 (10분)

1
2
3
4
5
- [ ] 1. "My Work" 뷰 생성 (Board, assignee:@me)
- [ ] 2. "Sprint Planning" 뷰 생성 (Table, 모든 필드 표시)
- [ ] 3. Priority별로 그룹화해보기
- [ ] 4. Story Points로 정렬해보기
- [ ] 5. 각 뷰를 저장하고 전환해보기

📝 실습 3: 필터링 마스터하기 (5분)

1
2
3
4
- [ ] 1. "label:bug priority:Critical" 필터 적용
- [ ] 2. "assignee:@me is:open" 필터 적용
- [ ] 3. "no:assignee status:Todo" 필터 적용
- [ ] 4. 자주 쓰는 필터를 Saved View로 저장

📝 실습 4: Insights 확인하기 (5분)

1
2
3
4
- [ ] 1. Insights 탭 열기
- [ ] 2. Burndown 차트 생성
- [ ] 3. Story Points 기반으로 설정
- [ ] 4. 차트 해석해보기

📝 실습 5: 자동화 설정하기 (10분)

1
2
3
4
- [ ] 1. Workflows 설정 열기
- [ ] 2. "Issue 생성 시 Todo로" 자동화 추가
- [ ] 3. "PR 머지 시 Done으로" 자동화 추가
- [ ] 4. 테스트 Issue 만들어서 자동화 확인

실습 완료 후: 이제 프로페셔널한 프로젝트 관리 도구를 갖추게 되었습니다!


😰 어려우시다면

이 내용이 어렵게 느껴진다면:

  1. 커스텀 필드가 너무 많은 경우
    • 처음엔 Priority 하나만 추가하세요
    • 필요할 때 하나씩 추가하는 것이 좋습니다
    • 모든 필드를 다 사용할 필요는 없습니다
  2. 어떤 뷰를 사용할지 모르겠는 경우
    • 일상 업무: Board View
    • 데이터 분석/일괄 수정: Table View
    • 장기 계획: Roadmap View
    • 상황에 맞게 선택하세요
  3. Insights 차트가 어려운 경우
    • Burndown 하나만 사용해도 충분합니다
    • Story Points 없이 Issue 개수로 시작하세요
    • 팀이 익숙해지면 다른 차트 시도
  4. Story Points를 어떻게 정할지 모르겠는 경우
    • 피보나치 수열 사용 (1, 2, 3, 5, 8, 13)
    • 상대적 크기만 중요합니다 (절대값 X)
    • Planning Poker로 팀과 함께 결정
    • 처음엔 대충 정해도 됩니다 (조정 가능)
  5. 자동화가 복잡한 경우
    • 2-3개 간단한 자동화만 시작하세요
    • “PR 머지 → Done” 하나면 충분합니다
    • 수동 관리도 나쁘지 않습니다
  6. 복습이 필요하다면
    • Day 74: Projects 기본 복습
    • 애자일 용어 검색 (Story Points, Sprint 등)
    • GitHub Projects 공식 문서의 예시 참고

꼭 기억하세요: 고급 기능들은 팀이 성장하면서 필요할 때 추가하면 됩니다. 처음부터 완벽하게 설정하려고 하지 마세요!


정리

완료 체크:

  • 커스텀 필드를 생성하고 활용할 수 있다
  • Board, Table, Roadmap 뷰를 목적에 맞게 사용할 수 있다
  • 필터와 정렬로 원하는 정보를 찾을 수 있다
  • Insights 차트로 진행 상황을 분석할 수 있다
  • 자동화 워크플로우를 설정할 수 있다
  • 실제 프로젝트에 적용할 수 있다
  • 직접 실습을 완료했다

핵심 요약:

  • 커스텀 필드: Single select, Number, Date, Iteration으로 정보 확장
  • 다양한 뷰: Board(시각화), Table(데이터), Roadmap(계획)
  • 필터링: 고급 쿼리로 필요한 항목만 표시
  • Insights: Burndown, Velocity, Cumulative Flow로 분석
  • 자동화: 반복 작업 자동화로 효율 극대화

실전 팁:

  • ✅ Priority와 Story Points는 필수 필드
  • ✅ Sprint마다 Velocity 측정하여 계획 정확도 향상
  • ✅ Table View에서 일괄 편집으로 시간 절약
  • ✅ Roadmap View로 팀 간 일정 조율
  • ✅ 자동화는 단순한 것부터 시작
  • ✅ 주간 Insights 리뷰로 병목 지점 파악
  • ✅ Saved Views로 자주 쓰는 뷰 저장
  • ✅ WIP 제한으로 집중도 향상 (In Progress 5개 이내)

다음: Day 76 - GitHub Wiki


이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.