Semantic versioning 2.0.0
์ ์์ ๋ฒ์ 2.0.0-ko2
Ref: https://semver.org
#
์์ฝ๋ฒ์ ์ ์ฃผ.๋ถ.์ ์ซ์๋ก ํ๊ณ :
- ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋์ง ์๊ฒ API๊ฐ ๋ฐ๋๋ฉด "์ฃผ(ไธป) ๋ฒ์ "์ ์ฌ๋ฆฌ๊ณ ,
- ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ฉด์ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋๋ "๋ถ(้จ) ๋ฒ์ "์ ์ฌ๋ฆฌ๊ณ ,
- ๊ธฐ์กด ๋ฒ์ ๊ณผ ํธํ๋๋ฉด์ ๋ฒ๊ทธ๋ฅผ ์์ ํ ๊ฒ์ด๋ผ๋ฉด "์(ไฟฎ) ๋ฒ์ "์ ์ฌ๋ฆฐ๋ค.
์ฃผ.๋ถ.์ ํ์์ ์ ์๋ฐฐํฌ ์ ๋ฒ์ ์ด๋ ๋น๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ํ ๋ผ๋ฒจ์ ๋ง๋ถ์ด๋ ๋ฐฉ๋ฒ๋ ์๋ค.
#
๋จธ๋ฆฌ๋ง์ํํธ์จ์ด ๊ด๋ฆฌ์ ์ธ๊ณ์๋ "์์กด์ฑ ์ง์ฅ"์ด๋ผ ๋ถ๋ฆฌ๋ ์ฑ๊ฐ์ ๋ฌธ์ ๊ฐ ์๋ค. ์์คํ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก, ๊ทธ๋ฆฌ๊ณ ๋ ๋ง์ ํจํค์ง๋ฅผ ๊ฐ์ ธ๋ค ์ธ์๋ก, ์ธ์ ๊ฐ, ์ด ์ ๋ง์ ๋ช์ ๋น ์ง ์์ ์ ๋ฐ๊ฒฌํ๊ธฐ ์ฝ๋ค.
์์กด์ฑ์ด ๋์ ์์คํ ์์๋, ์ ํจํค์ง ๋ฒ์ ์ ๋ฐฐํฌํ๋ ์ผ์ด ๊ธ๋ฐฉ ๋์ฐํด์ง๊ณค ํ๋ค. ์์กด์ฑ ๋ช ์ธ๋ฅผ ๋๋ฌด ์๊ฒฉํ๊ฒ ๊ด๋ฆฌํ๋ฉด, ๋ฒ์ ์ ๊ฐํ๊ฒ ๋ ์ํ์ด ์๋ค(์์กดํ๋ ๋ชจ๋ ํจํค์ง์ ์ ๋ฒ์ ์ ๋ฐฐํฌํ์ง ์๊ณ ๋ ์ ๊ทธ๋ ์ด๋ํ ์ ์๊ฒ ๋๋ค). ์์กด์ฑ์ ๋๋ฌด ๋์จํ๊ฒ ๊ด๋ฆฌํ๋ฉด, ๋ฒ์ ์ด ์์ผ์ ๊ดด๋กญ๊ฒ ๋ ๊ฒ์ด๋ค(์ง๋์น๊ฒ ๋์ค ๋ฒ์ ๊น์ง ํธํ๋ ๊ฑฐ๋ผ ๊ฐ์ ํ ๊ฒฝ์ฐ). ๋ฒ์ ์ ๊ฐํ๊ฑฐ๋ ์์ผ์ ์ฝ๊ณ ์์ ํ๊ฒ ํ๋ก์ ํธ๋ฅผ ๊ณ์ ์งํํ ์ ์๋ค๋ฉด ์์กด์ฑ ์ง์ฅ์ ๋น ์ง ๊ฒ์ด๋ค.
์ด ๋ฌธ์ ์ ํด๊ฒฐ์ฑ ์ผ๋ก, ๋ฒ์ ๋ฒํธ๋ฅผ ์ด๋ป๊ฒ ์ ํ๊ณ ์ฌ๋ ค์ผ ํ๋์ง๋ฅผ ๋ช ์ํ๋ ๊ท์น๊ณผ ์๊ตฌ์ฌํญ์ ์ ์ํ๋ค. ์ด ๊ท์น๋ค์ ๊ธฐ์กด ์คํ ์์ค/๋น๊ณต๊ฐ ์์ค ์ํํธ์จ์ด์ ๋๋ฆฌ ํ์ฉ๋๋ ๊ท์น์ ๋ฐํ์ผ๋ก ํ์ผ๋, ๋ฐ๋์ ๋ฐ๋ฅด๊ณ ์ ์ ์ฝ์ ๋ฐ์ง๋ ์์๋ค. ์ด ์์คํ ์ด ๋์ํ๋ ค๋ฉด, ๋จผ์ ๊ณต๊ฐ(public) API๋ฅผ ์ ์ธํด์ผ ํ๋ค. ๋ฌธ์์ ์์ค ์ฝ๋ ์์ฒด๋ก ๋๋ฌ๋ผ ์ ์๋ค. ์ด๋ค ๋ฐฉ์์ด๋ API๊ฐ ๋ช ํํด์ผ ํ๋ค. ํ๋ฒ ๊ณต๊ฐ API๋ฅผ ์ ์ํ๊ณ ๋๋ฉด, ๋ฒ์ ๋ฒํธ๋ฅผ ์ฌ๋ฆฌ๋ ๋ฐฉ์์ ํตํด API๊ฐ ์ด๋ป๊ฒ ๋ฐ๋๋์ง ํํํ๋ค. ๋ฒ์ ์ X.Y.Z (์ฃผ.๋ถ.์) ํ์์ผ๋ก ์ ํ๋ค. API์ ์ํฅ์ด ์๋ ๋ฒ๊ทธ ์์ ์ ์(ไฟฎ)๋ฒ์ ์ ์ฌ๋ฆฌ๊ณ , API๊ฐ ํธํ๋๋ฉด์ ๋ฐ๊พธ๊ฑฐ๋ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ์๋ ๋ถ(้จ)๋ฒ์ ์ ์ฌ๋ฆฌ๊ณ , API๊ฐ ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ด๋ผ๋ฉด ์ฃผ(ไธป)๋ฒ์ ์ ์ฌ๋ฆฐ๋ค.
์ด ์ฒด๊ณ๋ฅผ "์ ์์ ๋ฒ์ "์ด๋ผ๊ณ ๋ถ๋ฅด๊ณ ์ ํ๋ค. ์ด ์ฒด๊ณ๋ฅผ ๋ฐ๋ฅด๋ฉด, ๋ฒ์ ๋ฒํธ์ ๊ทธ ๋ฒํธ๋ฅผ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ์ ํตํด ํน์ ๋ฒ์ ์์ ๋ค์ ๋ฒ์ ์ผ๋ก ๋์ด๊ฐ๋ฉด์ ์ฝ๋๊ฐ ์ด๋ป๊ฒ ๋ฐ๋๋์ง๋ฅผ ๋๋ฌ๋ธ๋ค.
#
์ ์์ ๋ฒ์ ๋ช ์ธ (SemVer)์ดํ "๋ฐ๋์(MUST, REQUIRED, SHALL) ~ํ๋ค", "์ ๋ ~ํด์๋ ์ ๋๋ค(MUST NOT, SHALL NOT)", "๋ ์ ์์ผ๋ฉด(SHOULD, RECOMMENDED) ~ํ๋ค", "~ํ์ง ์๋ ๊ฒ ์ข๋ค(SHOULD NOT)", "ํ ์ ์๋ค(MAY, OPTIONAL)"์ ํํ์ RFC 2119์ ๊ธฐ์ ํ ๋๋ก ํด์ํ๋ค.
์ ์์ ๋ฒ์ ์ ์ฐ๋ ์ํํธ์จ์ด๋ ๋ฐ๋์ ๊ณต๊ฐ API๋ฅผ ์ ์ธํ๋ค. ์ด API๋ ์ฝ๋ ์์ฒด๋ก ์ ์ธํ๊ฑฐ๋ ๋ฌธ์๋ก ์๊ฒฉํ ๋ช ์ํด์ผ ํ๋ค. ์ด๋ค ๋ฐฉ์์ผ๋ก๋ , ์ ํํ๊ณ ์ดํดํ๊ธฐ ์ฌ์์ผ ํ๋ค.
๋ณดํต ๋ฒ์ ๋ฒํธ๋ ๋ฐ๋์ X.Y.Z์ ํํ๋ก ํ๊ณ , X, Y, Z๋ ๊ฐ๊ฐ ์์ฐ์(์์ด ์๋ ์ ์)์ด๊ณ , ์ ๋๋ก 0์ด ์์ ๋ถ์ด์๋ ์ ๋๋ค. X๋ ์ฃผ(ไธป)๋ฒ์ ๋ฒํธ์ด๊ณ , Y๋ ๋ถ(้จ)๋ฒ์ ๋ฒํธ์ด๋ฉฐ, Z๋ ์(ไฟฎ)๋ฒ์ ๋ฒํธ์ด๋ค. ๊ฐ๊ฐ์ ๋ฐ๋์ ์ฆ๊ฐํ๋ ์์ฌ์ผ ํ๋ค. ์: 1.9.0 -> 1.10.0 -> 1.11.0.
ํน์ ๋ฒ์ ์ผ๋ก ํจํค์ง๋ฅผ ๋ฐฐํฌํ๊ณ ๋๋ฉด, ๊ทธ ๋ฒ์ ์ ๋ด์ฉ์ ์ ๋ ๋ณ๊ฒฝํ์ง ๋ง์์ผ ํ๋ค. ๋ณ๊ฒฝ๋ถ์ด ์๋ค๋ฉด ๋ฐ๋์ ์๋ก์ด ๋ฒ์ ์ผ๋ก ๋ฐฐํฌํ๋๋ก ํ๋ค.
์ฃผ๋ฒ์ 0(0.y.z)์ ์ด๊ธฐ ๊ฐ๋ฐ์ ์ํด์ ์ด๋ค. ์๋ฌด ๋๋ ๋ง์๋๋ก ๋ฐ๊ฟ ์ ์๋ค. ์ด ๊ณต๊ฐ API๋ ์์ ํ์ผ๋ก ๋ณด์ง ์๋ ๊ฒ ์ข๋ค.
1.0.0 ๋ฒ์ ์ ๊ณต๊ฐ API๋ฅผ ์ ์ํ๋ค. ์ดํ์ ๋ฒ์ ๋ฒํธ๋ ์ด๋ ๋ฐฐํฌํ ๊ณต๊ฐ API์์ ์ด๋ป๊ฒ ๋ฐ๋๋์ง์ ๋ฐ๋ผ ์ฌ๋ฆฐ๋ค.
์๋ฒ์ Z (x.y.Z
|
x > 0)๋ ๋ฐ๋์ ๊ทธ์ ๋ฒ์ API์ ํธํ๋๋ ๋ฒ๊ทธ ์์ ์ ๊ฒฝ์ฐ์๋ง ์ฌ๋ฆฐ๋ค. ๋ฒ๊ทธ ์์ ์ ์๋ชป๋ ๋ด๋ถ ๊ธฐ๋ฅ์ ๊ณ ์น๋ ๊ฒ์ด๋ผ ์ ์ํ๋ค.๊ณต๊ฐ API์ ๊ธฐ์กด๊ณผ ํธํ๋๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋๋ ๋ฐ๋์ ๋ถ๋ฒ์ Y(x.Y.z
|
x > 0)๋ฅผ ์ฌ๋ฆฐ๋ค. ๊ณต๊ฐ API์ ์ผ๋ถ๋ฅผ ์์ผ๋ก ์ ๊ฑฐํ ๊ฒ(deprecate)์ผ๋ก ํ์ํ ๊ฒฝ์ฐ์๋ ๋ฐ๋์ ์ฌ๋ฆฌ๋๋ก ํ๋ค. ๋ด๋ถ ๋น๊ณต๊ฐ ์ฝ๋์ ์๋ก์ด ๊ธฐ๋ฅ์ด ๋ํญ ์ถ๊ฐ๋๊ฑฐ๋ ๊ฐ์ ์ฌํญ์ด ์์ ๋๋ ์ฌ๋ฆด ์ ์๋ค. ๋ถ๋ฒ์ ์ ์ฌ๋ฆด ๋ ์๋ฒ์ ์ ์ฌ๋ฆด ๋๋งํผ์ ๋ณํ๋ฅผ ํฌํจํ ์๋ ์๋ค. ๋ถ๋ฒ์ ์ด ์ฌ๋ผ๊ฐ๋ฉด ์๋ฒ์ ์ ๋ฐ๋์ 0์์ ๋ค์ ์์ํ๋ค.๊ณต๊ฐ API์ ๊ธฐ์กด๊ณผ ํธํ๋์ง ์๋ ๋ณํ๊ฐ ์์ ๋๋ ๋ฐ๋์ ์ฃผ๋ฒ์ X(X.y.z
|
X > 0)๋ฅผ ์ฌ๋ฆฐ๋ค. ๋ถ๋ฒ์ ์ด๋ ์๋ฒ์ ๊ธ ๋ณํ๋ฅผ ํฌํจํ ์ ์๋ค. ์ฃผ๋ฒ์ ๋ฒํธ๋ฅผ ์ฌ๋ฆด ๋๋ ๋ฐ๋์ ๋ถ๋ฒ์ ๊ณผ ์๋ฒ์ ์ 0์ผ๋ก ์ด๊ธฐํ ํ๋ค.์๋ฒ์ ๋ฐ๋ก ๋ค์ ๋ถ์ํ(-)๋ฅผ ๋ถ์ด๊ณ ๋ง์นจํ(.)๋ก ๊ตฌ๋ถ๋ ์๋ณ์๋ฅผ ๋ํด์ ์ ์ ๋ฐฐํฌ๋ฅผ ์๋ (pre-release) ๋ฒ์ ์ ํ๊ธฐํ ์ ์๋ค. ์๋ณ์๋ ๋ฐ๋์ ์์คํค(ASCII) ๋ฌธ์, ์ซ์, ๋ถ์ํ๋ก๋ง ๊ตฌ์ฑํ๋ค[0-9A-Za-z-]. ์๋ณ์๋ ๋ฐ๋์ ํ ๊ธ์ ์ด์์ผ๋ก ํ๋ค. ์ซ์ ์๋ณ์์ ๊ฒฝ์ฐ ์ ๋ ์์ 0์ ๋ถ์ธ ์ซ์๋ก ํ๊ธฐํ์ง ์๋๋ค. ์ ์๋ฐฐํฌ ์ ๋ฒ์ ์ ๊ด๋ จํ ๋ณดํต ๋ฒ์ ๋ณด๋ค ์ฐ์ ์์๊ฐ ๋ฎ๋ค. ์ ์๋ฐฐํฌ ์ ๋ฒ์ ์ ์์ง ๋ถ์์ ํ๋ฉฐ ์ฐ๊ด๋ ์ผ๋ฐ ๋ฒ์ ์ ๋ํด ํธํ์ฑ ์๊ตฌ์ฌํญ์ด ์ถฉ์กฑ๋์ง ์์ ์๋ ์๋ค. ์: 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0-0.3.7, 1.0.0-x.7.z.92.
๋น๋ ๋ฉํ๋ฐ์ดํฐ๋ ์๋ฒ์ ์ด๋ ์ ์๋ฐฐํฌ ์ ์๋ณ์ ๋ค์ ๋ํ๊ธฐ(+) ๊ธฐํธ๋ฅผ ๋ถ์ธ ๋ค์ ๋ง์นจํ๋ก ๊ตฌ๋ถ๋ ์๋ณ์๋ฅผ ๋ง๋ถ์ฌ์ ํํํ ์ ์๋ค. ์๋ณ์๋ ๋ฐ๋์ ์์คํค ๋ฌธ์์ ์ซ์์ ๋ถ์ํ๋ก๋ง ๊ตฌ์ฑํ๋ค [0-9A-Za-z-]. ์๋ณ์๋ ๋ฐ๋์ ํ ๊ธ์ ์ด์์ผ๋ก ํ๋ค. ๋น๋ ๋ฉํ๋ฐ์ดํฐ๋ ๋ฒ์ ๊ฐ์ ์ฐ์ ์์๋ฅผ ํ๋จํ๊ณ ์ ํ ๋ ๋ฐ๋์ ๋ฌด์ํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก, ๋น๋ ๋ฉํ๋ฐ์ดํฐ๋ง ๋ค๋ฅธ ๋ ๋ฒ์ ์ ์ฐ์ ์์๋ ๊ฐ๋ค. ์: 1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.
์ฐ์ ์์๋ ๋ฒ์ ์ ์์๋ฅผ ์ ๋ ฌํ ๋ ์๋ก๋ฅผ ์ด๋ป๊ฒ ๋น๊ตํ ์ง๋ฅผ ๋ํ๋ธ๋ค. ์ฐ์ ์์๋ ๋ฐ๋์ ์ฃผ, ๋ถ, ์ ๋ฒ์ , ๊ทธ๋ฆฌ๊ณ ์ ์๋ฐฐํฌ ์ ๋ฒ์ ์ ์๋ณ์๋ฅผ ๋๋์ด ๊ณ์ฐํ๋๋ก ํ๋ค (๋น๋ ๋ฉํ๋ฐ์ดํฐ๋ ์ฐ์ ์์์ ์ํฅ์ ์ฃผ์ง ์๋๋ค). ์ฐ์ ์์๋ ๋ค์์ ์์๋ก ์ฐจ๋ก๋ก ๋น๊ตํ๋ฉด์, ์ฐจ์ด๊ฐ ๋๋ ๋ถ๋ถ์ด ๋ํ๋๋ฉด ๊ฒฐ์ ๋๋ค: ์ฃผ, ๋ถ, ์๋ ์ซ์๋ก ๋น๊ตํ๋ค. ์: 1.0.0 < 2.0.0 < 2.1.0 < 2.1.1. ์ฃผ, ๋ถ, ์๋ฒ์ ์ด ๊ฐ์ ๊ฒฝ์ฐ, ์ ์๋ฐฐํฌ ์ ๋ฒ์ ์ด ํ๊ธฐ๋ ๊ฒฝ์ฐ์ ์ฐ์ ์์๊ฐ ๋ ๋ฎ๋ค. ์: 1.0.0-alpha < 1.0.0. ์ฃผ, ๋ถ, ์๋ฒ์ ์ด ๊ฐ์ ๋ ๋ฐฐํฌ ์ ๋ฒ์ ๊ฐ์ ์ฐ์ ์์๋ ๋ฐ๋์ ๋ง์นจํ๋ก ๊ตฌ๋ถ๋ ์๋ณ์๋ฅผ ๊ฐ๊ฐ ์ฐจ๋ก๋ก ๋น๊ตํ๋ฉด์ ์ฐจ์ด์ ์ ์ฐพ๋๋ค: ์ซ์๋ก๋ง ๊ตฌ์ฑ๋ ์๋ณ์๋ ์์ ํฌ๊ธฐ๋ก ๋น๊ตํ๊ณ ์ํ๋ฒณ์ด๋ ๋ถ์ํ๊ฐ ํฌํจ๋ ๊ฒฝ์ฐ์๋ ์์คํค ๋ฌธ์์ด ์ ๋ ฌ์ ํ๋๋ก ํ๋ค. ์ซ์๋ก๋ง ๊ตฌ์ฑ๋ ์๋ณ์๋ ์ด๋ค ๊ฒฝ์ฐ์๋ ๋ฌธ์์ ๋ถ์ํ๊ฐ ์๋ ์๋ณ์๋ณด๋ค ๋ฎ์ ์ฐ์ ์์๋ก ์ฌ๊ธด๋ค. ์์ ์๋ณ์๊ฐ ๋ชจ๋ ๊ฐ์ ๋ฐฐํฌ ์ ๋ฒ์ ์ ๊ฒฝ์ฐ์๋ ํ๋ ์๊ฐ ๋ง์ ์ชฝ์ด ๋ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง๋ค. ์: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0.
#
์ ํจํ ์ ์์ ๋ฒ์ ์ BNF(Backus-Naur Form) ๋ฌธ๋ฒ#
์ ์์ ๋ฒ์ ์ ์จ์ผ ํ๋ ์ด์์ ์์ ๋ฒ์ ์ ํ์ ์ ์ธ ์์ด๋์ด๊ฐ ์๋๋ค. ์ฌ์ค, ์ด๋ฏธ ์ด์ ๋น์ทํ ๋ฐฉ์์ผ๋ก ๋ฒ์ ์ ์ ํด์ ์ฐ๊ณ ์์์ ์ ์๋ค. ๋ฌธ์ ๋ ์ด์ "๋น์ทํ" ๋ฐฉ์์ผ๋ก๋ ์ถฉ๋ถ์น ์๋ค๋ ์ ์ด๋ค. ์ด๋ ํ ํํ๋ก ์ ์ ๋ช ์ธ๋ฅผ ์ ํด์ ๋ฐ๋ฅด์ง ์๋๋ค๋ฉด, ๋ฒ์ ๋ฒํธ๋ ์์กด์ฑ ๊ด๋ฆฌ์์ ๋ฌด์๋ฏธํ๋ค. ์ด์์ ์์ด๋์ด์ ์ด๋ฆ์ ์ ํ๊ณ ๋ช ์์ ์ธ ์ ์๋ฅผ ๋ด๋ฆผ์ผ๋ก์จ, ์ํํธ์จ์ด ์ฌ์ฉ์์๊ฒ ์ ์์์ ์๋๋ฅผ ์ ๋ฌํ๊ธฐ ์ฌ์์ง๋ค. ์๋๊ฐ ๋ช ํํด์ผ๋ง, (๋๋ฌด ์ง๋์น์ง๋ ์์) ์ตํต์ฑ ์๋ ์์กด์ฑ ๋ช ์ธ๋ฅผ ๋ง๋ค ์ ์๋ค.
์ ์์ ๋ฒ์ ์ผ๋ก ์ด๋ป๊ฒ ์์กด์ฑ ์ง์ฅ์ ๋ฒ์ด๋ ์ ์๋์ง ๊ฐ๋จํ ์๋ฅผ ๋ค์ด๋ณด์. "Firetruck"์ด๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋ค๊ณ ํ์. ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์์ ๋ฒ์ ์ด ๋ถ์ "Ladder"๋ผ๋ ํจํค์ง์ ์์กดํ๋ค. Firetruck์ ๋ง๋ค์์ ๋, Ladder๋ ๋ฒ์ 3.1.0์ด์๋ค. Firetruck์ด 3.1.0์ ์ฒ์์ผ๋ก ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, Ladder์ ์์กด์ฑ์ 3.1.0 ์ด์, 4.0.0 ๋ฏธ๋ง์ผ๋ก ์ง์ ํ ์ ์๋ค. ์ด์ , Ladder์ 3.1.1 ๋ฒ์ ๊ณผ 3.2.0 ๋ฒ์ ์ด ๊ณต๊ฐ๋๋ค๋ฉด, ํจํค์ง ๊ด๋ฆฌ ์์คํ ์ ๊ทธ ๋ฒ์ ์ ๋ฃ์ ์ ์๊ณ ๊ธฐ์กด ์ํํธ์จ์ด์ ํธํ๋ ๊ฒ์ด๋ผ๊ณ ์ ์ ์๋ค.
๋ฌผ๋ก , ์ฑ ์๊ฐ ์๋ ๊ฐ๋ฐ์๋ก์ ํจํค์ง๊ฐ ์ ๊ทธ๋ ์ด๋๋ ๋ถ๋ถ์ด ํ๋ณด๋ ๋๋ก ์ ๋์ํ๋์ง ๊ฒ์ฆํ๊ณ ์ ํ ๊ฒ์ด๋ค. ์ค์์ ์ง์ ๋ถํ๋ค; ์กฐ์ฌํด์ ๊ด๋ฆฌํ๋ ๊ฒ ์ธ์๋ ๋ฌ๋ฆฌ ๋๋ฆฌ๊ฐ ์๋ค. ์ ์์ ๋ฒ์ ์ ์ฌ์ฉํจ์ผ๋ก์จ ์์กดํ๋ ํจํค์ง๋ค์ ์ ๋ฒ์ ๋ค๊ณผ ์จ๋ฆํ์ง ์๊ณ , ์๊ฐ ๋ญ๋น์ ์๋ ์์ด ํจํค์ง๋ฅผ ๊ณต๊ฐํ๊ณ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค.
๋ง์ฝ ์ด์์ ๋ด์ฉ์ด ๊ทธ๋ด์ธํ๋ค๋ฉด, ์ ์์ ๋ฒ์ ์ ์ฐ๊ธฐ ์์ํ๊ธฐ ์ํด์ ํ ์ผ์, ๊ทธ๋ ๊ฒ ํ๊ณ ์ ๋ง์๋จน๊ณ ๊ท์น์ ๋ฐ๋ฅด๊ธฐ๋ง ํ๋ฉด ๋๋ค. ์ฌ๋ฌ๋ถ์ README ํ์ผ์ ์ด ์น์ฌ์ดํธ์ ๋งํฌ๋ฅผ ์ถ๊ฐํด์ ๋ค๋ฅธ ์ฌ๋๋ค๋ ์ ์ฉํ๊ฒ ์ธ ์ ์๊ฒ ํ์.
#
FAQ#
์ด๊ธฐ ๊ฐ๋ฐ ๋จ๊ณ์ 0.y.z ๋ฒ์ ๊ด๋ฆฌ๋ ์ด๋ป๊ฒ ํ ๊น?๊ฐ์ฅ ๊ฐ๋จํ ๋ฐฉ๋ฒ์ ์ต์ด ๊ฐ๋ฐ ๋ฐฐํฌ๋ฅผ 0.1.0์ผ๋ก ํ๊ณ , ์ดํ ๋ฐฐํฌ๋ง๋ค ๋ถ๋ฒ์ ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค.
#
์ธ์ 1.0.0์ ๋ฐฐํฌํด์ผ ํ ์ง ์ด๋ป๊ฒ ์ ์ ์๋?์ํํธ์จ์ด๊ฐ ์ค ์๋น์ค์ ์ฐ์ด๊ธฐ ์์ํ๋ค๋ฉด ์ด๋ฏธ 1.0.0์ด๋ผ๊ณ ์ฌ๊ธธ ์ ์๋ค. ์ฌ์ฉ์๋ค์ด ๋ฏฟ๊ณ ์ธ ์ ์๋ ์์ ํ API๊ฐ ์๋ค๋ฉด 1.0.0์ผ ๊ฒ์ด๋ค. ํ์ ๋ฒ์ ํธํ์ฑ์ ๋ํด ์ฐ๋ คํ๊ธฐ ์์ํ๋ค๋ฉด ์ด๋ฏธ 1.0.0์ผ ์ ์๋ค.
#
์ ์์ ๋ฒ์ ์ง๊ธฐ๊ฐ ์ ์ํ ๊ฐ๋ฐ๊ณผ ๋น ๋ฅธ ์ดํฐ๋ ์ด์ ์ ๋ฐฉํด๊ฐ ๋์ง๋ ์์๊น?์ฃผ๋ฒ์ 0์ด ์ ์ํ ๊ฐ๋ฐ์ ์ํ ๊ฒ์ด๋ค. ๋ง์ฝ API๋ฅผ ๋งค์ผ๊ฐ์ด ๋ฐ๊พธ๊ณ ์๋ค๋ฉด 0.y.z ๋ฒ์ ์ ์ฐ๊ฑฐ๋ ๋ณ๋์ ๋ค์๋ฒ ์ฃผ๋ฒ์ ๋ฐฐํฌ๋ฅผ ์๋ ๊ฐ๋ฐ ๋ธ๋์น๋ฅผ ์จ์ผ ํ๋ค.
#
๊ณต๊ฐ API์ ์์ฃผ ์ฌ์ํ ๋ถ๋ถ์ด ํ์ํธํ์ด ๋์ง ์๋๋ค๊ณ ์ฃผ๋ฒ์ ์ ๋งค๋ฒ ์ฌ๋ ค์ผ ํ๋ค๋ฉด, ์ด๋์ ๋ฒ์ 42.0.0์ด ๋์ด๋ฒ๋ฆฌ์ง๋ ์๋?์ฑ ์๊ฐ ์๊ณ ์ ๊ฒฌ์ง๋ช ์ด ์๋ ์ง๋ฌธ์ด๋ค. ์์กดํ๋ ์ฝ๋๊ฐ ๋ง์ ์ํํธ์จ์ด์, ํธํ๋์ง ์๋ ๋ณํ๋ฅผ ๊ฐ๋ณ๊ฒ ๋์ ํด์๋ ์ ๋๋ค. ๊ด๋ จํด์ ์ ๊ทธ๋ ์ด๋ํ๋ ๋ฐ ํ์ํ ๋น์ฉ์ด ์ด๋ง์ด๋งํด์ง ์ ์๋ค. ํธํ๋์ง ์๋ ๋ณ๊ฒฝ๋ถ์ ๋ฐฐํฌํ๊ธฐ ์ํด ์ฃผ๋ฒ์ ์ ์ฌ๋ฆฌ๋ ค๋ฉด, ๋ฐ๋๋ ๋ถ๋ถ์ ์ธํ ์ฌํ์ ๊ทธ ๋น์ฉ๊ณผ ํํ์ ์ถฉ๋ถํ ํ๊ฐํด์ผ ํ๋ค.
#
๊ณต๊ฐ API ์ ์ฒด๋ฅผ ๋ฌธ์๋ก ๋ง๋๋ ๊ฒ์ ์ผ์ด ๋๋ฌด ๋ง๋ค!ํ๋ก ๊ฐ๋ฐ์๋ก์ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฐ๊ฒ ํ๋ ค๊ณ ๋ง๋ ์ํํธ์จ์ด๋ฅผ ์ ์ ํ ๋ฌธ์๋ก ๋ง๋๋ ๊ฒ์ ์ฑ ์์ด๋ค. ํ๋ก์ ํธ๋ฅผ ํจ์จ์ ์ผ๋ก ์ ์งํ๊ธฐ ์ํด ์ํํธ์จ์ด์ ๋ณต์ก์ฑ์ ๊ด๋ฆฌํ๋ ์ผ์ ๋งค์ฐ ์ค์ํ ์ผ์ด๊ณ , ๋จ์ด ์ํํธ์จ์ด๋ฅผ ์ด๋ป๊ฒ ์ฐ๋์ง ๋ชจ๋ฅด๊ฑฐ๋ ์ด๋ค ๋ฉ์๋๋ค์ ์์ ํ๊ฒ ํธ์ถํ ์ ์๋ ๊ฑด์ง ๋ชจ๋ฅธ๋ค๋ฉด ์ด๋ ค์ธ ๊ฒ์ด๋ค. ์ฅ๊ธฐ์ ์ผ๋ก ๋ณผ ๋, ์ ์์ ๋ฒ์ ๊ณผ ์ ์ ์ํ ๊ณต๊ฐ API๋ ๊ด๋ จ๋ ๋ชจ๋ ์ฌ๋๊ณผ ๋ชจ๋ ๊ฒ์ด ์์กฐ๋กญ๊ฒ ์ง๋ผ ์ ์๊ฒ ํ๋ค.
#
๋ถ๋ฒ์ ์ ์ฌ๋ฆฌ๋๋ฐ ์ค์๋ก ํธํ๋์ง ์๋ ๋ณ๊ฒฝ์ด ๋ค์ด๊ฐ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋?์ ์์ ๋ฒ์ ๋ช ์ธ๋ฅผ ์ด๊ฒผ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋๋ฉด, ์ฆ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ ํธํ์ฑ์ด ๊นจ์ง ๋ถ๋ถ์ ๋ณต๊ตฌํด์ ์ ๋ถ๋ฒ์ ์ ๋ฐฐํฌํ๋ค. ์ด ๊ฒฝ์ฐ๋ผ๋ ์ด๋ฏธ ๋ฐฐํฌ๋ ๋ฒ์ ์ ๋ณ๊ฒฝํด์๋ ์ ๋๋ค. ํ์ํ ๊ฒฝ์ฐ๋ผ๋ฉด ๋ฌธ์ ๊ฐ ๋๋ ๋ฒ์ ์ ๋ฌธ์๋ก ํ์ํด์ ์ฌ์ฉ์๋ค๋ก ํ์ฌ๊ธ ์ฃผ์ํ๋๋ก ํ๋ค.
#
๊ณต๊ฐ API๋ ์ ์งํ ์ฑ ๋ด๋ถ์ ์์กด์ฑ์ ๋ฐ๊พผ๋ค๋ฉด ์ด๋ป๊ฒ ํ ๊น?๊ณต๊ฐ API์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฏ๋ก ํธํ๋๋ค๊ณ ์ฌ๊ธด๋ค. ๋น์ ์ ํจํค์ง์ ๋๊ฐ์ ์์กด์ฑ์ ๋ช ์ํ ์ํํธ์จ์ด๋ ๋ณ๋๋ก ์์กด์ฑ ๋ช ์ธ๊ฐ ์์ด์ผ ํ๊ณ ์์ฑ์๋ ์ถฉ๋์ ๋์น์ฑ ๊ฒ์ด๋ค. ๋ณํ๊ฐ ์๋ฒ์ ์์ค์ธ์ง ๋ถ๋ฒ์ ์์ค์ธ์ง ๊ฒฐ์ ํ๋ ๊ฒ์ ๋ฒ๊ทธ๋ฅผ ์์ ํ๊ณ ์ ํ ์์ ์ธ์ง, ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ธฐ ์ํด์์ธ์ง์ ๋ฌ๋ ค์๋ค. ํ์์ ๊ฒฝ์ฐ, ์ถ๊ฐ์ ์ธ ์ฝ๋๋ฅผ ์์ํ ๊ฒ์ด๋ฉฐ, ๊ทธ๋ ๋ค๋ฉด ๋น์ฐํ ๋ถ๋ฒ์ ์ ์ฆ๊ฐํด์ผ ํ ๊ฒ์ด๋ค.
#
์ค์๋ก ๋ฒ์ ์ฆ๊ฐ์ ๋ง์ง ์๊ฒ ๊ณต๊ฐ API ๋ณ๊ฒฝ์ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํ๋? (์๋ฒ์ ๋ฐฐํฌ์์ ์๋ชป๋ ์ฝ๋๊ฐ ๋ค์ด๊ฐ์ ๊นจ์ง๊ฒ ๋ ๊ฒฝ์ฐ)์ค์ค๋ก ์ต์ ์ ํ๋จ์ ํ์. ๊ณต๊ฐ API๊ฐ ์๋ ์๋ํ๋ ๋๋ก ์ฌ์ฉ๋ ์ ์๊ฒ ๋ฐ๊พธ๋ ์์ ์ ์ํฅ์ ๋ฐ๋ ๋๊ท๋ชจ ์ฌ์ฉ์์ธต์ด ์๋ค๋ฉด, ์์ ์ฌํญ์ด ์๋ฐํ ๋ฐ์ง์๋ฉด ์๋ฒ์ ๋ฐฐํฌ๋ก ์ฌ๊ฒจ์ ธ์ผ ํ๋ค ํ๋๋ผ๋, ์ฃผ๋ฒ์ ๋ฐฐํฌ๋ฅผ ํ๋ ๊ฒ์ด ์ต์ ์ผ ๊ฒ์ด๋ค. ์ ์์ ๋ฒ์ ์ ์ด๋ป๊ฒ ๋ฒ์ ๋ฒํธ๊ฐ ๋ฐ๋๋์ง ์๋ฏธ๋ฅผ ์ ๋ฌํ๋ ๊ฒ์ด ์ ๋ถ์์ ์์ง ๋ง์. ๋ณ๊ฒฝ์ด ์ฌ์ฉ์์๊ฒ ์ค์ํ ์๋ฏธ๊ฐ ์๋ค๋ฉด, ๋ฒ์ ๋ฒํธ๋ก ์ ์๋ฆด ์ ์๋๋ก ํ๋ค.
#
์ ๊ฑฐํ๋ ๊ธฐ๋ฅ๋ค์ ๋ํด์๋ ์ด๋ป๊ฒ ํ ๊น?๊ธฐ์กด์ ๊ธฐ๋ฅ๋ค์ ์ฌ์ฉํ์ง ๋ชปํ๊ฒ ์์ ๋ ๊ฒ์ ์ํํธ์จ์ด ๊ฐ๋ฐ๊ณผ์ ์ ์์ฐ์ค๋ฌ์ด ์ผ๋ถ๋ถ์ด๋ฉฐ, ๋๋ก๋ ์์ผ๋ก ๋์๊ฐ๊ธฐ ์ํด ํ์์ ์ธ ์ผ์ด๊ธฐ๋ ํ๋ค. ๊ณต๊ฐ API์ ์ผ๋ถ๋ฅผ ์ ๊ฑฐํ๊ณ ์ ํ๋ค๋ฉด ๋ค์์ ๋ ๊ฐ์ง ์ผ์ ํด์ผ ํ๋ค: (1) ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํด์ ์ฌ์ฉ์๋ค์๊ฒ ๋ณํ๋ฅผ ์๋ฆฌ๋๋ก ํ๋ค. (2) ํด๋น ๊ธฐ๋ฅ์ด ์ ๊ฑฐ๋ ๊ฑฐ๋ผ ํ์๋ ์ ๋ถ๋ฒ์ ์ ์ ์ ํ ์๊ธฐ์ ๋ฐฐํฌํ๋ค. ์ ์ฃผ๋ฒ์ ์์ ์์ ํ ๊ธฐ๋ฅ์ ์ ๊ฑฐํ๊ธฐ ์ ์, ์ ๊ฑฐ๋ ๊ฒ์ด๋ผ ํ์ํ ๋ถ๋ฒ์ ๋ฐฐํฌ๋ฅผ ์ต์ํ ํ ๋ฒ์ ์งํํด์ ์ฌ์ฉ์๋ค์ด ์ํํ๊ฒ ์๋ก์ด API๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํด์ผ ํ๋ค.
#
์ ์์ ๋ฒ์ (SemVer)์ ๋ฒ์ ๋ฌธ์์ด ๊ธธ์ด์ ์ ํ์ด ์๋?์์ง๋ง, ์ ํ๋จ ํ์. ์๋ฅผ ๋ค์ด, 255์ ๋ฒ์ ๋ฌธ์์ด์ ์๋ง๋ ์ง๋์น๊ฒ ๊ธด ๊ฒ์ผ ๊ฒ์ด๋ค. ๋, ๋ช๋ช ์์คํ ์ ๋ฌธ์์ด ๊ธธ์ด์ ๋ํด ๋๋ฆ์ ์ ํ์ด ์์ ๊ฒ์ด๋ค.
#
์์ฑ์์ ์์ ๋ฒ์ ๋ช ์ธ๋ ๊ทธ๋ผ๋ฐํ(Gravatars)์ ์ฐฝ์์์ด์ ๊นํ(GitHub)์ ๊ณต๋์ฐฝ์ ์์ธ ํฐ ํ๋ ์คํด-๋ฒ ๋ฅด๋(Tom Preston-Werner)๊ฐ ์์ฑํ๋ค.
์๋ฌธ์ ๋ํ ์๊ฒฌ์ ๋จ๊ธฐ๊ณ ์ ํ๋ค๋ฉด, ์๋ฌธ ๊นํ์ ์ด์๋ฅผ ์์ฑํด ์ฃผ๊ธฐ ๋ฐ๋๋ค.
ํ๊ตญ์ด ๋ฒ์ญ์ ๊น๋ํ์ด ํ๊ณ , ๊ด๋ จํ ์๊ฒฌ์ ํ๊ตญ์ดํ ๊นํ์ ์ด์๋ก ๋จ๊ฒจ์ฃผ๊ธฐ ๋ฐ๋๋ค.
#
๋ผ์ด์ ์คCreative Commons - CC BY 3.0