InfoGrab DocsInfoGrab Docs

머지 리퀘스트 성능 가이드라인

머지 리퀘스트가 GitLab의 성능에 미치는 영향을 최소화하기 위한 쿼리, 메모리, 캐싱, 스토리지 등 성능 관련 가이드라인을 설명합니다.

새로 도입하는 모든 머지 리퀘스트는 기본적으로 성능을 갖춰야 합니다. 머지 리퀘스트가 GitLab의 성능에 부정적인 영향을 주지 않도록 모든 머지 리퀘스트는 이 문서에 정리된 가이드라인을 준수해야 합니다. 백엔드 메인테이너와 성능 전문가가 명시적으로 논의하고 합의한 경우가 아니라면 이 규칙에는 예외가 없습니다. 다음 가이드도 함께 읽기를 강력히 권장합니다: 성능 가이드라인 마이그레이션에서 다운타임 방지 정의 # RFC 2119 에 따른 SHOULD 의 의미는 다음과 같습니다: 이 단어, 또는 형용사 "RECOMMENDED" 는 특정 상황에서 특정 항목을 무시할 타당한 이유가 존재할 수 있다는 뜻이지만, 다른 방향을 선택하기 전에 그 전체적인 함의를 이해하고 신중하게 검토해야 합니다. 이러한 트레이드오프는 각각 별도의 이슈에 문서화하고 그에 맞게 레이블을 붙이고 원래 이슈와 에픽에 링크하는 것이 이상적입니다. 영향 분석 # 요약 : 머지 리퀘스트가 성능과 GitLab 설치 환경을 유지·관리하는 사람들에게 미칠 수 있는 영향을 고려합니다. 제출하는 변경 사항은 애플리케이션 자체뿐 아니라 애플리케이션을 유지·관리하고 계속 운영하는 사람들(예: 프로덕션 엔지니어)에게도 영향을 줄 수 있습니다. 따라서 머지 리퀘스트가 애플리케이션뿐 아니라 애플리케이션을 계속 운영하는 사람들에게 미치는 영향까지 신중하게 고려해야 합니다. 사용하는 쿼리가 중요한 서비스를 중단시켜 엔지니어가 밤중에 깨어나는 상황을 만들 가능성이 있는지 확인합니다. 악의적인 사용자가 코드를 악용해 GitLab 인스턴스를 중단시킬 수 있는지, 변경 사항으로 특정 페이지의 로딩이 느려지지는 않는지, 데이터베이스에 부하나 데이터가 충분히 쌓였을 때 실행 시간이 기하급수적으로 늘어나지는 않는지도 함께 확인합니다. 이는 모두 머지 리퀘스트를 제출하기 전에 스스로 확인해야 할 사항입니다. 영향을 평가하기 어려운 경우도 있으며, 그럴 때는 성능 전문가에게 코드 리뷰를 요청해야 합니다. 자세한 내용은 아래 "리뷰" 섹션을 참고합니다. 성능 리뷰 # 요약 : 영향이 확실하지 않으면 성능 전문가에게 코드 리뷰를 요청합니다. 머지 리퀘스트의 영향을 평가하기 어려운 경우가 있습니다. 이 경우에는 머지 리퀘스트 리뷰어 중 한 명에게 변경 사항 리뷰를 요청해야 합니다. ( 리뷰어 목록 이 있습니다.) 리뷰어는 다시 성능 전문가에게 변경 사항 리뷰를 요청할 수 있습니다. 틀 밖에서 생각하기 # 새 기능을 어떻게 사용할지는 사람마다 인식이 다릅니다. 사용자가 기능을 어떻게 쓸지를 항상 함께 고려합니다. 보통 사용자는 매우 이례적인 방식으로 기능을 시험하는데, 무차별 대입을 하거나 제품에 있는 엣지 조건을 악용하는 식입니다. 데이터 집합 # 머지 리퀘스트가 처리하는 데이터 집합은 명확히 파악하고 문서화해야 합니다. 기능은 처리할 예상 데이터 집합과 그로 인해 발생할 수 있는 문제를 명확히 문서화해야 합니다. 처리하는 데이터 집합을 강하게 강조하는 다음 예시를 살펴봅니다. 문제는 간단합니다. 어떤 Git 리포지터리에