DaleSchool

Pull Request로 협업하기

입문20분

학습 목표

  • Pull Request를 만들고 설명을 작성할 수 있다
  • PR 리뷰에서 댓글을 달고 승인할 수 있다
  • PR을 병합하고 브랜치를 정리할 수 있다

Pull Request란?

브랜치에서 작업을 마쳤습니다. 이제 main에 합치고 싶습니다. 그냥 합쳐도 될까요?

팀 환경에서는 먼저 **검토(review)**를 받습니다. Pull Request(PR)는 "내 변경사항을 확인하고 합쳐달라"는 요청입니다.

PR을 통해:

  • 팀원이 코드를 검토하고 피드백을 줄 수 있습니다
  • 자동 테스트가 실행됩니다
  • 변경 이력이 명확하게 남습니다

PR 만들기

이전 레슨에서 만든 add-profile 브랜치로 PR을 만들어봅니다.

  1. 저장소에서 Pull requests 탭 클릭
  2. New pull request 클릭
  3. base: main, compare: add-profile 선택
  4. 아래로 스크롤하면 변경 사항(diff)이 보입니다
  5. Create pull request 클릭

PR 제목과 설명 작성:

제목: docs: 프로필 정보 추가

설명:
## 변경 사항
- README에 개인 프로필 섹션 추가
- 이름, 관심사, 목표 정보 포함

## 확인 방법
README.md 파일에서 "나에 대해" 섹션 확인
  1. Create pull request 클릭

PR 화면 살펴보기

PR 페이지의 주요 탭입니다.

| 탭 | 내용 | | ----------------- | ------------------------ | | Conversation | 댓글, 리뷰, 토론 | | Commits | 이 PR에 포함된 커밋 목록 | | Files changed | 변경된 파일과 diff |

Files changed 탭에서 줄 번호 왼쪽 + 버튼을 클릭하면 특정 줄에 댓글을 달 수 있습니다.

리뷰 달기

팀원이 PR을 검토하는 방법입니다. 혼자 연습할 때는 자신의 PR에 직접 달아봅니다.

  1. Files changed 탭 클릭
  2. 변경된 줄 위에 마우스를 올리면 + 버튼이 나타납니다
  3. 클릭 후 댓글 입력:
이름 필드 추가가 좋네요! 관심사도 더 추가하면 어떨까요?
  1. Add single comment 또는 Start a review 클릭

리뷰 상태:

  • Comment: 일반 의견 (병합 차단 없음)
  • Approve: 승인 — 병합 가능
  • Request changes: 수정 요청 — 수정 전 병합 불가

PR 병합하기

리뷰가 완료되면 병합합니다.

  1. Conversation 탭으로 돌아오기
  2. 초록색 Merge pull request 버튼 클릭
  3. Confirm merge 클릭
  4. Delete branch 클릭 (병합된 브랜치 정리)

이제 main 브랜치에 변경사항이 반영됩니다.

"왜?" — PR이 팀의 품질을 높이는 이유

PR은 단순한 병합 요청이 아닙니다. 팀의 지식 공유 채널입니다.

  • 리뷰어가 버그를 미리 발견합니다
  • 코드 스타일과 설계 방향을 통일합니다
  • 새 팀원이 코드베이스를 파악하는 학습 기회가 됩니다
  • "왜 이렇게 짰지?"라는 질문의 답이 PR 설명에 남습니다

많은 팀이 "main에 직접 커밋 금지" 정책을 사용합니다. 모든 변경은 PR을 거쳐야 합니다.

심화 학습

Draft PR — 아직 리뷰 준비가 안 됐을 때

작업 중인 PR을 공유하고 싶지만, 아직 리뷰 받을 준비가 안 됐을 때 Draft PR을 사용합니다.

New pull request 에서 Create draft pull request 선택.

Draft 상태에서는:

  • 코드를 보고 의견을 나눌 수 있지만, 병합 버튼이 비활성화됩니다
  • 준비되면 Ready for review 버튼으로 전환

"작업 중" 상태를 팀원에게 알리는 좋은 방법입니다.

PR 템플릿 설정하기

저장소에 PR 템플릿을 추가하면, PR을 만들 때 설명 형식이 자동으로 채워집니다.

저장소 루트에 .github/pull_request_template.md 파일을 만들고:

## 변경 사항

<!-- 무엇을 바꿨나요? -->

## 테스트 방법

<!-- 어떻게 확인했나요? -->

## 관련 이슈

<!-- Closes #이슈번호 -->

팀원 모두가 일관된 PR 설명을 작성하게 됩니다.

  1. add-profile 브랜치(또는 새 브랜치)에서 README.md를 수정하세요.
  2. Pull Request를 만들고 제목과 설명을 작성하세요.
  3. Files changed 탭에서 변경 사항을 확인하고, 댓글을 달아보세요.
  4. PR을 병합하고 브랜치를 삭제하세요.

Q1. Pull Request(PR)의 주된 목적은?

  • A) 저장소를 복사해서 가져오는 것
  • B) 브랜치의 변경 사항을 팀원이 검토한 뒤 병합하도록 요청하는 것
  • C) 파일을 원격 서버에 업로드하는 것
  • D) 저장소를 공개로 전환하는 것

참고 자료