๐ ํ๋ก์ ํธ์์ ํ์ํ ๋ฒ์ ๊ด๋ฆฌ
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ค ๋ณด๋ฉด ํ์ , ๋ฐฐํฌ, ์ ์ง๋ณด์ ๊ณผ์ ์์ ๋ฒ์ ์ ๋ช ํํ๊ฒ ๊ตฌ๋ถํ๊ณ ์ง์ ํ๋ ์ผ์ด ๋งค์ฐ ์ค์ํ๋ค๋ ๊ฑธ ์ฒด๊ฐํ๊ฒ ๋ฉ๋๋ค. ๋ฒ์ ๊ด๋ฆฌ๊ฐ ์ ๋์ด ์์ด์ผ ๋ณ๊ฒฝ ์ฌํญ์ ์ถ์ ํ๊ธฐ ์ฝ๊ณ , ํธํ์ฑ ๋ฌธ์ ๋ฅผ ๋ฐฉ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
์ด๋ฒ ๊ธ์์๋ ์ค๋ฌด์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ฒ์ ๊ด๋ฆฌ ๋ฐฉ๋ฒ๊ณผ, ์ํฉ์ ๋ฐ๋ผ ์ด๋ค ์ ๋ต์ ์ ํํ๋ฉด ์ข์์ง ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
๐ ๋ฒ์ ๊ตฌ๋ถ ๋ฐฉ๋ฒ
ํฌ๊ฒ ๋๋์ด ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ(Semantic Versioning) ์ ๋ ์ง ๊ธฐ๋ฐ ๋ฒ์ ๊ด๋ฆฌ ๋ ๊ฐ์ง๊ฐ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค.
1๏ธโฃ ์๋ฏธ๋ก ์ ๋ฒ์ ๊ด๋ฆฌ (Semantic Versioning, SemVer)
๊ฐ์ฅ ๋ณดํธ์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ์์ด๋ฉฐ, ๋ฒ์ ๋ฒํธ๋ฅผ ์ฃผ.๋ถ.์ (MAJOR.MINOR.PATCH) ํํ๋ก ๋๋์ด ์๋ฏธ๋ฅผ ๋ถ์ฌํฉ๋๋ค.
ํญ๋ชฉ | ์ค๋ช | ์์ |
MAJOR (์ฃผ ๋ฒ์ ) | ํธํ๋์ง ์๋ API ๋ณ๊ฒฝ ๋ฐ์ ์ | 1.0.0 → 2.0.0 |
MINOR (๋ถ ๋ฒ์ ) | ํธํ๋๋ ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ ์ | 1.0.0 → 1.1.0 |
PATCH (์ ๋ฒ์ ) | ํธํ๋๋ ๋ฒ๊ทธ ์์ ์ | 1.0.0 → 1.0.1 |
โ ์ถ๊ฐ ์์
- Pre-release (์ ํ ๋ฆด๋ฆฌ์ค): ์์ง ์์ ๋์ง ์์ ๋ฒ ํ/์ํ ๋ฒ์ → 1.0.0-alpha, 1.0.0-beta.2
- Build metadata (๋น๋ ๋ฉํ๋ฐ์ดํฐ): ๋น๋ ์ ๋ณด๋ ์ปค๋ฐ ํด์ ๋ฑ → 1.0.0+20240510, 1.0.0+git.a1b2c3
๐ ์ฅ์
- ๋ฒ์ ๋ง ๋ณด๊ณ ๋ณ๊ฒฝ์ ์ค์๋์ ํธํ์ฑ์ ํ์ ๊ฐ๋ฅ
- ์๋ํ ๋๊ตฌ(CI/CD) ์ ํตํฉ์ด ์ฉ์ด
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ API ๋ฐฐํฌ์ ๋งค์ฐ ์ ํฉ
2๏ธโฃ ๋ ์ง ๊ธฐ๋ฐ ๋ฒ์ ๊ด๋ฆฌ (Date-based Versioning)
๋ฒ์ ์ ๋ฆด๋ฆฌ์ค ๋ ์ง๋ฅผ ์ง์ ํฌํจํ๋ ๋ฐฉ์์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก YYYY.MM.DD ๋๋ YYYY-MM-DD ํ์์ ์ฌ์ฉํฉ๋๋ค.
๐ ์ฅ์
- ๋ฆด๋ฆฌ์ค ์์ ์ด ์ง๊ด์ ์ผ๋ก ํ์๋จ
- ๊ด๋ฆฌ ๋ฐฉ์์ด ๋จ์ํด์ง
โ ๏ธ ๋จ์
- ๋ฒ์ ๋ง ๋ด์๋ ๊ธฐ๋ฅ ์ถ๊ฐ๋ ๋ฒ๊ทธ ์์ ์ฌ๋ถ ํ์ ์ด ์ด๋ ค์
- ์ฆ์ ๋ฆด๋ฆฌ์ค ์ ๋ฒ์ ์ซ์ ์ฆ๊ฐ ์๋๊ฐ ๋น ๋ฆ
โ๏ธ ๋ฒ์ ์ง์ ๋ฐฉ์
ํ๋ก์ ํธ์ ๊ท๋ชจ์ ํน์ฑ์ ๋ฐ๋ผ ๋ฒ์ ์ ์๋ ๋๋ ์๋์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๐ ์๋ ์ง์
- ๋ณ๊ฒฝ ์ฌํญ์ ์ง์ ํ๋จํด ์ฌ๋์ด ๋ฒ์ ์์
- ์๊ท๋ชจ ํ๋ก์ ํธ, ๋ด๋ถ ๋๊ตฌ์ ์ ํฉ
- ์ค์๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ๋ช ํํ ํ ๊ท์น์ด ํ์
๐ค ์๋ ์ง์
- Git ํ๊ทธ, ์ปค๋ฐ ๋ฉ์์ง, CI/CD ํ์ดํ๋ผ์ธ๊ณผ ์ฐ๋
- ํน์ ๊ท์น์ ๋ฐ๋ผ ๋ฒ์ ์๋ ์์ฑ ๋ฐ ๋ฐ์
์์ ๋๊ตฌ
๋๊ตฌ | ์ธ์ด/ํ๊ฒฝ | ์ค๋ช |
npm version | Node.js | package.json ์๋ ์ ๋ฐ์ดํธ + Git ํ๊ทธ ์์ฑ |
poetry version | Python | pyproject.toml ๋ฒ์ ๊ด๋ฆฌ |
Git flow | Git ์ ๋ต | ๋ธ๋์น ์ ๋ต๊ณผ ํจ๊ป ๋ฒ์ ๊ด๋ฆฌ ์ฒด๊ณํ |
๐งญ ์ด๋ค ๋ฒ์ ์ ๋ต์ ์ ํํด์ผ ํ ๊น?
ํ๋ก์ ํธ ์ ํ | ์ถ์ฒ ์ ๋ต |
๋ผ์ด๋ธ๋ฌ๋ฆฌ, SDK, API | โ SemVer(์๋ฏธ๋ก ์ ๋ฒ์ ) |
์ฌ์ฉ์ ์ฑ (์ฑ/์น ์๋น์ค) | โ SemVer ๋๋ ๐ ๋ ์ง ๊ธฐ๋ฐ |
๋ด๋ถ ํด, ์คํฌ๋ฆฝํธ | โ ๊ฐ๋จํ ์๋ ์ง์ ๋ OK |
๐ก ์ค์ ์์ ์ ์ฉํ ํ
- ๐งพ ํ ๋ด ๋ฒ์ ๊ด๋ฆฌ ๊ท์น์ ๋ช ํํ ๋ฌธ์ํํ์ธ์.
- ๐ ๋ฆด๋ฆฌ์ค ๋ ธํธ ์์ฑ์ ์ต๊ดํํ๋ฉด ์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ์ฝ๊ฒ ํ์ ํ ์ ์์ต๋๋ค.
- ๐ Git์ ํ๊ทธ ๊ธฐ๋ฅ์ ์ ๊ทน ํ์ฉํด ๋ฆด๋ฆฌ์ค ์ง์ ์ ๋ช ํํ ๊ธฐ๋กํ์ธ์.
- โ๏ธ CI/CD์ ์ฐ๋ํ ์๋ํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ ์์ด ์ผ๊ด๋ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
- โ ์ค์ํ ๋ฆด๋ฆฌ์ค์๋ ์ถฉ๋ถํ ํ ์คํธ์ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
ํ๋ก์ ํธ์ ๊ท๋ชจ, ํ์ ๋ฐฉ์, ๋ฐฐํฌ ์ฃผ๊ธฐ์ ๋ฐ๋ผ ์ต์ ์ ๋ฒ์ ๊ด๋ฆฌ ์ ๋ต์ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ํต์ฌ์, ์ผ๊ด์ฑ ์๊ฒ ์ ์งํ๊ณ ํ ์ ์ฒด๊ฐ ์ดํดํ๊ณ ๋ฐ๋ฅผ ์ ์๋ ๊ท์น์ ๊ฐ์ถ๋ ๊ฒ์ ๋๋ค.
'TIP' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ปดํจํฐ ๋จ์ถํค (0) | 2025.05.17 |
---|---|
์๋์ฐ 11 ํ๊ฒฝ์์ iOS์ macOS ์ฑ์ ํ ์คํธํ๊ธฐ (0) | 2025.05.13 |
๊นํ ๊ท์น - ์์ ๋ด์ฉ์ด ํ๊ฐ๋ฆด ๋ (0) | 2025.05.13 |
ํ๋ ฌ์ ๊ณฑ ๊ตฌํํ๊ธฐ (1) | 2025.04.17 |
๊ฒ์ํ๋ฉด ํฌ๊ธฐ ์ค์ (1) | 2025.04.07 |