Git 시니어 프레임워크 기술면접

Git 시니어 (7년+) 프레임워크 10문항 조회수 15 · 2026-08-22 (토) 07:42:49
1 Git Bisect
Hard

Q. Git bisect는 이진 탐색 알고리즘을 사용하여 버그가 도입된 커밋을 찾습니다. 10,000개 이상의 커밋이 있는 저장소에서 bisect의 성능과 정확도를 최적화하는 전략을 설명해주세요. 특히 non-linear 히스토리(merge commit이 많은 경우)에서 bisect가 어떻게 동작하는지, skip 명령을 사용할 때의 알고리즘 변화, 그리고 자동화된 bisect run에서 false positive를 최소화하는 방법을 포함해서 답변해주세요.

이진 탐색의 기본 원리와 DAG 구조에서 good/bad 커밋 사이의 경로 선택 방식을 생각해보세요.

A. 모범답안

Git bisect는 good과 bad 커밋 사이의 커밋들을 이진 탐색으로 탐색하며, DAG 구조에서는 reachability를 고려하여 두 커밋 사이의 모든 ancestor를 대상으로 합니다. Merge commit이 많은 경우 --first-parent 옵션을 사용하여 메인 라인만 탐색하거나, 각 merge의 양쪽 부모를 모두 고려하여 탐색 범위를 결정합니다. Skip 명령 사용 시 해당 커밋과 그 descendants를 제외하고 남은 커밋들로 범위를 재조정하며, 이는 탐색 효율을 O(log n)에서 약간 저하시킬 수 있습니다. Bisect run 자동화 시에는 테스트의 idempotency를 보장하고, 환경 변수나 빌드 캐시를 정리하며, 타임아웃을 설정하여 hanging을 방지해야 합니다. 또한 bisect log를 저장하여 중단 시 재개할 수 있도록 하고, terms 옵션으로 good/bad 대신 도메인 특화 용어를 사용하면 팀 커뮤니케이션이 향상됩니다.

핵심 포인트
  • • DAG 구조에서 good/bad 커밋 간 reachability 기반 탐색
  • • Merge commit 처리를 위한 first-parent 전략
  • • Skip 사용 시 탐색 공간 재조정과 성능 영향
  • • 자동화된 bisect run의 테스트 환경 격리 및 재현성 보장
답변에 넣으면 좋은 키워드
bisect binary search reachability first-parent bisect run idempotency
실무에서는

프로덕션 버그의 원인 커밋을 찾을 때 수천 개의 커밋 히스토리에서 효율적으로 범인을 특정하는 데 사용됩니다.

Follow-up 질문

Bisect 중 발견한 커밋이 실제로는 여러 변경사항을 포함하는 squash merge인 경우, 어떻게 더 세밀하게 원인을 찾을 수 있을까요?

2 Git Worktree
Medium

Q. Git worktree는 하나의 저장소에서 여러 작업 디렉토리를 동시에 관리할 수 있게 합니다. Worktree의 내부 구조와 메인 저장소와의 관계를 설명하고, 여러 worktree 간에 공유되는 자원(객체 저장소, refs)과 독립적인 자원(인덱스, HEAD)을 구분하여 설명해주세요. 또한 CI/CD 파이프라인에서 병렬 빌드를 위해 worktree를 활용하는 시나리오와 주의사항을 포함해주세요.

.git 디렉토리의 구조가 worktree에서 어떻게 변경되는지, 그리고 공유 자원의 동시성 제어를 생각해보세요.

A. 모범답안

Git worktree는 메인 저장소의 .git/worktrees 디렉토리에 각 worktree별 메타데이터를 저장하며, 각 worktree의 작업 디렉토리에는 .git 파일이 메인 저장소를 가리킵니다. 객체 저장소(.git/objects), packed-refs, config는 모든 worktree가 공유하여 디스크 공간을 절약하고 fetch 시 중복을 방지합니다. 반면 HEAD, 인덱스(.git/index), reflog, MERGE_HEAD 같은 작업 상태는 각 worktree마다 독립적으로 유지되어 동시에 다른 브랜치에서 작업할 수 있습니다. CI/CD에서는 각 파이프라인 단계마다 별도의 worktree를 생성하여 병렬 빌드를 수행할 수 있으나, 같은 브랜치를 여러 worktree에서 체크아웃할 수 없다는 제약이 있습니다. Worktree 정리 시 git worktree prune으로 stale entries를 제거하고, 락 파일 충돌을 피하기 위해 동시 쓰기 작업을 조율해야 합니다.

핵심 포인트
  • • .git/worktrees 디렉토리 구조와 메인 저장소 참조 방식
  • • 객체 저장소와 refs는 공유, HEAD와 인덱스는 독립
  • • 동일 브랜치 중복 체크아웃 불가 제약
  • • CI/CD 병렬 빌드 시나리오와 락 파일 관리
답변에 넣으면 좋은 키워드
worktree shared objects independent HEAD parallel builds worktree prune
실무에서는

핫픽스를 긴급 배포하면서 동시에 feature 개발을 계속해야 할 때, 별도 clone 없이 빠르게 다른 브랜치 환경을 구성하는 데 사용됩니다.

Follow-up 질문

여러 개발자가 네트워크 파일 시스템에서 같은 저장소의 worktree를 사용할 때 발생할 수 있는 문제는 무엇인가요?

3 Git Attributes
Medium

Q. .gitattributes 파일을 사용한 경로별 설정이 Git의 다양한 기능에 어떻게 영향을 미치는지 설명해주세요. 특히 diff driver, merge driver, filter(clean/smudge), text/binary 처리, export-ignore 같은 속성들의 동작 원리와 실무 활용 사례를 설명하고, 대규모 팀에서 일관된 line ending 처리와 민감 정보 필터링을 위한 전략을 제시해주세요.

각 attribute가 Git의 어떤 단계(working tree, index, repository)에서 작동하는지 생각해보세요.

A. 모범답안

.gitattributes는 경로 패턴별로 Git의 동작을 커스터마이징하며, text 속성은 line ending 정규화를 제어하여 CRLF/LF 변환을 자동화합니다. Diff driver는 특정 파일 타입(예: JSON, XML)에 대해 커스텀 비교 로직을 적용하여 의미 있는 diff를 생성하고, merge driver는 자동 병합 전략을 파일별로 지정할 수 있습니다. Filter 속성의 clean은 working tree에서 index로 갈 때, smudge는 index에서 working tree로 갈 때 실행되어 민감 정보 마스킹이나 키워드 확장에 활용됩니다. Export-ignore는 git archive 시 특정 파일을 제외하여 배포 패키지 크기를 줄입니다. 대규모 팀에서는 .gitattributes를 저장소에 커밋하여 모든 개발자가 동일한 설정을 사용하도록 강제하고, text=auto를 기본값으로 설정하며, 플랫폼별 차이를 최소화합니다.

핵심 포인트
  • • Text 속성을 통한 line ending 정규화
  • • Diff/merge driver로 파일 타입별 처리 커스터마이징
  • • Clean/smudge filter의 양방향 변환 메커니즘
  • • 팀 전체 일관성을 위한 .gitattributes 저장소 커밋
답변에 넣으면 좋은 키워드
gitattributes diff driver merge driver clean filter smudge filter text normalization
실무에서는

Windows와 Linux 개발자가 혼재된 팀에서 line ending 문제를 해결하거나, 프론트엔드 빌드 산출물을 자동으로 제외하는 데 사용됩니다.

Follow-up 질문

Filter를 사용하여 암호화된 파일을 저장소에 보관하면서 working tree에서는 복호화된 상태로 작업하는 워크플로우를 구현할 때 주의할 점은 무엇인가요?

4 Git Replace
Hard

Q. Git의 replace 메커니즘은 기존 객체를 다른 객체로 동적으로 대체할 수 있게 합니다. Replace의 동작 원리와 refs/replace 네임스페이스의 역할을 설명하고, 히스토리 재작성 없이 잘못된 커밋을 수정하거나, 두 개의 독립적인 저장소 히스토리를 연결하는 grafting 시나리오에서 어떻게 활용할 수 있는지 설명해주세요. 또한 replace가 clone과 fetch 시 기본적으로 전파되지 않는 이유와 이를 공유하는 방법도 포함해주세요.

Replace는 객체 자체를 변경하지 않고 참조 시점에 대체가 일어난다는 점을 고려하세요.

A. 모범답안

Git replace는 .git/refs/replace 디렉토리에 원본 객체의 SHA-1을 이름으로 하는 ref를 생성하여 대체 객체를 가리키며, Git 명령이 객체를 읽을 때 replace ref가 있으면 자동으로 대체 객체를 반환합니다. 이는 실제 객체 저장소를 변경하지 않아 rebase나 filter-branch 없이 히스토리를 수정할 수 있게 합니다. Grafting 시나리오에서는 git replace --graft를 사용하여 커밋의 부모를 변경해 두 개의 독립적인 히스토리를 연결하거나, 오래된 히스토리를 별도 저장소로 분리하면서 논리적으로는 연결된 것처럼 보이게 할 수 있습니다. Replace는 로컬 환경의 뷰를 변경하는 것이므로 기본적으로 fetch/push 시 전파되지 않으며, 명시적으로 공유하려면 refs/replace/*를 refspec에 추가해야 합니다. 이는 각 개발자가 자신만의 히스토리 뷰를 가질 수 있게 하지만, 팀 전체에 적용하려면 별도의 동기화 전략이 필요합니다.

핵심 포인트
  • • Refs/replace를 통한 객체 참조 시점의 동적 대체
  • • 실제 객체 수정 없이 히스토리 뷰 변경
  • • Grafting으로 독립적인 히스토리 연결
  • • 기본적으로 전파되지 않는 로컬 전용 메커니즘
답변에 넣으면 좋은 키워드
git replace grafting refs/replace history rewriting object substitution
실무에서는

실수로 잘못된 이메일이나 메시지로 커밋한 경우, 전체 히스토리를 재작성하지 않고 로컬에서만 수정된 버전을 볼 수 있게 합니다.

Follow-up 질문

Replace를 사용하여 민감 정보가 포함된 커밋을 수정할 때, filter-branch나 BFG Repo-Cleaner와 비교한 장단점은 무엇인가요?

5 Git Notes
Medium

Q. Git notes는 커밋 객체 자체를 변경하지 않고 메타데이터를 추가할 수 있는 메커니즘입니다. Notes의 저장 구조와 refs/notes 네임스페이스의 동작 원리를 설명하고, 코드 리뷰 코멘트, CI/CD 빌드 결과, 배포 이력 같은 부가 정보를 커밋에 연결하는 실무 활용 사례를 제시해주세요. 또한 notes의 병합 전략과 여러 팀원 간 notes 공유 시 충돌 해결 방법을 설명해주세요.

Notes는 커밋 SHA-1을 키로 하는 별도의 tree 객체로 저장된다는 점을 생각해보세요.

A. 모범답안

Git notes는 refs/notes/commits(기본 네임스페이스)에 별도의 커밋 히스토리를 유지하며, 각 note는 원본 커밋의 SHA-1을 경로로 하는 blob 객체로 저장됩니다. Notes는 원본 커밋 객체를 변경하지 않으므로 SHA-1이 보존되며, git log --notes 옵션으로 함께 표시할 수 있습니다. 실무에서는 CI/CD 시스템이 빌드 결과나 테스트 커버리지를 notes로 추가하거나, 코드 리뷰 시스템이 승인 정보를 기록하거나, 배포 시스템이 어떤 커밋이 어느 환경에 배포되었는지 추적하는 데 활용됩니다. Notes 병합 시 기본 전략은 manual이지만, -s theirs, -s ours, -s union 같은 전략을 선택할 수 있으며, union은 충돌 시 양쪽 내용을 모두 연결합니다. Notes를 공유하려면 fetch/push 시 refs/notes/*를 refspec에 명시해야 하며, 자동화를 위해 remote.<name>.fetch 설정에 추가할 수 있습니다.

핵심 포인트
  • • Refs/notes 네임스페이스의 별도 히스토리 관리
  • • 원본 커밋 SHA-1 불변성 유지
  • • CI/CD 메타데이터와 배포 이력 추적 활용
  • • Union 병합 전략과 명시적 refspec 공유
답변에 넣으면 좋은 키워드
git notes refs/notes metadata merge strategy union merge refspec
실무에서는

CI 파이프라인에서 각 커밋의 빌드 번호, 테스트 결과, 배포 태그를 커밋에 연결하여 추적 가능성을 높이는 데 사용됩니다.

Follow-up 질문

Notes를 사용하여 각 커밋의 성능 벤치마크 결과를 저장하고, 성능 회귀를 자동으로 탐지하는 시스템을 구축한다면 어떻게 설계하시겠습니까?

6 Git Sparse Index
Hard

Q. Git 2.35에서 도입된 sparse index는 대규모 모노레포에서 sparse-checkout과 함께 사용될 때 성능을 획기적으로 개선합니다. Sparse index가 전통적인 full index와 어떻게 다른지, cone mode와의 관계, 그리고 index 엔트리 수를 줄이는 메커니즘을 설명해주세요. 또한 수백만 개의 파일이 있는 저장소에서 sparse index를 활성화했을 때 git status, git add, git commit 같은 명령의 성능 개선 효과와 제약사항을 설명해주세요.

Sparse index는 체크아웃하지 않은 디렉토리를 tree 객체로 대체하여 index 크기를 줄입니다.

A. 모범답안

Sparse index는 sparse-checkout으로 제외된 디렉토리를 개별 파일 엔트리 대신 단일 디렉토리 엔트리로 index에 저장하여, 수백만 파일 저장소에서 index 크기를 수천 개 엔트리로 축소합니다. Cone mode sparse-checkout과 함께 사용될 때 최적화되며, cone pattern은 디렉토리 단위 포함/제외를 명확히 하여 sparse index가 효율적으로 동작하게 합니다. Index 엔트리가 줄어들면 git status는 전체 working tree를 스캔하지 않고 포함된 경로만 확인하므로 O(n)에서 O(m)으로 개선되며(m은 포함된 파일 수), git add와 git commit도 유사한 성능 향상을 얻습니다. 그러나 sparse index는 cone mode가 아닌 경우 자동으로 비활성화되며, index를 확장해야 하는 작업(예: merge, rebase)에서는 일시적으로 full index로 전환될 수 있습니다. 또한 일부 Git 명령은 아직 sparse index를 완전히 지원하지 않아 fallback이 발생할 수 있습니다.

핵심 포인트
  • • 제외된 디렉토리를 단일 엔트리로 압축하여 index 크기 축소
  • • Cone mode sparse-checkout과의 시너지
  • • Git status/add/commit의 O(n)에서 O(m)으로 성능 개선
  • • 일부 명령에서 full index로 fallback 가능성
답변에 넣으면 좋은 키워드
sparse index cone mode sparse-checkout index optimization monorepo performance
실무에서는

Google이나 Microsoft 같은 거대 모노레포에서 개발자가 필요한 일부 디렉토리만 체크아웃하고 빠르게 작업할 수 있게 합니다.

Follow-up 질문

Sparse index를 사용하는 저장소에서 merge나 rebase 시 성능 저하를 최소화하려면 어떤 전략을 사용해야 하나요?

7 Git Mailmap
Easy

Q. .mailmap 파일을 사용하여 커밋 작성자와 커미터의 이름과 이메일을 정규화하는 방법을 설명해주세요. Mailmap의 문법과 우선순위 규칙, 그리고 git shortlog, git log, git blame 같은 명령에서 어떻게 적용되는지 설명하고, 인수합병이나 이메일 주소 변경이 잦은 조직에서 contributor 통계를 정확하게 유지하는 전략을 제시해주세요.

Mailmap은 표시 시점에만 적용되며 실제 커밋 객체를 변경하지 않습니다.

A. 모범답안

.mailmap 파일은 'Proper Name <[email protected]> <[email protected]>' 형식으로 작성되며, 커밋에 기록된 이메일을 올바른 이름과 이메일로 매핑합니다. 여러 매핑이 가능한 경우 파일 내에서 나중에 나오는 규칙이 우선 적용되며, 이름만 변경하거나 이메일만 변경하는 부분 매핑도 지원합니다. Git shortlog -sne 같은 명령은 mailmap을 자동으로 적용하여 contributor 목록을 정규화하고, git log --use-mailmap 옵션으로 히스토리 표시 시에도 적용할 수 있습니다. 조직에서는 .mailmap을 저장소에 커밋하여 모든 개발자가 동일한 매핑을 사용하도록 하고, 회사 이메일에서 개인 이메일로 변경하거나 인수합병으로 도메인이 바뀐 경우를 모두 포함하여 기여도 통계의 정확성을 유지합니다. Mailmap은 실제 커밋 객체를 변경하지 않으므로 안전하게 업데이트할 수 있습니다.

핵심 포인트
  • • 커밋 표시 시점에 이름/이메일 정규화
  • • 부분 매핑과 우선순위 규칙 지원
  • • Shortlog와 log 명령에서 자동 적용
  • • 실제 커밋 객체 불변성 유지
답변에 넣으면 좋은 키워드
mailmap author normalization contributor statistics email mapping
실무에서는

오픈소스 프로젝트에서 기여자가 개인 이메일과 회사 이메일을 혼용할 때 통합된 기여도 통계를 생성하는 데 사용됩니다.

Follow-up 질문

여러 자회사가 합쳐진 대기업에서 수천 명의 개발자 이메일을 관리하는 .mailmap을 효율적으로 유지보수하는 방법은 무엇인가요?

8 Git Submodule vs Subtree
Hard

Q. 대규모 프로젝트에서 외부 라이브러리나 공유 컴포넌트를 관리할 때 git submodule과 git subtree의 내부 동작 원리를 비교하고, 각각의 장단점을 설명해주세요. 특히 submodule의 gitlink 객체와 .gitmodules 파일의 역할, subtree의 merge 전략과 히스토리 보존 방식, 그리고 업데이트와 버전 관리 관점에서 어떤 상황에 어느 것을 선택해야 하는지 구체적인 기준을 제시해주세요.

Submodule은 외부 저장소를 참조하고, subtree는 외부 히스토리를 복사한다는 차이를 생각해보세요.

A. 모범답안

Git submodule은 .gitmodules 파일에 외부 저장소 URL과 경로를 정의하고, 메인 저장소의 tree 객체에 gitlink(mode 160000)로 특정 커밋 SHA-1을 저장하여 외부 저장소를 참조합니다. Clone 시 --recurse-submodules가 필요하고 업데이트는 명시적으로 git submodule update를 실행해야 하므로 워크플로우가 복잡하지만, 외부 저장소와의 명확한 경계와 독립적인 버전 관리가 가능합니다. Git subtree는 git subtree add로 외부 저장소의 전체 히스토리를 메인 저장소에 병합하며, 이후 git subtree pull/push로 양방향 동기화가 가능합니다. Subtree는 clone 시 추가 작업이 없고 모든 코드가 메인 저장소에 있어 단순하지만, 히스토리가 섞여 저장소 크기가 증가하고 외부 변경사항을 추적하기 어렵습니다. Submodule은 외부 의존성이 자주 변경되지 않고 독립적인 릴리즈 사이클을 가질 때 적합하며, subtree는 외부 코드를 fork하여 커스터마이징하거나 단일 저장소로 통합된 워크플로우를 원할 때 유용합니다.

핵심 포인트
  • • Submodule의 gitlink 참조 방식과 명시적 업데이트 필요성
  • • Subtree의 히스토리 병합과 양방향 동기화
  • • Submodule은 명확한 경계, subtree는 단순한 워크플로우
  • • 의존성 변경 빈도와 커스터마이징 필요성에 따른 선택
답변에 넣으면 좋은 키워드
submodule subtree gitlink gitmodules dependency management merge strategy
실무에서는

마이크로서비스 아키텍처에서 공통 라이브러리를 여러 서비스에서 사용할 때, 각 서비스 저장소에 포함시키는 방법을 결정하는 데 사용됩니다.

Follow-up 질문

Submodule을 사용하는 프로젝트에서 여러 submodule의 버전을 일괄 업데이트하고 테스트하는 자동화 전략을 어떻게 구현하시겠습니까?

9 Git Reachability Bitmap
Hard

Q. Git의 reachability bitmap은 대규모 저장소에서 객체 reachability 계산을 최적화합니다. Bitmap index의 구조와 생성 과정, 그리고 git fetch와 git clone 시 서버가 전송할 객체를 결정하는 과정에서 bitmap이 어떻게 사용되는지 설명해주세요. 또한 bitmap generation 시 선택되는 commit들의 기준(자주 참조되는 refs)과 bitmap의 메모리 효율성을 위한 EWAH 압축 알고리즘의 역할을 포함해서 답변해주세요.

Bitmap은 각 커밋에서 reachable한 모든 객체를 비트로 표현하여 빠른 집합 연산을 가능하게 합니다.

A. 모범답안

Reachability bitmap은 .git/objects/pack 디렉토리에 .bitmap 파일로 저장되며, 선택된 커밋들에 대해 해당 커밋에서 reachable한 모든 객체를 비트맵으로 표현합니다. Bitmap generation 시 자주 참조되는 refs(HEAD, 브랜치, 태그)에 가까운 커밋들을 우선 선택하고, 객체 reachability 계산이 비트 OR 연산으로 단순화되어 O(n) 그래프 탐색을 O(1) 비트 연산으로 대체합니다. Git fetch 시 클라이언트가 가진 커밋과 서버의 커밋을 bitmap으로 비교하여 전송할 객체 집합을 빠르게 계산하며, 이는 수백만 객체 저장소에서 negotiation 시간을 극적으로 단축시킵니다. EWAH(Enhanced Word-Aligned Hybrid) 압축은 연속된 0 또는 1 비트를 run-length encoding하여 메모리 사용량을 줄이며, 압축된 상태에서도 비트 연산이 가능하여 성능을 유지합니다. Bitmap은 git gc --write-bitmap-index로 생성되며, 서버 저장소에서 특히 유용하지만 자주 repack되는 환경에서는 유지보수 비용이 증가할 수 있습니다.

핵심 포인트
  • • 커밋별 reachable 객체를 비트맵으로 표현
  • • 비트 OR 연산으로 O(1) reachability 계산
  • • Fetch/clone 시 전송 객체 집합 빠른 결정
  • • EWAH 압축으로 메모리 효율성과 연산 성능 양립
답변에 넣으면 좋은 키워드
reachability bitmap EWAH compression object reachability fetch optimization bitmap index
실무에서는

GitHub이나 GitLab 같은 Git 호스팅 서비스에서 수백만 객체를 가진 저장소의 clone 요청을 빠르게 처리하는 데 사용됩니다.

Follow-up 질문

Bitmap index를 사용하는 서버 저장소에서 새로운 커밋이 계속 추가될 때 bitmap을 효율적으로 업데이트하는 전략은 무엇인가요?

10 Git Protocol v2
Medium

Q. Git protocol v2가 v1에 비해 개선한 점들을 설명하고, 특히 ls-refs와 fetch 명령의 capability negotiation 방식이 어떻게 변경되었는지 설명해주세요. 대규모 저장소에서 수천 개의 refs가 있을 때 v2가 제공하는 성능 이점과, ref filtering을 통해 클라이언트가 필요한 refs만 요청하는 메커니즘을 포함해서 답변하고, 서버와 클라이언트 모두 v2를 지원하는지 확인하고 활성화하는 방법을 설명해주세요.

Protocol v2는 클라이언트 주도 협상과 명령 기반 구조로 변경되었습니다.

A. 모범답안

Git protocol v2는 클라이언트가 원하는 기능을 명시적으로 요청하는 command-based 구조로 변경되어, v1의 서버 주도 방식에서 발생하던 불필요한 데이터 전송을 제거했습니다. Ls-refs 명령은 클라이언트가 필요한 refs만 필터링하여 요청할 수 있게 하며, 수천 개의 브랜치와 태그가 있는 저장소에서 초기 ref advertisement를 건너뛰어 네트워크 트래픽과 파싱 시간을 크게 줄입니다. Fetch 명령은 shallow clone, filter, deepen 같은 옵션을 더 유연하게 조합할 수 있고, server-option을 통해 확장 가능한 협상이 가능합니다. Protocol v2는 Git 2.18 이상에서 지원되며, 환경변수 GIT_PROTOCOL=version=2 또는 설정 protocol.version=2로 활성화할 수 있고, git ls-remote -v로 서버 지원 여부를 확인할 수 있습니다. V2는 특히 CI/CD 환경에서 shallow clone이나 partial clone을 사용할 때 초기 연결 시간을 단축시켜 파이프라인 성능을 개선합니다.

핵심 포인트
  • • 클라이언트 주도 command-based 구조로 변경
  • • Ls-refs를 통한 필요한 refs만 선택적 요청
  • • 초기 ref advertisement 제거로 네트워크 트래픽 감소
  • • Protocol.version=2 설정으로 활성화
답변에 넣으면 좋은 키워드
protocol v2 ls-refs capability negotiation ref filtering client-driven
실무에서는

수천 개의 feature 브랜치가 있는 모노레포에서 CI가 main 브랜치만 빠르게 fetch하여 빌드 시작 시간을 단축하는 데 사용됩니다.

Follow-up 질문

Protocol v2의 ref filtering을 활용하여 CI 파이프라인에서 특정 브랜치만 fetch하는 최적화 전략을 구체적으로 어떻게 구현하시겠습니까?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!