한 번 빌드하고 정확히 그걸 배포하자
파운데이션 트랙의 '한 번 빌드, 여러 번 배포' 원칙이 아티팩트 파이프라인에서 그대로 적용돼. 실제로 배포하는 건 아티팩트야. 이 조건들을 꼭 만족해야 해:
- 재현 가능 — 새 머신에서 같은 소스코드로 비트 단위까지 똑같은 아티팩트를 만들어내야 해.
- 버전 관리 — 고유한 이름을 붙여야 해 (Git SHA, 시맨틱 버전, 타임스탬프 등).
- 불변성 — 한 번 게시하면 절대 덮어쓰면 안 돼.
- 검증 가능 — 체크섬이나 서명, 또는 둘 다 있어야 해.
아티팩트 저장 위치
- GitHub Releases — 사람이 직접 배포할 수 있는 바이너리 (CLI 도구, 설치 프로그램).
- GitHub Container Registry (ghcr.io) — Docker 이미지.
- npm / PyPI / crates.io — 언어별 패키지.
- S3 / R2 / GCS — 일반적인 블롭.
- 내부 아티팩트 저장소 — Artifactory, Nexus 등.
버전 관리
흔히 쓰는 두 가지 방식이 있어:
- SemVer + Git SHA — 사람이 직접 배포하는 릴리스는
v1.4.2+abc1234처럼 써. API 안정성을 약속할 땐 SemVer를, 추적성을 위해선 SHA를 써. - Date + SHA — 사용자에게 보이는 시맨틱이 없는 내부 빌드는
2026-04-30-abc1234처럼 써.