GitHub Copilot 앱, 100만 줄짜리 PR도 매끄럽게 렌더링

GitHub 블로그가 9월 24일(한국 시각, 9월 23일 18:29 UTC) GitHub Copilot 앱의 pull request 보기 화면을 새로 만들었다고 밝혔습니다. 파일 수천 개, 변경 줄 수 백만 줄, 인라인 댓글 수백 개가 달린 초대형 PR도 일반 크기 PR처럼 열리고 스크롤되게 하는 것이 목표입니다.
1/쪼갤 수 없는 대형 PR을 위한 재설계
리팩터링이나 마이그레이션처럼 작업을 여러 PR로 나눌 수 없는 경우, 하나의 PR이 매우 커지고 그 위에 달리는 리뷰 댓글까지 더해지면서 더 커집니다. GitHub는 이런 상황에서도 리뷰 화면이 빠르고 매끄럽게 유지되도록 GitHub Copilot 앱의 PR 보기 화면을 다시 만들었다고 설명했습니다. 이번 작업의 핵심은 코드 diff 자체보다, 높이를 미리 알 수 없는 리뷰 댓글(코멘트) 영역을 어떻게 처리하느냐에 있었습니다.
2/테스트에 쓴 PR: 파일 2,200개, 변경 100만 줄 이상, 댓글 400개 이상
GitHub는 찾을 수 있는 가장 큰 PR로 테스트했다고 밝혔습니다. 오픈소스 PR 하나로, 파일 2,200개, 변경 줄 수 100만 줄 이상, 인라인 리뷰 댓글 400개 이상이 달려 있었습니다. 코드만 있는 diff는 가상화(virtualization) 기법으로 이미 빠르게 렌더링할 수 있었지만, 댓글은 마크다운 줄바꿈·접었다 펼치는 섹션·답글 입력창·이미지 로딩 여부에 따라 높이가 렌더링 시점에야 정해지는 문제가 있었습니다. GitHub는 이 문제를 풀기 위해 코드 영역과 댓글(동적 블록) 영역의 높이 계산을 완전히 분리하는 구조를 도입했다고 설명했습니다. 그 결과로 이 극단적인 크기의 PR도 일반 크기 PR과 같은 방식으로 열리고, 스크롤되고, 동작한다고 밝혔습니다.
3/GitHub Copilot 앱에서 바로 확인 가능
이번에 새로 만든 PR 보기 화면은 GitHub Copilot 앱에 이미 반영돼 있으며, 원문은 평소에 열기 힘들었던 PR을 직접 열어보라고 안내합니다. 원문에는 가격이나 제공 지역에 대한 별도 언급은 없습니다.
4/대형 리뷰의 병목이 줄어드는 셈AMEET 해석
지금까지는 초대형 PR을 리뷰하려면 느린 화면을 견디거나 아예 다른 도구로 diff를 읽는 수밖에 없었습니다. GitHub는 리뷰가 정적인 문서가 아니라 읽는 도중에도 댓글이 달리며 모양이 바뀌는 대화라는 점을 전제로 화면을 설계했다고 강조합니다. 스택형 PR로 쪼갤 수 없는 대규모 리팩터링·마이그레이션 작업을 리뷰하는 팀이라면 체감할 수 있는 변화입니다.