본문으로 건너뛰기

GitHub Projects와 Issues로 태스크 관리하기

GitHub의 Projects(프로젝트 보드)와 Issues(이슈)를 활용하면 별도의 프로젝트 관리 도구 없이도 태스크를 체계적으로 관리할 수 있습니다.

전체 구조

Organization / Repository
├── Issues ← 개별 태스크·버그·요청
├── Projects ← 칸반 보드 / 테이블로 이슈들을 관리
└── Milestones ← 릴리스·스프린트 단위 그룹핑

Part 1: Issues — 태스크 단위 관리

이슈 생성하기

  1. 저장소 → Issues 탭 → New issue
  2. 제목과 설명 작성
  3. 오른쪽 사이드바에서:
    • Assignees — 담당자 지정
    • Labels — 분류 (bug, enhancement, documentation 등)
    • Milestone — 릴리스/스프린트 연결
    • Projects — 프로젝트 보드에 추가

이슈 안에 태스크 목록 만들기 (Task List)

이슈 본문에 마크다운 체크박스를 쓰면 하위 태스크로 인식됩니다.

## 할 일

- [ ] DB 스키마 설계
- [ ] API 엔드포인트 구현
- [ ] 프론트엔드 폼 연동
- [ ] E2E 테스트 작성

이렇게 작성하면:

  • 이슈 목록에서 진행률 바 (2/4 완료 등)가 표시됩니다.
  • 각 체크박스를 클릭해 완료 처리할 수 있습니다.

태스크를 개별 이슈로 변환

큰 태스크는 체크박스 항목을 별도 이슈로 변환할 수 있습니다.

  1. 이슈 본문의 체크박스 항목에 마우스를 올리면 오른쪽에 아이콘 등장
  2. 클릭 → Convert to issue 선택
  3. 하위 이슈가 생성되고, 원래 체크박스에 이슈 링크가 자동 연결됩니다.

이슈 템플릿 만들기

팀에서 반복되는 이슈 형식이 있다면 템플릿을 만들어두세요.

  1. 저장소 → SettingsFeaturesIssuesSet up templates
  2. Bug report / Feature request / Custom 중 선택
  3. .github/ISSUE_TEMPLATE/ 에 마크다운 파일이 생성됩니다.
---
name: 버그 리포트
about: 버그를 신고합니다
title: "[Bug] "
labels: bug
assignees: ''
---

## 재현 절차
1. ...
2. ...

## 기대 동작

## 실제 동작

## 스크린샷 (선택)

CLI로 이슈 관리

# 이슈 목록 (열려있는 것만)
gh issue list

# 라벨 필터
gh issue list --label bug

# 이슈 생성
gh issue create --title "로그인 오류" --body "500 에러 발생" --label bug --assignee @me

# 이슈에 코멘트 추가
gh issue comment 42 --body "원인 파악 완료, PR 올리겠습니다"

# 이슈 닫기
gh issue close 42

Part 2: Projects — 보드로 전체 현황 관리

GitHub Projects(v2)는 이슈와 PR을 칸반 보드, 테이블, 로드맵 등 다양한 뷰로 관리할 수 있는 기능입니다.

프로젝트 생성

  1. GitHub 상단 → Projects 탭 → New project
  2. 템플릿 선택:
    • Board — 칸반 스타일 (추천)
    • Table — 스프레드시트 스타일
    • Roadmap — 타임라인 스타일

칸반 보드 구성

기본 컬럼:

컬럼용도
Todo아직 시작 안 한 태스크
In Progress진행 중인 태스크
Done완료된 태스크

필요에 따라 컬럼을 추가할 수 있습니다:

  • Backlog — 우선순위 낮은 항목
  • In Review — PR 리뷰 대기 중
  • Blocked — 다른 작업에 의존

이슈를 프로젝트에 추가하는 방법

방법 1: 이슈 페이지에서

  • 이슈 오른쪽 사이드바 → Projects → 프로젝트 선택

방법 2: 프로젝트 보드에서

  • 보드 하단 + Add item → 이슈 번호 또는 제목으로 검색 → 추가

방법 3: CLI에서

# 프로젝트 목록 확인
gh project list

# 이슈를 프로젝트에 추가
gh project item-add PROJECT_NUMBER --owner OWNER --url https://github.com/org/repo/issues/42

커스텀 필드 활용

프로젝트에 사용자 정의 필드를 추가해 태스크를 더 세밀하게 관리할 수 있습니다.

필드 타입예시
Single select우선순위 (High / Medium / Low)
Date마감일
Number예상 소요 시간 (h)
Iteration스프린트 (Sprint 1, Sprint 2, …)
Text메모

추가 방법: 프로젝트 → Settings (⚙)Custom fieldsNew field

자동화 (Workflows)

프로젝트 보드의 워크플로 기능으로 반복 작업을 자동화할 수 있습니다.

프로젝트 → SettingsWorkflows 에서 켜세요:

워크플로동작
Item added to project새 이슈가 프로젝트에 추가되면 → Todo 컬럼으로
Item closed이슈가 닫히면 → Done 컬럼으로 자동 이동
Pull request mergedPR이 머지되면 → Done으로
Auto-add to project특정 라벨의 이슈가 생기면 자동으로 프로젝트에 추가

뷰(View) 활용

하나의 프로젝트에서 여러 뷰를 만들어 관점별로 볼 수 있습니다.

프로젝트
├── Board 뷰 — 상태별 칸반
├── Table 뷰 — 전체 이슈를 테이블로
├── 내 태스크 뷰 — 필터: assignee = @me
└── 이번 주 뷰 — 필터: iteration = current

뷰 추가: + New view → 보드/테이블/로드맵 중 선택 → 필터·그룹핑·정렬 설정

Part 3: 실무 워크플로 예시

스프린트 기반 태스크 관리

1. 스프린트 시작
→ 프로젝트의 Iteration 필드에 "Sprint 5" 추가
→ Backlog에서 이번 스프린트 할 이슈들을 Todo로 이동, Iteration 설정

2. 일일 확인
→ 보드 뷰에서 In Progress 항목 체크
→ 막힌 이슈는 Blocked 컬럼으로 이동 + 코멘트

3. 작업 완료
→ PR 머지 시 이슈 자동 닫힘 (커밋 메시지에 "Closes #42")
→ Workflow가 자동으로 Done 컬럼으로 이동

4. 스프린트 종료
→ 테이블 뷰에서 Iteration = "Sprint 5" 필터
→ 완료/미완료 집계 확인

이슈 + 태스크 리스트 조합

대형 기능을 관리할 때:

<!-- 에픽 이슈: "사용자 인증 시스템 구현" -->

## 태스크

- [ ] #51 DB 스키마 설계
- [ ] #52 회원가입 API
- [ ] #53 로그인 API
- [ ] #54 비밀번호 재설정
- [ ] #55 프론트엔드 로그인 폼
- [ ] #56 E2E 테스트

에픽 이슈에서 진행률 바로 전체 현황을 한눈에 확인할 수 있습니다.

CLI 요약

# --- Issues ---
gh issue list # 이슈 목록
gh issue create --title "제목" --label bug # 이슈 생성
gh issue view 42 # 이슈 상세
gh issue close 42 # 이슈 닫기
gh issue edit 42 --add-label "priority:high" # 라벨 추가

# --- Projects ---
gh project list # 프로젝트 목록
gh project view PROJECT_NUMBER # 프로젝트 상세
gh project item-list PROJECT_NUMBER # 프로젝트 아이템 목록
gh project item-add PROJECT_NUMBER \
--owner OWNER \
--url ISSUE_URL # 이슈를 프로젝트에 추가

# --- Milestones ---
gh api repos/owner/repo/milestones # 마일스톤 목록

참고 자료