# [[Pull Request Workflow]] ## πŸ“Œ Brief Summary Pull Request(PR) μ›Œν¬ν”Œλ‘œμš°λŠ” κΈ°λŠ₯ λΈŒλžœμΉ˜μ—μ„œ μž‘μ—…ν•œ μ½”λ“œλ₯Ό 메인 μ½”λ“œλ² μ΄μŠ€μ— λ³‘ν•©ν•˜κΈ° μ „, μ½”λ“œμ˜ ν’ˆμ§ˆκ³Ό μ•ˆμ •μ„±μ„ κ²€μ¦ν•˜κ³  νŒ€μ›λ“€κ³Ό λ…Όμ˜ν•˜λŠ” 핡심 ν˜‘μ—… ν”„λ‘œμ„ΈμŠ€μž…λ‹ˆλ‹€. 이 과정은 λ™λ£Œμ˜ μ½”λ“œ 리뷰, μžλ™ν™”λœ ν…ŒμŠ€νŠΈ 톡과 μ—¬λΆ€ 확인, μ‹œκ°μ  νšŒκ·€ ν…ŒμŠ€νŠΈ 등을 ν¬ν•¨ν•˜μ—¬ λ²„κ·Έλ‚˜ UI 결함이 운영 ν™˜κ²½μ— λ°°ν¬λ˜λŠ” 것을 λ°©μ§€ν•©λ‹ˆλ‹€. μ†Œκ·œλͺ¨ νŒ€λΆ€ν„° λŒ€κ·œλͺ¨ ν”„λ‘œμ νŠΈμ— 이λ₯΄κΈ°κΉŒμ§€ μ½”λ“œ 병합 전에 리뷰λ₯Ό ν•„μˆ˜ν™”ν•˜μ—¬ 항상 배포 κ°€λŠ₯ν•œ μƒνƒœμ˜ μ•ˆμ •μ μΈ 메인 브랜치λ₯Ό μœ μ§€ν•˜λŠ” 데 ν•„μˆ˜μ μΈ 역할을 ν•©λ‹ˆλ‹€ [1-3]. ## πŸ“– Core Content * **μž‘κ³  μ§‘μ€‘λœ PR μœ μ§€:** PR은 단일 논리적 λ³€κ²½ μ‚¬ν•­μ΄λ‚˜ μž‘μ—…μ—λ§Œ 집쀑해야 ν•˜λ©°, κ°€λŠ₯ν•œ ν•œ μž‘μ€ 규λͺ¨(예: 200쀄 미만)둜 μœ μ§€ν•΄μ•Ό ν•©λ‹ˆλ‹€. 수천 μ€„μ˜ μ½”λ“œλŠ” 리뷰어가 μ œλŒ€λ‘œ κ²€ν† ν•˜κΈ° μ–΄λ ΅κΈ° λ•Œλ¬Έμ—, PR을 μž‘κ²Œ μͺΌκ°œλŠ” 것이 λΉ λ₯΄κ³  μ² μ €ν•œ μ½”λ“œ 리뷰λ₯Ό κ°€λŠ₯ν•˜κ²Œ ν•©λ‹ˆλ‹€ [4-6]. * **ν‹°μΌ“ ID 및 λͺ…ν™•ν•œ λ§₯락 제곡:** PR을 생성할 λ•ŒλŠ” λ³€κ²½λœ λ‚΄μš©(What), λ³€κ²½ν•œ 이유(Why), 그리고 UI 변경이 μžˆμ„ 경우 μŠ€ν¬λ¦°μƒ·μ„ λ°˜λ“œμ‹œ 포함해야 ν•©λ‹ˆλ‹€ [4]. λ˜ν•œ 컀밋 λ©”μ‹œμ§€μ™€ 브랜치 이름에 ν‹°μΌ“ ID(예: PROJ-123)λ₯Ό ν¬ν•¨μ‹œν‚€λ©΄ PR이 μžλ™μœΌλ‘œ ν‹°μΌ“κ³Ό μ—°κ²°λ˜μ–΄ μ½”λ“œ λ³€κ²½ 사항과 λΉ„μ¦ˆλ‹ˆμŠ€ μš”κ΅¬μ‚¬ν•­ κ°„μ˜ 좔적성(Traceability)을 확보할 수 있으며, 리뷰어가 λ§₯락을 μ‰½κ²Œ νŒŒμ•…ν•  수 μžˆμŠ΅λ‹ˆλ‹€ [7-9]. * **ν•„μˆ˜ 리뷰 및 병합(Merge) κ·œμΉ™:** 메인 브랜치(main)에 직접 μ½”λ“œλ₯Ό ν‘Έμ‹œν•˜λŠ” 것은 κΈˆμ§€λ˜λ©°, λ³€κ²½ 사항은 λ°˜λ“œμ‹œ PR을 톡해 λ°˜μ˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ [4, 10, 11]. μ΅œμ†Œ 1λͺ… μ΄μƒμ˜ νŒ€μ›μ—κ²Œ μ½”λ“œ 리뷰 및 μŠΉμΈμ„ λ°›μ•„μ•Ό ν•˜λ©°, 병합 μ „ λͺ¨λ“  μžλ™ν™”λœ CI/CD ν…ŒμŠ€νŠΈ 검사가 ν†΅κ³Όλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€ [4, 5, 12]. 병합 μ‹œμ—λŠ” 주둜 μŠ€μΏΌμ‹œ λ¨Έμ§€(Squash merge)λ₯Ό μ‚¬μš©ν•˜μ—¬ 컀밋 νžˆμŠ€ν† λ¦¬λ₯Ό κΉ”λ”ν•˜κ²Œ μœ μ§€ν•˜κ³ , 병합이 μ™„λ£Œλœ κΈ°λŠ₯ λΈŒλžœμΉ˜λŠ” μžλ™μœΌλ‘œ μ‚­μ œν•˜λ„λ‘ μ„€μ •ν•˜λŠ” 것이 ꢌμž₯λ©λ‹ˆλ‹€ [4, 10, 12]. * **μ‹œκ°μ  리뷰 및 μ ‘κ·Όμ„± 검사 μžλ™ν™”:** μ΅œμ‹  ν”„λ‘ νŠΈμ—”λ“œ PR μ›Œν¬ν”Œλ‘œμš°μ—μ„œλŠ” Storybookκ³Ό ν•¨κ»˜ Chromaticμ΄λ‚˜ Happo 같은 μ‹œκ°μ  νšŒκ·€ ν…ŒμŠ€νŠΈ(Visual Regression Testing) 도ꡬλ₯Ό CI νŒŒμ΄ν”„λΌμΈμ— ν†΅ν•©ν•©λ‹ˆλ‹€ [13-15]. PR이 열리면 도ꡬ가 μžλ™μœΌλ‘œ UI μ»΄ν¬λ„ŒνŠΈμ˜ μŠ€ν¬λ¦°μƒ·μ„ 찍어 κΈ°μ‘΄ κΈ°μ€€μ„ (baseline)κ³Ό ν”½μ…€ λ‹¨μœ„λ‘œ λΉ„κ΅ν•©λ‹ˆλ‹€ [16, 17]. μ˜λ„μΉ˜ μ•Šμ€ λ ˆμ΄μ•„μ›ƒ λ³€ν™”λ‚˜ μ ‘κ·Όμ„±(Accessibility) μœ„λ°˜μ΄ 발견되면 PR에 κ²½κ³ (Flag)λ₯Ό ν‘œμ‹œν•˜μ—¬ 병합 μ „ κ°œλ°œμžκ°€ 이λ₯Ό ν™•μΈν•˜κ³  μˆ˜μ •ν•˜λ„λ‘ κ°•μ œν•©λ‹ˆλ‹€ [13, 14, 18]. ## πŸ”— Knowledge Connections - **Related Topics:** [[Git Branching Strategies]], [[Visual Regression Testing]], [[Clean Code Principles]], [[Storybook]] - **Projects/Contexts:** [[GitHub Flow]], [[Feature Branch Workflow]], [[CI/CD Pipeline Integration]] - **Contradictions/Notes:** μ†ŒμŠ€μ— κ΄€λ ¨ 정보가 λΆ€μ‘±ν•©λ‹ˆλ‹€. (제곡된 μ†ŒμŠ€λ“€ 간에 PR μ›Œν¬ν”Œλ‘œμš°μ— λŒ€ν•œ λͺ¨μˆœλœ μ£Όμž₯은 μ‘΄μž¬ν•˜μ§€ μ•ŠμœΌλ©°, λͺ¨λ‘ 'μž‘μ€ PR, μ² μ €ν•œ 리뷰, μžλ™ν™”λœ ν…ŒμŠ€νŠΈ'λΌλŠ” κ³΅ν†΅λœ λͺ¨λ²” 사둀λ₯Ό κ°•μ‘°ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.) --- *Last updated: 2026-04-26*