[GitHub 100일 챌린지] Day 58 - 효과적인 PR 설명 작성법
[GitHub 100일 챌린지] Day 58 - 효과적인 PR 설명 작성법
100일 챌린지 Day 58 - 리뷰어가 이해하기 쉬운 PR 설명을 작성하는 방법을 배웁니다.
배울 내용
- PR 설명의 구조와 필수 요소
- 상황별 PR 설명 예시
- 마크다운 활용 팁
1. PR 설명 구조
기본 템플릿
1
2
3
4
5
6
7
8
9
10
11
12
13
14
## 변경 사항 (What)
무엇을 변경했는지
## 변경 이유 (Why)
왜 이 변경이 필요한지
## 구현 방법 (How)
어떻게 구현했는지
## 테스트 (Testing)
어떻게 테스트했는지
## 스크린샷 (Optional)
UI 변경 시 포함
2. 상황별 PR 설명
버그 수정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## 문제
- 모바일에서 버튼 클릭 시 앱 크래시 발생
- 재현율: 100%
## 원인
- null 체크 누락
## 해결
- 방어 코드 추가
- 단위 테스트 작성
## 테스트
- [ ] Android 12 테스트 ✅
- [ ] iOS 16 테스트 ✅
Closes #456
새 기능
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## 기능 설명
다크 모드 토글 버튼 추가
## 동작 방식
1. 헤더에 토글 버튼 배치
2. 클릭 시 테마 전환
3. localStorage에 설정 저장
## 스크린샷


## 추가 작업
- [ ] 애니메이션 추가 (별도 PR)
- [ ] 시스템 설정 연동 (별도 PR)
Closes #123
리팩토링
1
2
3
4
5
6
7
8
9
10
11
12
## 변경 이유
- 중복 코드 제거
- 가독성 향상
- 테스트 용이성 개선
## 변경 사항
- `UserService` 클래스 분리
- 공통 유틸 함수 추출
## 영향 범위
- ⚠️ Breaking Change 없음
- ✅ 기존 테스트 모두 통과
3. 마크다운 활용
체크리스트
1
2
3
4
## 테스트 체크리스트
- [x] 로컬 테스트
- [x] 단위 테스트
- [ ] E2E 테스트 (리뷰어 확인 필요)
코드 블록
1
2
3
4
5
변경 전:
```javascript
if (user) {
doSomething(user.name);
}
변경 후:
1
2
3
if (user?.name) {
doSomething(user.name);
}
1
2
3
4
5
6
7
### 강조
```markdown
**중요**: 이 PR은 v2.0에만 적용됩니다.
_Note_: 다음 릴리스에 포함 예정
> 리뷰어께: API 변경 확인 부탁드립니다.
4. Issue 연결
1
2
3
4
5
6
7
8
# 자동 종료
Closes #123
Fixes #456
Resolves #789
# 관련 Issue
Related to #100
See also #200
5. 리뷰어를 위한 가이드
1
2
3
4
5
6
7
8
9
10
11
## 리뷰 포인트
1. `UserController.ts:45` - 에러 처리 로직 확인
2. `api/users.test.ts` - 새 테스트 케이스 검토
3. `README.md` - 문서 업데이트 확인
## 테스트 방법
```bash
npm install
npm test
npm start
# localhost:3000에서 다크 모드 토글 테스트
```
6. DO & DON’T
✅ DO:
- 명확하고 구체적으로
- 변경 이유 설명
- 테스트 방법 제공
- 스크린샷 포함 (UI)
- Issue 연결
❌ DON’T:
- “코드 수정” 같은 모호한 설명
- 설명 없이 코드만
- 너무 길거나 복잡한 설명
- 관련 없는 정보 포함
정리
완료 체크:
- PR 설명의 필수 요소를 나열할 수 있다
- 상황에 맞는 PR 설명을 작성할 수 있다
- 마크다운 문법을 활용할 수 있다
핵심 요약:
- What, Why, How, Testing 구조
- 리뷰어 관점에서 작성
- 마크다운으로 가독성 향상
다음: Day 59 - 코드 리뷰 받기 →
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
