Microsoft 내부에서 1JS라고 부르는 엄청나게 큰 자바스크립트 모노 레포가 있다고 합니다. 이 모노 레포에는 2,500개의 패키지가 있고 코드 라인도 2,000만 라인이 넘어서면서 최근의 클론은 178GB나 되었습니다.


용량이 점점 커지면서 생산성에 문제가 되었기 때문에 너무 큰 파일을 올리거나 하는 등의 문제를 막기 위해서 여러 가지 방법을 시도해서 저장소가 커지는 속도는 느려졌지만 계속 커지고 있었다고 합니다. 그러던 중 Microsoft에서 가장 큰 모노레포인 Office보다도 커지가 뭔가 잘못되었다는 생각이 들었습니다.


내부에 Git에 기여하던 사람도 있어서 문제를 자세히 찾아본 결과 git에서 패킹할 때 파일명의 마지막 16자만 검사하기 로직으로 인해서 CHANGELOG.md 등 어디나 있을 만한 파일의 diff를 검사하면서 사실상 다른 파일과의 diff를 엄청나게 많이 만들고 있다는 것을 발견하고 git windows에 이를 수정해는 패치를 올리게 됩니다.


이 수정사항을 적용한 뒤에 git repack을 하자 178GB가 5GB로 줄어들었다고 합니다.


https://www.jonathancreamer.com/how-we-shrunk-our-git-repo-size-by-94-percent/

How we shrunk our Javascript monorepo git size by 94%

Jonathan Creamer

How we shrunk our Javascript monorepo git size by 94%

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2024년 11월 10일 오전 4:26

 • 

저장 16조회 2,790

댓글 0

    함께 읽은 게시물

    개발자 교양 팟캐스트

    A

    ... 더 보기

    [DZone] 2024년 클라우드 보안 환경 이해

    ... 더 보기

    Understanding the 2024 Cloud Security Landscape - DZone

    dzone.com

    Understanding the 2024 Cloud Security Landscape - DZone

    서버엔지니어의 시대적 고민

    ... 더 보기


    토요일에 회사에서

    

    ... 더 보기

    Next.js 프로젝트를 AWS EKS에 배포하며 배운 것들

    ... 더 보기

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

    product.kyobobook.co.kr

    쿠버네티스를 활용한 클라우드 네이티브 데브옵스 | 존 어런들 - 교보문고

     • 

    저장 5 • 조회 960