InfoGrab DocsInfoGrab Docs

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

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

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