원티드랩 프론트엔드 팀의 Pull Request 양식 및 자동화

Chaeryn Park
원티드랩 기술 블로그
6 min readMar 26, 2021

Pull Request를 통일성있게 자동화하여 관리해보자!

[Why PR Template?]

일관성 있는 형식

  • PR의 내용으로 들어갈 항목을 미리 정해서 공유하면 모두가 같은 형식으로 작성할 수 있기 때문에 전체적인 내용을 파악하는 시간을 줄여줍니다.
  • 또한 PR을 만들때마다 같은 내용을 작성해야 하는 번거로움도 줄어들 수 있습니다.
  • 서비스가 커지고 늘어나는 동료들에 대비하여 함께 효율적으로 일할 수 있는 환경 구축에 도움이 됩니다.

더 쉬운 코드 검토, 테스트 및 논의

  • PR Template에 적절한 설명과 컨텍스트를 포함시키면 팀원들과의 커뮤니케이션이 용이해집니다.

[Template 구성하기]

Template의 항목들을 구성하기 위해서 구글링과 팀원들이 기존에 자주쓰는 PR 내용을 파악해보았습니다.

  • 구글링: 변경된 작업 내용 / PR 내용 요약 / 이미지 또는 영상(작업 내용을 확인할 수 있는) / 관련 PR 링크 / 테스트 여부 / PR 종류 / PR전에 확인해야할 체크리스트 / 기타 공유 사항 등
  • 팀원들의 자주쓰는 내용: 작업자 / JIRA 이슈 링크 / PR 내용 요약 / 이미지 또는 영상(작업 내용을 확인할 수 있는) / 자세한 설명 / 레퍼런스 링크 / 배포된 서버 링크 / 기획서 등

✔️ 반드시 들어가야 할 항목: 지라 이슈(티켓) 링크

프론트엔드 팀에서는 YeonSeo Woo님이 ‘신입이가 원티드 프론트엔드 팀에 온보딩 하면서 알게 된 것들에서 자세히 설명해주신 것 처럼 JIRA를 사용해서 모든 업무와 이슈처리를 진행하고 있습니다. 따라서 JIRA와의 업무 연동을 위해 PR내용으로 JIRA의 이슈 링크를 포함하여 이슈를 추적 관리하는 것이 중요합니다.

결정된 항목

  • 필수 항목(*)
    - Assignee: PR 작업자
    - JIRA Ticket: PR 내용을 확인할 수 있는 관련된 지라 티켓 링크
    - PR Summary: PR 한 줄 설명
  • 선택 항목
    - PR Detail Descriptions: PR에 대한 상세 설명
    - Additional Comments: 배포된 서버링크, 레퍼런스 링크, 리뷰어들을 위한 코멘트 등
    - Screenshots / GIFs / Videos: 변경 사항을 한 눈에 볼 수 있는 이미지 또는 영상

[시행착오]

첫번째 시도☝🏽PULL_REQUEST_TEMPLATE.md

Github에서 자체적으로 제공해주는 기능으로, PR을 생성할 때 미리 만들어둔 Template을 가져와서 공통의 형식으로 작성할 수 있도록 도와줍니다. 프로젝트의 root에 .github 라는 폴더를 생성하고 PULL_REQUEST_TEMPLATE.md 파일을 만들어 넣어두면, 새로운 PR이 만들어질 때 해당 폴더에서 템플릿이 있는 지 확인하고 존재하는 경우 해당 템플릿을 기준으로 PR Template이 생성됩니다.

⚠️ 불편한 점

작업자와 지라 티켓 링크를 매번 수동으로 입력하는 것이 번거롭다.
PR을 자세하게 설명해주는 항목도 있으면 좋겠다.

PULL_REQUEST_TEMPLATE.md
마크다운 파일을 수정하여 해당 항목 아래에 직접 입력

두번째 시도✌🏽 PULL_REQUEST_TEMPLATE.md + Tampermonkey

불편한 점들을 반영해서 PR Template과 기존에 Jeongsk님이 만들어주신 Tampermonkey를 같이 이용하면 어떨까?

Tampermonkey란?

사용자 스크립트를 이용하여 페이지의 레이아웃을 변경, 새로운 기능과 콘텐츠를 추가 또는 제거하거나 브라우저에서의 작업을 자동화해주는 크롬 확장프로그램입니다.
작성해둔 스크립트를 활성화해두면 해당 페이지에서 자동으로 ‘Assignee’와 ‘JIRA Ticket’ 항목이 채워집니다.

Tampermonkey 스크립트
스크립트 활성화
PULL_REQUEST_TEAMPLATE.md ➕ Tampermonkey

⚠️ 불편한 점

PULL_REQUEST_TEMPLATE.md와 Tampermonkey 스크립트 중 어떤게 먼저 불러와지느냐에 따라 타이밍 이슈로 인한 오류 발생.

[그러면]

Tampermonkey에 다 합치자

기존의 Tampermonkey 스크립트에 PULL_REQUEST_TEMPLATE.md의 마크다운을 합쳐서 템플릿도 한꺼번에 자동으로 작성되게 하면 어떨까?
Jeongsk님이 차려주신 밥상에 숟가락🥄 살포시 얹어 Tampermonkey 스크립트를 수정하여 다음과 같이 만들어보았습니다.

PR 생성 테스트
스크립트를 이용하여 PR 템플릿 및 Reviewers, Assignees 등 자동 입력

현재는 필수 항목들(Assignee, JIRA Ticket, Summary)과 Reviewers, Assignee가 탬퍼몽키 스크립트를 이용하여 자동으로 입력되고 있습니다.

팀원들 간의 PR 형식이 일관되게 관리되고 매번 반복적인 작업들을 자동화할 수 있으니 아직까지는 만!족!하며 PR을 날리고 있습니다.🕊🕊

참고문서

원티드에서 현재 다양한 포지션을 채용하고 있습니다.

원티드 채용공고 확인하기

--

--