모든 강의를 무료로 볼 수 있어요. 회원가입 없이도 학습 가능합니다.

12강 / 전체 12강

Pull Request

7분 읽기 조회 0

Pull Request 개념과 역할, 브랜치 push→PR 생성→코드 리뷰→수정→merge까지 전체 워크플로, 좋은 PR 설명 작성법, 리뷰어 관점 피드백 남기기, PR 머지 방식 3가지(merge/squash/rebase)를 완전히 익힙니다.

🎯 학습 목표

이 강을 마치면 다음을 할 수 있습니다.

  • Pull Request(PR)가 무엇인지, 왜 사용하는지 설명할 수 있습니다.
  • 브랜치 push → PR 생성 → 코드 리뷰 → merge까지 전체 워크플로를 실행할 수 있습니다.
  • 좋은 PR 제목과 설명을 작성하는 원칙을 이해합니다.
  • GitHub에서 리뷰 피드백을 남기고 받는 방법을 알고 있습니다.
  • Merge, Squash, Rebase 세 가지 머지 방식의 차이를 구분할 수 있습니다.

🔁 Pull Request란 무엇인가

이 섹션에서는 Pull Request의 개념과 Git의 merge 명령과 어떻게 다른지 살펴보겠습니다.

Pull Request(PR)는 "내 브랜치의 변경 사항을 다른 브랜치에 합쳐달라"는 요청을 GitHub 웹 인터페이스를 통해 공식적으로 제출하는 것입니다. 이름의 "Pull"은 상대방(메인테이너)이 내 작업을 당겨서(pull) 합쳐달라는 요청에서 왔습니다.

git merge와 PR의 차이는 과정에 있습니다. git merge는 로컬에서 즉시 병합하지만, PR은 병합 전에 팀원 검토(코드 리뷰) 단계를 거칩니다. 취업 후 거의 모든 회사에서 PR을 통한 코드 리뷰를 필수로 사용합니다.

PR의 핵심 가치입니다.

  • 코드 리뷰: 다른 개발자가 내 코드를 검토해 버그·보안 문제·개선 사항을 발견
  • 지식 공유: 팀 전체가 코드 변경 내역을 인지하고 논의하는 과정
  • 기록 보존: PR 설명, 댓글, 결정 과정이 GitHub에 영구 기록됨
  • 품질 게이트: 자동 테스트(CI)를 통과한 코드만 병합 허용

📋 PR 생성 — 단계별 워크플로

이 섹션에서는 실제 PR을 생성하고 리뷰를 받아 최종 병합까지 진행하는 전체 과정을 단계별로 살펴보겠습니다.

# 1. 기능 브랜치 작업 및 push
git switch -c feature/user-profile
# ... 작업 및 커밋들 ...
git push -u origin feature/user-profile

# push 후 GitHub이 자동으로 PR 생성 안내 링크 표시:
# remote: Create a pull request for 'feature/user-profile' on GitHub by visiting:
# remote:      https://github.com/username/project/pull/new/feature/user-profile

GitHub 웹에서 PR을 생성하는 순서입니다.

  1. 저장소 페이지에서 노란색 배너의 "Compare & pull request" 버튼 클릭 (push 직후 자동 표시)
  2. base 브랜치(합칠 목적지, 보통 main)와 compare 브랜치(내 기능 브랜치) 확인
  3. PR 제목 입력 (커밋 메시지와 별개로 전체를 요약하는 제목)
  4. 설명(description) 작성
  5. 리뷰어(Reviewers), 담당자(Assignees), 라벨(Labels) 설정 (팀 규칙에 따라)
  6. "Create pull request" 버튼 클릭

✍️ 좋은 PR 작성법

이 섹션에서는 리뷰어가 빠르고 효과적으로 리뷰할 수 있게 도와주는 PR 작성 원칙을 살펴보겠습니다.

좋은 PR은 리뷰어의 시간을 아끼고 리뷰 품질을 높입니다. PR 제목과 설명은 커밋 메시지와 달리 코드를 읽기 전에 "맥락과 의도"를 전달하는 역할입니다.

# PR 제목 예시
feat: 사용자 프로필 페이지 추가 (#123)
fix: 결제 금액 소수점 반올림 오류 수정
refactor: 인증 미들웨어 모듈화

PR 설명의 기본 구성입니다.

  • What (무엇을 했는가): 변경한 내용을 핵심만 간결하게 목록으로
  • Why (왜 했는가): 이 변경이 필요한 이유, 해결하는 문제
  • How to test (어떻게 테스트하는가): 리뷰어가 동작을 확인할 수 있는 단계별 방법
  • Screenshots (UI 변경 시): Before/After 스크린샷
  • Related issues: 관련 이슈 번호 (Closes #123이라고 쓰면 PR merge 시 이슈 자동 닫힘)

팀에서 PR 템플릿을 정해두면 일관성이 높아집니다. GitHub에서 .github/PULL_REQUEST_TEMPLATE.md 파일을 만들면 PR 생성 시 자동으로 설명 칸에 템플릿이 채워집니다.

👀 코드 리뷰 — 주고받기

이 섹션에서는 리뷰어와 PR 작성자 양쪽 관점에서 효과적인 코드 리뷰 방법을 살펴보겠습니다.

GitHub PR의 "Files changed" 탭에서 코드 라인별로 댓글을 달 수 있습니다. 줄 번호 옆의 + 아이콘을 클릭하면 해당 줄에 댓글을 입력할 수 있습니다.

리뷰어 관점: 피드백을 명확하고 건설적으로 남기는 방법입니다.

  • 제안(suggestion)** 기능 활용: 리뷰어가 직접 수정 코드를 제안하면 PR 작성자가 클릭 한 번으로 반영 가능
  • 단순 오류 지적보다 이유 + 개선 방향 함께 제시: "이 변수명이 모호합니다" 보다 "이 변수가 사용자 ID를 담고 있으므로 userId가 더 명확할 것 같습니다"
  • 심각도 구분: 반드시 수정해야 할 것(blocking)과 선택 사항인 제안(non-blocking)을 구분해 표시

PR 작성자 관점: 리뷰를 받는 방법입니다.

  • 피드백에 방어적으로 반응하지 않기 — 코드에 대한 피드백이지 나에 대한 공격이 아닙니다
  • 각 댓글에 수정 완료 또는 반대 의견을 명확히 답변하고 "Resolve" 처리
  • 수정 사항 커밋 후 재리뷰 요청
# 리뷰 피드백 반영 후 push
git add .
git commit -m "fix: 코드 리뷰 반영 — 변수명 명확화 및 에러 처리 추가"
git push
# PR이 자동으로 업데이트됨 (새 커밋이 PR에 반영)

✅ PR 승인 및 merge 방식 선택

이 섹션에서는 리뷰가 완료된 PR을 합치는 세 가지 방식과 각각의 특징을 살펴보겠습니다.

리뷰어가 "Approve"(승인)하면 PR을 병합할 수 있습니다. GitHub은 세 가지 merge 방식을 제공합니다.

방식동작히스토리사용 상황
Merge commit 모든 커밋 유지 + merge commit 추가 분기 흔적 보존 각 커밋이 의미 있을 때
Squash and merge PR의 모든 커밋을 1개로 합침 main이 선형, 깔끔 WIP 커밋이 많은 PR
Rebase and merge 커밋을 main 위에 재배치, merge commit 없음 완전 선형 커밋 품질이 좋고 선형 히스토리 선호시

팀에서 한 가지 방식으로 통일하는 것이 중요합니다. 대부분의 팀은 Squash and merge를 선호합니다. 개발 중 남긴 "wip", "임시", "typo 수정" 같은 작은 커밋들이 main 히스토리에 섞이지 않고, PR 단위로 깔끔하게 정리되기 때문입니다.

📝 핵심 요약

12강에서 배운 내용을 정리해 보겠습니다.

PR 생성 흐름입니다.

  1. 기능 브랜치에서 작업 + 커밋
  2. git push -u origin 브랜치명
  3. GitHub에서 PR 생성 (제목·설명·리뷰어 설정)
  4. 코드 리뷰 → 수정 → 재리뷰
  5. Approve 후 merge
  6. 브랜치 삭제

PR 설명 필수 항목: What(무엇) · Why(왜) · How to test(테스트 방법) · Related issues(관련 이슈)

다음 강인 13강 — 협업 워크플로에서는 팀에서 실제로 사용하는 체계적인 Git 전략인 GitHub Flow와 Git Flow를 비교하고, 상황에 맞는 브랜치 전략을 선택하는 기준을 배웁니다!

관련 주제

  • Pull Request
  • 코드 리뷰
  • PR 생성 흐름
  • Merge·Squash·Rebase
  • 좋은 PR 설명 작성법
  • 개발·프로그래밍
  • 개발·프로그래밍 강의
  • 깃허브 사용법 18강 — Git & GitHub 협업
  • 무료강의
  • 무료 온라인 강의
  • NUGUNA
  • 누구나

📚 시리즈 전체 공유

깃허브 사용법 18강 — Git & GitHub 협업

이 강의가 속한 시리즈는 총 12강, 모두 무료입니다. 처음부터 배우려는 동료에게 시리즈 전체를 알려 주세요.

댓글

0/1000

불러오는 중...