GitHub의 공개 저장소와 jsDelivr CDN을 연동하면 JSON 파일을 무료로 호스팅하고 전 세계에 빠르게 배포할 수 있습니다.
이 가이드는 초보자도 쉽게 따라 할 수 있도록 단계별 절차와 함께 제한 사항 및 운영 시 유의사항을 정리했습니다.
목차
- GitHub 저장소 생성
- JSON 파일 업로드
- jsDelivr CDN 주소 생성
- CDN 주소 사용 및 확인
- 중요 참고사항
- 참고자료
1단계: GitHub 저장소 생성
저장소 생성 절차
- GitHub 로그인
- 우측 상단 + 버튼 클릭
- New repository 선택
- 저장소 이름 입력
예시:
text my-json-data
- 저장소 공개 설정
text Public
jsDelivr은 공개 저장소만 지원합니다.
- Add a README file 체크
- Create repository 클릭
2단계: JSON 파일 업로드
생성된 저장소에서:
- Add file
- Upload files
- JSON 파일 업로드
- Commit changes 클릭
예시 구조:
text my-json-data/ ├── README.md └── data.json
3단계: jsDelivr CDN 주소 생성
기본 URL 형식
text https://cdn.jsdelivr.net/gh/사용자명/저장소명/파일경로
예시
| 항목 | 값 |
|---|---|
| 사용자명 | honggildong |
| 저장소명 | my-json-data |
| 파일명 | data.json |
생성 URL:
text https://cdn.jsdelivr.net/gh/honggildong/my-json-data/data.json
URL 구조 설명
text https://cdn.jsdelivr.net/gh/user/repo@version/file
| 항목 | 설명 |
|---|---|
| user | GitHub 사용자명 또는 조직명 |
| repo | 저장소명 |
| version | 브랜치, 태그, 커밋 해시 |
| file | 파일 경로 |
예시:
text https://cdn.jsdelivr.net/gh/honggildong/[email protected]/data.json
4단계: CDN 주소 사용 및 확인
웹 브라우저 확인
생성된 URL을 브라우저 주소창에 입력합니다.
text https://cdn.jsdelivr.net/gh/honggildong/my-json-data/data.json
JSON 내용이 표시되면 성공입니다.
JavaScript에서 사용
html
cURL 테스트
bash curl https://cdn.jsdelivr.net/gh/honggildong/my-json-data/data.json
💡 중요 참고사항
1. 캐싱 문제와 버전 관리
jsDelivr는 CDN 캐싱을 적극적으로 사용합니다.
일반 캐시 정책
| 방식 | 캐시 기간 |
|---|---|
| 브랜치 참조 | 약 12시간 |
| @latest | 최대 7일 |
따라서 파일을 수정해도 즉시 반영되지 않을 수 있습니다.
권장 방법: Git 태그 사용
릴리스 생성
- 저장소 이동
- Releases
- Draft a new release
- 버전 입력
예시:
text v1.0.0 v1.0.1 v1.1.0
- Publish release
버전 고정 URL 사용
text https://cdn.jsdelivr.net/gh/사용자명/저장소명@v1.0.0/data.json
태그 URL 캐시 정책
- 최대 1년 캐시
- S3에 영구 저장
프로덕션 서비스에서는 태그 URL 사용을 권장합니다.
2. GitHub 저장소 크기 제한
| 항목 | 제한 |
|---|---|
| 권장 저장소 크기 | 1GB 미만 |
| GitHub 경고 | 1GB 초과 |
| 단일 파일 제한 | 100MB |
| 비공식 최대 크기 | 약 5GB |
GitHub Packages 데이터 전송
Free 플랜 기준:
text 월 1GB
3. jsDelivr 대역폭 제한
장점
jsDelivr 자체
- 대역폭 제한 없음
- 무료 사용
- 글로벌 CDN
참고
GitHub Pages는 별도 제한 존재
text 월 100GB
4. jsDelivr 사용 제한
| 항목 | 제한 |
|---|---|
| 패키지 크기 | 150MB |
| 단일 파일 | 20MB |
| HTML 파일 | text/plain 제공 |
지원되지 않는 경우
text Packages larger than 150 MB Single files larger than 20 MB
5. 캐시 퍼지(Purge)
긴급하게 캐시를 갱신해야 하는 경우 사용합니다.
cURL 예시
bash curl https://purge.jsdelivr.net/gh/사용자명/저장소명@버전/파일경로
예시:
bash curl https://purge.jsdelivr.net/gh/honggildong/[email protected]/data.json
웹 인터페이스
jsDelivr 공식 Purge Tool 사용
text https://www.jsdelivr.com/tools/purge
참고자료
| 자료 | 설명 |
|---|---|
| jsDelivr 공식 홈페이지 | CDN 서비스 |
| jsDelivr GitHub 저장소 | 소스 코드 |
| jsDelivr Purge Tool | 캐시 제거 |
| GitHub 저장소 제한 문서 | 저장소 용량 정책 |
| GitHub Billing Docs | 데이터 전송 정책 |
| jsDelivr GitHub Delivery Docs | URL 구조 및 캐시 정책 |
✅ 운영 체크리스트
- GitHub 공개 저장소 생성
- JSON 파일 업로드
- jsDelivr URL 생성
- 브라우저 테스트 완료
- JavaScript fetch 테스트 완료
- Git Release 태그 생성
- 버전 URL 적용
- 캐시 정책 확인
- 데이터 전송량 모니터링
⚠️ 주의사항
본 방법은 다음 용도에 적합합니다.
- 개인 프로젝트
- 개발 및 테스트
- 소규모 서비스
- 설정 파일(JSON) 배포
- 정적 데이터 제공
다음 환경에서는 별도 CDN 또는 Object Storage 사용을 권장합니다.
- 대규모 상용 서비스
- 금융 시스템
- 미션 크리티컬 서비스
- 실시간 대용량 데이터 서비스
GitHub 저장소를 단순 파일 저장소로 과도하게 사용하는 경우 GitHub 이용약관에 저촉될 수 있으므로 주의해야 합니다.
결론
GitHub + jsDelivr 조합은 무료이면서도 매우 강력한 정적 JSON 배포 방법입니다.
특히:
- API 설정 파일
- LLM 프롬프트 데이터
- 주식/암호화폐 메타데이터
- 버전 관리가 필요한 정적 데이터
배포에 매우 적합하며, Git 태그 기반 버전 관리를 함께 적용하면 안정적인 프로덕션 운영도 가능합니다.