Issues란?
프로젝트를 진행하다 보면 다양한 상황이 생깁니다.
- "이 버튼을 클릭하면 오류가 나요!"
- "다크 모드를 추가하면 좋겠어요."
- "이 부분 문서가 부족한 것 같아요."
GitHub Issues는 이런 할 일, 버그, 요청, 토론을 관리하는 시스템입니다. 이메일이나 채팅으로 주고받던 내용을 저장소와 연결해서 체계적으로 관리할 수 있습니다.
Issue 만들기
- 저장소 Issues 탭 클릭
- New issue 클릭
- 제목과 내용 작성:
버그 신고 예시:
제목: 로그인 버튼 클릭 시 페이지가 흰 화면으로 바뀜
내용:
## 현상
로그인 페이지에서 "로그인" 버튼을 클릭하면 흰 화면이 표시됩니다.
## 재현 방법
1. /login 페이지 접속
2. 이메일/비밀번호 입력
3. "로그인" 버튼 클릭
4. 흰 화면 표시됨
## 기대 동작
메인 페이지로 이동해야 함
## 환경
- 브라우저: Chrome 120
- OS: Windows 11
- Submit new issue 클릭
좋은 이슈 제목은 한 줄로 문제를 명확히 설명합니다.
Label로 분류하기
Issue에 레이블을 붙이면 빠르게 분류하고 필터링할 수 있습니다.
기본 레이블:
| 레이블 | 의미 |
|--------|------|
| bug | 버그, 오동작 |
| enhancement | 새 기능 요청 |
| documentation | 문서 관련 |
| good first issue | 입문자가 기여하기 좋은 이슈 |
| help wanted | 도움이 필요한 이슈 |
| question | 질문 |
Issue 오른쪽 Labels → 원하는 레이블 선택.
직접 레이블을 만들 수도 있습니다: Issues 탭 → Labels → New 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 탭 → Milestones → New milestone
예: "v1.0 출시" 마일스톤을 만들고, 출시 전에 해결해야 할 이슈들을 모아두면 진행률을 한눈에 볼 수 있습니다.
Issue 템플릿 설정하기
저장소에 이슈 템플릿을 추가하면 일관된 형식으로 이슈를 받을 수 있습니다.
Settings → Features → Issues → Set up templates
버그 신고용, 기능 요청용 등 여러 템플릿을 만들 수 있습니다. 오픈소스 프로젝트에서 자주 사용합니다.
- 저장소에 새 Issue를 만드세요. 제목은 "README에 설치 방법 추가 필요", 레이블은
documentation으로 설정하세요. - 해당 이슈를 해결하는 브랜치를 만들고 README를 수정하세요.
- PR을 만들 때 설명에
Closes #이슈번호를 포함하세요. - PR을 병합하고 이슈가 자동으로 닫히는 것을 확인하세요.
Q1. GitHub Issue에서 good first issue 레이블의 의미는?
- A) 이 이슈가 가장 중요하다는 표시
- B) 입문자가 기여하기 적합한 난이도의 이슈라는 표시
- C) 이슈가 이미 해결됐다는 표시
- D) 긴급하게 처리해야 한다는 표시