DaleSchool

Issues로 작업 관리하기

입문15분

학습 목표

  • Issue를 만들고 적절한 정보를 담아 작성할 수 있다
  • Label, Assignee로 이슈를 분류하고 관리할 수 있다
  • Issue와 Pull Request를 연결할 수 있다

Issues란?

프로젝트를 진행하다 보면 다양한 상황이 생깁니다.

  • "이 버튼을 클릭하면 오류가 나요!"
  • "다크 모드를 추가하면 좋겠어요."
  • "이 부분 문서가 부족한 것 같아요."

GitHub Issues는 이런 할 일, 버그, 요청, 토론을 관리하는 시스템입니다. 이메일이나 채팅으로 주고받던 내용을 저장소와 연결해서 체계적으로 관리할 수 있습니다.

Issue 만들기

  1. 저장소 Issues 탭 클릭
  2. New issue 클릭
  3. 제목과 내용 작성:

버그 신고 예시:

제목: 로그인 버튼 클릭 시 페이지가 흰 화면으로 바뀜

내용:
## 현상
로그인 페이지에서 "로그인" 버튼을 클릭하면 흰 화면이 표시됩니다.

## 재현 방법
1. /login 페이지 접속
2. 이메일/비밀번호 입력
3. "로그인" 버튼 클릭
4. 흰 화면 표시됨

## 기대 동작
메인 페이지로 이동해야 함

## 환경
- 브라우저: Chrome 120
- OS: Windows 11
  1. Submit new issue 클릭

좋은 이슈 제목은 한 줄로 문제를 명확히 설명합니다.

Label로 분류하기

Issue에 레이블을 붙이면 빠르게 분류하고 필터링할 수 있습니다.

기본 레이블: | 레이블 | 의미 | |--------|------| | bug | 버그, 오동작 | | enhancement | 새 기능 요청 | | documentation | 문서 관련 | | good first issue | 입문자가 기여하기 좋은 이슈 | | help wanted | 도움이 필요한 이슈 | | question | 질문 |

Issue 오른쪽 Labels → 원하는 레이블 선택.

직접 레이블을 만들 수도 있습니다: Issues 탭 → LabelsNew label.

Assignee로 담당자 지정하기

Issue 오른쪽 Assignees → 담당자 선택.

담당자를 지정하면:

  • 해당 팀원에게 알림이 갑니다
  • 누가 이 이슈를 처리하는지 명확해집니다
  • 본인 담당 이슈만 필터링해서 볼 수 있습니다

Issue와 PR 연결하기

Issue를 PR에 연결하면 PR이 병합될 때 자동으로 Issue가 닫힙니다.

PR 설명이나 본문에 키워드를 사용합니다:

Closes #5
Fixes #12
Resolves #8

예: Issue #5번이 "README 업데이트 필요"라면, PR 설명에 Closes #5를 쓰면 PR 병합 시 Issue가 자동으로 닫힙니다.

"왜?" — 이슈 트래커가 이메일보다 좋은 이유

이메일로 버그를 신고하면:

  • 맥락이 사라집니다 (누가 뭘 언제 말했는지 찾기 어렵습니다)
  • 같은 버그를 여러 명이 중복으로 신고합니다
  • 해결됐는지 알 수 없습니다

GitHub Issues를 사용하면:

  • 모든 논의가 이슈 하나에 모입니다
  • 중복 이슈를 쉽게 발견하고 연결할 수 있습니다
  • 해결 → PR 병합 → 이슈 자동 닫힘의 흐름이 생깁니다
  • 6개월 후에도 "왜 이렇게 됐지?"를 추적할 수 있습니다

오픈소스 프로젝트에 기여하고 싶다면 Issues 탭부터 보세요. good first issue 레이블이 달린 이슈가 입문자에게 적합합니다.

심화 학습

Milestone로 마감일 관리하기

관련 이슈들을 묶어서 목표와 마감일을 설정할 수 있습니다.

Issues 탭 → MilestonesNew milestone

예: "v1.0 출시" 마일스톤을 만들고, 출시 전에 해결해야 할 이슈들을 모아두면 진행률을 한눈에 볼 수 있습니다.

Issue 템플릿 설정하기

저장소에 이슈 템플릿을 추가하면 일관된 형식으로 이슈를 받을 수 있습니다.

Settings → Features → Issues → Set up templates

버그 신고용, 기능 요청용 등 여러 템플릿을 만들 수 있습니다. 오픈소스 프로젝트에서 자주 사용합니다.

  1. 저장소에 새 Issue를 만드세요. 제목은 "README에 설치 방법 추가 필요", 레이블은 documentation으로 설정하세요.
  2. 해당 이슈를 해결하는 브랜치를 만들고 README를 수정하세요.
  3. PR을 만들 때 설명에 Closes #이슈번호를 포함하세요.
  4. PR을 병합하고 이슈가 자동으로 닫히는 것을 확인하세요.

Q1. GitHub Issue에서 good first issue 레이블의 의미는?

  • A) 이 이슈가 가장 중요하다는 표시
  • B) 입문자가 기여하기 적합한 난이도의 이슈라는 표시
  • C) 이슈가 이미 해결됐다는 표시
  • D) 긴급하게 처리해야 한다는 표시

참고 자료