> **김우성 님** > 29CM Mobile Unit Lead / iOS Lead | [**Facebook**](https://www.facebook.com/innocarpe) [**LinkedIn**](https://www.linkedin.com/in/wooseong-kim/) [**Blog**](https://medium.com/@innocarpe) >**세미나 영상 :** https://youtu.be/orUglG75oSE?si=oNLX-cv6vRVcCaHt <br> ## 1. PR이란? **PR(Pull Request)** 은 단순히 코드 변경 사항을 제출하는 것을 넘어, 팀원들과 코드에 대해 소통하고 협업하는 핵심적인 과정이다. PR은 개발자가 자신의 코드 변경 사항을 메인 코드베이스에 병합하기 위해 제출하는 요청이다. 이 과정에서 코드 리뷰어에게 변경된 코드를 설명하고, 변경의 필요성 및 구현 방식에 대해 토론하며, 최종적으로 팀의 합의를 통해 코드를 반영한다. <br> ## 2. 팀에 PR이 필요한 이유 PR은 팀의 생산성과 지식 공유에 필수적인 역할을 한다. - **지식 아카이브 (Knowledge Archives)** - PR은 코드 변경 사항뿐만 아니라, 그 변경이 이루어진 배경, 논의 과정, 결정 사항 등 모든 맥락을 기록하는 역할을 한다. 이는 팀의 중요한 지식 자산이 되어, 향후 유사한 작업을 하거나 코드를 이해할 때 큰 도움이 된다. - PR 기록이 부실하면 코드 맥락 파악이 어려워져 개발 속도가 저하될 수 있다. - **변경 사항 자체와 이에 대한 맥락을 팀에 공유** - PR을 통해 코드 변경 자체와 그 변경이 왜 필요한지, 어떤 문제를 해결하는지 등 상세한 맥락을 팀 전체에 투명하게 공유할 수 있다. <br> ## 3. 팀의 생산성을 낮추는 PR PR을 단순히 코드 리뷰 도구로만 생각하고 잘못 활용하면 오히려 팀의 생산성을 낮출 수 있다. - **작성자 위주의 PR (맥락 부족):** 변경 사항에 대한 충분한 설명이나 설득 과정이 부족하여 리뷰어가 코드의 의도를 파악하기 어렵게 만든다. - **너무 많은 커밋을 포함하는 PR:** 변경 범위가 너무 커서 리뷰어가 전체 코드를 이해하고 검토하는 데 큰 부담을 느끼게 한다. <br> ## 4. 좋은 PR의 조건 PR은 기본적으로 '글'이며, 리뷰어에게 자신의 코드를 설득하는 '요청서'이다. 리뷰어가 바쁘다는 점을 고려하여, 다음과 같은 특징을 갖춘 PR이 팀 전체의 생산성을 높인다. 1. **유용성을 강력히 어필:** 변경 사항이 왜 유용한지, 어떤 문제를 해결하는지 명확하게 설명한다. 2. **간결하고 명확한 코드:** 리뷰어가 스마트폰으로도 쉽게 리뷰할 수 있을 만큼, 코드 변경 범위가 작고 간결해야 한다. - 모든 PR이 이럴 수는 없지만, 지향해야 할 방향이다. 3. **풍부한 맥락 제공:** 리뷰어가 해당 작업에 대해 아무것도 모르는 상태에서도 리뷰를 시작할 수 있도록, 충분한 배경 정보와 설명(e.g. 문제 정의, 해결 방안, 테스트 방법 등)을 제공한다. <br><br><br> ![[PR.jpeg|200]] <span style="color:gray;">가장 기억에 남는 세미나!</span> <br> <br> <br> <br>