모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

14강 / 전체 15강

이슈와 프로젝트

7분 읽기 조회 0

GitHub Issues로 버그·기능·개선 사항 추적, 라벨·마일스톤·담당자 활용법, 이슈-커밋-PR 연결 키워드(Closes #N), Projects 보드로 칸반 스타일 작업 관리, 이슈 템플릿 설정까지 코드 외 협업 도구를 완전히 활용합니다.

🎯 학습 목표

이 강을 마치면 다음을 할 수 있습니다.

  • GitHub Issues로 버그, 기능 요청, 개선 사항을 체계적으로 등록·관리할 수 있습니다.
  • 라벨, 마일스톤, 담당자를 활용해 이슈를 분류하고 추적할 수 있습니다.
  • 커밋이나 PR에서 특별 키워드로 이슈를 자동으로 닫을 수 있습니다.
  • GitHub Projects 보드로 팀 작업을 칸반 방식으로 시각적으로 관리할 수 있습니다.

📝 GitHub Issues — 작업 추적의 시작

이 섹션에서는 개발팀의 모든 작업 단위를 기록하고 추적하는 GitHub Issues의 개념과 기본 사용법을 살펴보겠습니다.

Issues는 GitHub 저장소에 내장된 작업 추적 시스템입니다. 버그 신고, 새 기능 제안, 개선 사항 제안, 질문 등 프로젝트 관련 모든 것을 이슈로 만들어 관리합니다. 이슈가 있으면 "무엇을 해야 하는지"를 팀 전체가 공유하고, 진행 상황을 투명하게 추적할 수 있습니다.

이슈를 만들면 자동으로 번호가 부여됩니다 (#1, #2, #3...). 이 번호는 저장소 전체에서 유일하며, 커밋 메시지나 PR에서 이슈를 참조할 때 사용합니다.

# 이슈 참조 (커밋 메시지나 PR 설명에서)
git commit -m "fix: 로그인 버튼 비활성화 오류 수정 (ref #42)"

# PR 머지 시 이슈 자동 닫기 키워드
# Closes #42, Fixes #42, Resolves #42 → PR이 main에 merge되면 #42 자동 닫힘

🏷️ 라벨 — 이슈 분류와 필터링

이 섹션에서는 이슈에 라벨을 붙여 종류와 우선순위를 시각적으로 표시하고 필터링하는 방법을 살펴보겠습니다.

라벨(Labels)은 이슈와 PR에 붙이는 색상 태그입니다. GitHub는 기본 라벨을 제공하고, 팀에서 커스텀 라벨을 추가할 수 있습니다.

기본 라벨의미
bug버그 또는 예상과 다른 동작
enhancement새 기능 또는 기존 기능 개선
documentation문서 추가 또는 개선
good first issue처음 기여하기 좋은 이슈 (오픈소스에서 활용)
help wanted추가 도움이 필요한 이슈
question추가 정보나 답변이 필요한 경우
wontfix의도적으로 수정하지 않을 이슈

팀 관행에 따라 추가로 자주 쓰이는 커스텀 라벨 예시입니다.

  • priority: high, priority: medium, priority: low: 우선순위
  • status: in-progress, status: blocked: 현재 상태
  • type: backend, type: frontend, type: infra: 담당 영역

이슈 목록에서 라벨 필터를 사용하면 "현재 진행 중인 버그만" 또는 "백엔드 관련 이슈만" 같이 빠르게 원하는 이슈를 찾을 수 있습니다.

🎯 마일스톤 — 목표와 기한 관리

이 섹션에서는 여러 이슈를 묶어 하나의 릴리즈나 스프린트 목표로 관리하는 마일스톤을 살펴보겠습니다.

마일스톤(Milestone)은 여러 이슈를 하나의 목표(릴리즈 버전, 스프린트 등)로 묶는 그룹입니다. 마일스톤에 포함된 이슈 중 몇 %가 완료됐는지 진행 바로 표시됩니다.

마일스톤 사용 예시입니다.

  • v1.0.0 릴리즈: 출시에 필요한 필수 기능 이슈들을 묶어 진행 상황을 한눈에 파악
  • 2주 스프린트 2024-W03: 2주 단위로 처리할 이슈들을 묶어 팀 속도 측정
  • 성능 개선 프로젝트: 특정 목적의 이슈들을 묶어 별도 관리
# 이슈와 PR에서 마일스톤 설정은 GitHub 웹에서:
# 이슈/PR 우측 사이드바 → Milestone → 선택
# 마일스톤 관리: Issues 탭 → Milestones → New milestone
#   - Title: v1.2.0
#   - Due date: 2024-02-29
#   - Description: 사용자 인증 시스템 완성 릴리즈

📋 이슈 작성 — 좋은 이슈의 조건

이 섹션에서는 리포터와 개발자 모두에게 유용한 좋은 이슈를 작성하는 방법을 살펴보겠습니다.

좋은 이슈는 문제를 빠르게 이해하고 재현하는 데 필요한 모든 정보를 담고 있습니다.

버그 이슈 작성 템플릿 예시입니다.

  • 환경: 운영체제, 브라우저 버전, 앱 버전 등
  • 재현 단계: 1. 로그인 페이지 접속 / 2. 구글 로그인 버튼 클릭 / 3. 콜백 후 에러 발생
  • 예상 동작: 메인 페이지로 이동해야 함
  • 실제 동작: 500 서버 에러 페이지 표시
  • 스크린샷 또는 에러 로그: 직접 첨부

이슈 템플릿을 설정하면 이슈 생성 시 자동으로 양식이 채워집니다. 저장소 .github/ISSUE_TEMPLATE/ 폴더에 마크다운 파일을 만들면 됩니다.

📊 GitHub Projects — 칸반 보드로 시각적 관리

이 섹션에서는 이슈와 PR을 칸반 스타일로 시각화해 팀 진행 상황을 한눈에 파악하는 GitHub Projects를 살펴보겠습니다.

GitHub Projects는 이슈와 PR을 카드로 표시하는 칸반 보드입니다. 각 카드를 드래그 앤 드롭으로 열(column) 간 이동하며 상태를 시각적으로 관리합니다.

Projects는 저장소 탭에서 "Projects" → "New project"로 생성합니다. 보드 뷰 외에 테이블 뷰, 로드맵 뷰도 제공합니다.

일반적인 칸반 열 구성 예시입니다.

  • Backlog: 아직 시작하지 않은 이슈 목록
  • In Progress: 현재 작업 중인 이슈
  • In Review: PR이 열려 있고 코드 리뷰 중
  • Done: 완료되어 main에 merge된 이슈
# Projects 자동화 설정 (GitHub Actions 연동)
# Settings → Projects → Automation 탭에서:
# - 이슈가 열리면 자동으로 "Backlog"로 이동
# - PR이 열리면 "In Review"로 이동
# - PR이 머지되면 "Done"으로 이동
# → 수동으로 카드 이동할 필요 없이 자동 관리

Projects는 단일 저장소뿐 아니라 여러 저장소의 이슈를 하나의 보드에서 관리하는 Organization-level Project도 지원합니다. 팀에서 여러 저장소를 운영할 때 유용합니다.

🔗 이슈 → 커밋 → PR → 자동 닫기 연결

이 섹션에서는 이슈, 커밋, PR을 서로 연결해 작업의 전체 맥락을 GitHub에 기록하는 방법을 살펴보겠습니다.

GitHub에서 커밋 메시지와 PR 설명에 특정 키워드를 사용하면 이슈와 자동으로 연결됩니다.

# 커밋 메시지에서 이슈 참조 (이슈에 자동 링크됨)
git commit -m "fix: 결제 실패 시 에러 메시지 표시 (ref #87)"

# PR 설명에서 이슈 자동 닫기 키워드
# Closes #87   → PR이 main에 merge될 때 #87 자동 닫힘
# Fixes #87    → 동일
# Resolves #87 → 동일

# 여러 이슈 동시에 닫기
# Closes #87, Closes #91, Fixes #93

이 연결 덕분에 이슈 페이지에서 "이 이슈를 해결한 PR이 무엇인지", PR 페이지에서 "이 PR이 어떤 이슈를 해결하는지"를 바로 확인할 수 있습니다. 6개월 후에 "이 기능을 왜 만들었지?"를 알 수 있는 귀중한 히스토리입니다.

📝 핵심 요약

14강에서 배운 내용을 정리해 보겠습니다.

기능역할주요 활용
Issues작업 추적버그·기능·개선 등록
Labels이슈 분류종류·우선순위·영역 표시
Milestones목표 묶음릴리즈·스프린트 관리
Projects시각적 관리칸반 보드, 진행 상황 한눈에

자동 닫기 키워드: PR 설명에 Closes #번호 → PR merge 시 이슈 자동 닫힘

다음 강인 15강 — 되돌리기 전략에서는 커밋을 취소하거나 수정하는 다양한 방법을 배웁니다. git revert, git reset, git stash의 차이와 각각의 안전한 사용 기준을 이해하면 실수를 두려워하지 않고 자신 있게 개발할 수 있게 됩니다!

관련 주제

  • GitHub Issues
  • 라벨·마일스톤
  • Closes 키워드
  • GitHub Projects
  • 칸반 보드
  • 개발·프로그래밍
  • 개발·프로그래밍 강의
  • 깃허브 사용법 18강 — Git & GitHub 협업
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

깃허브 사용법 18강 — Git & GitHub 협업

이 강의가 속한 시리즈는 총 15강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...