第9講

풀 리퀘스트와 협업

3 閲覧 1

Pull Request(PR)의 개념과 전체 협업 흐름을 이해한다. Fork-Clone-Branch-PR-Merge로 이어지는 오픈소스 기여 방식과 팀 내 코드 리뷰 문화를 익힌다.

Pull Request란?

Pull Request(PR)는 "내 브랜치의 변경사항을 메인 브랜치에 합쳐 달라"는 요청입니다. 단순한 코드 병합이 아니라 코드 리뷰, 토론, CI 검증을 거치는 협업의 핵심 단계입니다.

팀 내 협업 워크플로우 (GitHub Flow)

1. main에서 브랜치 생성
   git switch -c feature/add-search

2. 기능 개발 & 커밋
   git add .
   git commit -m "feat: 검색 기능 추가"

3. 원격에 push
   git push -u origin feature/add-search

4. GitHub에서 PR 생성
   - base: main / compare: feature/add-search
   - 제목, 설명 작성
   - 리뷰어 지정

5. 코드 리뷰 → 수정 → 재push
   # 리뷰어 코멘트 반영 후
   git add . && git commit -m "fix: 리뷰 반영 — 오류 처리 추가"
   git push

6. 승인(Approve) → Merge
   - Merge commit / Squash / Rebase 중 선택

7. 브랜치 삭제
   git branch -d feature/add-search
   git push origin --delete feature/add-search

오픈소스 기여 워크플로우 (Fork 방식)

# 1. 원본 프로젝트 Fork (GitHub 웹에서 Fork 버튼)
# 2. 내 계정의 Fork를 로컬로 Clone
git clone git@github.com:my-account/project.git
cd project

# 3. 원본 저장소를 upstream으로 등록
git remote add upstream git@github.com:original-author/project.git
git remote -v
# origin   → 내 Fork
# upstream → 원본

# 4. 브랜치 생성 & 작업
git switch -c fix/typo-in-readme

# 5. 원본 최신 변경사항 동기화 (자주 해줘야 함)
git fetch upstream
git rebase upstream/main

# 6. 내 Fork에 push & PR 생성
git push origin fix/typo-in-readme
# GitHub에서 "Compare & pull request" 버튼 클릭

좋은 PR 작성법

항목나쁜 예좋은 예
제목"수정함""fix: 검색 결과 0건일 때 빈 화면 표시"
크기500줄 변경200줄 이하 (리뷰 가능한 크기)
설명없음변경 이유, 스크린샷, 테스트 방법
이슈 연결없음"Closes #42" → 머지 시 이슈 자동 종료
PR 설명 템플릿 예시
## 변경 내용
- 검색어 없을 때 "결과 없음" 메시지 표시

## 변경 이유
빈 화면이 에러처럼 보여 UX 개선

## 테스트 방법
1. 검색창에 아무것도 입력하지 않고 검색
2. "검색 결과가 없습니다" 문구 확인

Closes #42

코드 리뷰 에티켓

리뷰어로서:
- 코드가 아닌 코드에 대해 말하기 ("이 함수는" X, "이 방식은" O)
- 질문 형식 활용 ("이렇게 하면 어떨까요?")
- Nit(nitpick) 명시: 사소한 제안은 "Nit:" 접두어 사용
- 긍정적인 부분도 코멘트

PR 작성자로서:
- 모든 코멘트에 응답 (반영했으면 "Done", 이견이면 이유 설명)
- 방어적으로 반응하지 않기
- 코멘트 반영 후 re-request review

머지 전략 선택

방식이력적합한 상황
Merge commit브랜치 이력 보존팀 협업, 기능 추적 필요
Squash merge커밋 1개로 압축지저분한 WIP 커밋 정리
Rebase merge선형 이력깔끔한 이력 선호 팀

이슈(Issue) 활용

# gh CLI로 이슈 생성
gh issue create --title "검색 기능 추가" --body "사용자가 이름으로 검색할 수 있어야 함"

# 이슈 목록 확인
gh issue list

# PR에서 이슈 닫기 (커밋 메시지 또는 PR 설명에)
Closes #42
Fixes #42
Resolves #42

관련 검색어  ·  pull request 방법, github PR 생성, 코드 리뷰 방법, fork clone 차이, github flow, 오픈소스 기여하는 법

채용정보
공지사항
인사이트
MY