포스트

[GitHub 100일 챌린지] Day 58 - 효과적인 PR 설명 작성법

[GitHub 100일 챌린지] Day 58 - 효과적인 PR 설명 작성법

100일 챌린지 Day 58 - 리뷰어가 이해하기 쉬운 PR 설명을 작성하는 방법을 배웁니다.

배울 내용

  1. PR 설명의 구조와 필수 요소
  2. 상황별 PR 설명 예시
  3. 마크다운 활용 팁

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에 설정 저장

## 스크린샷
![Light Mode](light.png)
![Dark Mode](dark.png)

## 추가 작업
- [ ] 애니메이션 추가 (별도 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 라이센스를 따릅니다.