๐ CI/CD
- CI: Continuous Integration(์ง์์ ํตํฉ). ์ฝ๋ ๋ณ๊ฒฝ์ ์์ฃผ ํตํฉํ๊ณ ์๋์ผ๋ก ๋น๋ยทํ ์คํธํด ํตํฉ ์ค๋ฅ๋ฅผ ์ผ์ฐ ์ก๋ ๊ฐ๋ฐ ๋ฐฉ์.
- CD: Continuous Delivery/Deployment(์ง์์ ์ ๋ฌ/๋ฐฐํฌ). CI๋ฅผ ํต๊ณผํ ์ฝ๋๋ฅผ ์๋์ผ๋ก ๋ฆด๋ฆฌ์ค ๊ฐ๋ฅํ ์ํ๋ก ๋ง๋ค๊ฑฐ๋(Delivery), ์ด์ ํ๊ฒฝ์ ์๋ ๋ฐฐํฌ(Deployment)ํ๋ ๋ฐฉ์.
- Pipeline: ๋น๋โํ ์คํธโ๋ฐฐํฌ ๋ฑ ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ์ ํด์ง ์์๋๋ก ์๋ ์คํํ๋ ์๋ํ ํ๋ฆ.
- VCS: Version Control System(๋ฒ์ ๊ด๋ฆฌ ์์คํ ). ์์ค ์ฝ๋์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ๊ธฐ๋กยท๊ด๋ฆฌํ๋ ์์คํ . ๋ํ์ ์ผ๋ก Git.
- GitHub Actions: GitHub์ ๋ด์ฅ๋ CI/CD ํ๋ซํผ. ์ํฌํ๋ก(YAML)๋ฅผ ์์ฑํด ๋น๋ยทํ ์คํธยท๋ฐฐํฌ๋ฅผ ์๋ํํ๋ค.
- Runner: GitHub Actions ์ํฌํ๋ก์ ์์ (Job)์ ์ค์ ๋ก ์คํํ๋ ๋จธ์ . GitHub ํธ์คํ ํ๊ณผ self-hostedํ์ด ์๋ค.
- YAML: ๋ค์ฌ์ฐ๊ธฐ๋ก ๊ตฌ์กฐ๋ฅผ ํํํ๋, ์ฌ๋์ด ์ฝ๊ธฐ ์ฌ์ด ๋ฐ์ดํฐ ์ง๋ ฌํ ํฌ๋งท. ์ํฌํ๋กยท์ค์ ํ์ผ์ ๋ง์ด ์ฐ์ธ๋ค.
- Workflow (์ํฌํ๋ก): GitHub Actions์์ ์๋ ์์ ์ ์ ์ํ YAML ํ์ผ. ํธ๋ฆฌ๊ฑฐยท์ก(Job)ยท์คํ ์ผ๋ก ๊ตฌ์ฑํ๋ค(์: ci.yml, release.yml).
- Pull Request (PR): ๋ณ๊ฒฝ์ ๊ธฐ๋ณธ ๋ธ๋์น์ ํฉ์น๊ธฐ ์ ์ ๊ฒํ ยท๋ ผ์ยท์๋ ๊ฒ์ฌ(CI)๋ฅผ ๊ฑฐ์น๋ ๋ณํฉ ์์ฒญ ๋จ์.
- Git Tag (ํ๊ทธ): ํน์ ์ปค๋ฐ์ ๋ถ์ด๋ ๊ณ ์ ์ด๋ฆํ. ๋ฒ์ ๋ฆด๋ฆฌ์ค ํ์(v1.3.0)์ ์ฐ๋ฉฐ, ํธ์ํ๋ฉด release ์ํฌํ๋ก ํธ๋ฆฌ๊ฑฐ๋ก ํ์ฉํ๋ค.
- semver: Semantic Versioning. ๋ฒ์ ์
major.minor.patch๋ก ๋งค๊ฒจ ๋ณ๊ฒฝ ๊ท๋ชจ๋ฅผ ์ฝ์ํ๋ ๊ท์น. - GitHub Pages: ์ ์ฅ์์ ์ ์ ํ์ผ(HTML ๋ฑ)์ ๋ฌด๋ฃ๋ก ์น ํธ์คํ ํด ์ฃผ๋ ๊ธฐ๋ฅ. ๋ค์ด๋ก๋/๋ฌธ์ ํ์ด์ง์ ์ฌ์ฉ.
- GitHub Releases: ๋ฒ์ ํ๊ทธ์ ๋ง์ถฐ ๋น๋ ์ฐ์ถ๋ฌผ(zip ๋ฑ)์ ์ฒจ๋ถยท๋ฐฐํฌํ๋ ๊ธฐ๋ฅ.
/latest/download/๊ณ ์ ๋งํฌ๋ฅผ ์ ๊ณตํ๋ค. - ์ฌํ์ฑ (Reproducibility): ์ฌ๋ยทPCยทํ๊ฒฝ์ด ๋ฌ๋ผ๋ ๋์ผํ ๋น๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ ์ฑ์ง. toolchainยทWrapperยท์์กด์ฑ ๊ณ ์ ์ผ๋ก ํ๋ณดํ๋ค.
๐ ์๋ณธ
vault/๋จ์ด์ฅ/cicd.md