개발하다 보면 사용 중인 라이브러리의 내부 구조가 궁금할 때가 있습니다.
"이 기능은 어떻게 구현했을까?", "내부적으로 어떤 구조로 되어있을까?"
같은 궁금증이 생기면 GitHub에서 소스코드를 직접 확인하고 싶어지죠.
하지만 무작정 git clone을 하기 전에 리포지토리 용량을 미리 확인하면 좋습니다. 특히 대규모 프로젝트의 경우 수백 MB에서 GB 단위까지 될 수 있어서, 용량을 확인하고 적절한 방법을 선택하는 것이 효율적입니다.
시간 절약: 큰 리포지토리는 클론하는데 시간이 오래 걸립니다
저장 공간: 여러 라이브러리를 분석하다 보면 용량이 금방 쌓입니다
전략 선택: 용량에 따라 전체 클론 vs shallow clone을 결정할 수 있습니다
클론하기 전에 브라우저에서 바로 확인할 수 있습니다.
주소창에 다음 형식으로 입력:
https://api.github.com/repos/소유자명/리포지토리명실제 예시들:
https://api.github.com/repos/facebook/react
https://api.github.com/repos/mui/mui-x
https://api.github.com/repos/vercel/next.jsJSON 응답에서 "size" 항목을 찾으면 됩니다:
json
{
"name": "mui-x",
"size": 167863,
...
}라이브러리 이름을 복사했다면 터미널에서 빠르게 확인:
# 기본 방법
curl https://api.github.com/repos/mui/mui-x | grep '"size"'
# jq 사용 (더 깔끔함)
curl -s https://api.github.com/repos/mui/mui-x | jq '.size'
# GitHub CLI 사용
gh api repos/mui/mui-x --jq '.size'API에서 반환되는 size 값은 KB 단위입니다.
size 값 | 실제 용량 | 클론 시간 (예상) |
|---|---|---|
~10,000 | ~10 MB | 수 초 |
~50,000 | ~50 MB | 10-30초 |
~100,000 | ~100 MB | 30초-1분 |
~500,000 | ~500 MB | 2-5분 |
~1,000,000 | ~1 GB | 5-10분 |
MUI X 예시:
size: 167,863 KB
실제 용량: 약 164 MB
예상 시간: 1-2분 정도
굳이 클론하지 않고도 코드를 볼 수 있는 방법들:
리포지토리 페이지에서 . (점) 키를 누르면 웹 VSCode가 열립니다.
URL의 github.com을 github1s.com으로 변경:
https://github1s.com/mui/mui-xRaw 버튼으로 개별 파일만 다운로드 가능합니다.
자주 라이브러리 소스를 까본다면 이 설정을 추천:
# 전역 설정: 기본으로 shallow clone 사용
git config --global clone.defaultRemote origin
git config --global fetch.prune true
# 압축 레벨 조정 (저장 공간 절약)
git config --global core.compression 9참고로 GitHub의 제한 사항:
권장 리포지토리 크기: 1GB 이하
경고 기준: 5GB 초과
개별 파일 제한: 100MB (Git LFS 사용 시 예외)
대부분의 라이브러리는 이 제한 안에 있지만, 큰 프로젝트들(Chromium, Linux Kernel 등)은 예외입니다.
라이브러리 내부 구조를 공부하는 것은 실력 향상에 큰 도움이 됩니다. 하지만 매번 큰 리포지토리를 전부 클론하는 것은 비효율적일 수 있습니다.
기억할 점:
GitHub API로 용량 먼저 확인
용량에 따라 클론 전략 선택
shallow clone으로 시간과 공간 절약
GitHub.dev 같은 웹 도구도 활용