- Aiden's Lab แแ ฒแแ ณแ แ ฆแแ ฅ
- Posts
- ๐ญแแ ตแแ ณแท แแ ฎแ แ ตแซ Gitแแ ณแฏ แแ กแฏ แแ ณแแ ฉ แแ ตแปแแ ณแซ แแ ฅแฏแแ ก? - แแ กแแ ฎ แแ ชแฏแแ ญแผแแ ฌแแ ณแซ Git แแ ณแ แ ขแซแแ ต แแ ฅแซแ แ ฃแจ 3แแ กแแ ต แแ กแฏแแ กแแ ฉแแ ต
๐ญแแ ตแแ ณแท แแ ฎแ แ ตแซ Gitแแ ณแฏ แแ กแฏ แแ ณแแ ฉ แแ ตแปแแ ณแซ แแ ฅแฏแแ ก? - แแ กแแ ฎ แแ ชแฏแแ ญแผแแ ฌแแ ณแซ Git แแ ณแ แ ขแซแแ ต แแ ฅแซแ แ ฃแจ 3แแ กแแ ต แแ กแฏแแ กแแ ฉแแ ต
แแ ฅแแ ฎแจ แแ ญแแ ชแแ ฅแจแแ ตแซ แแ ณแ แ ฉแแ ฆแจแแ ณ แแ ชแซแ แ ตแ แ ณแฏ แแ ฑแแ กแซ Git แแ ณแ แ ขแซแแ ต แแ ฅแซแ แ ฃแจ 3แแ กแแ ตแ แ ณแฏ แแ กแฏแแ งแแ ฉแแ ฉ แแ กแแ ฆแแ ฆ แแ กแฝแแ ณแซ แแ ณแ แ ขแซแแ ต แแ ฅแซแ แ ฃแจแ แ ณแฏ แแ กแฝแแ กแแ ฉแแ ฆแแ ญ.
์๋ ํ์ธ์, Aidenโs Lab ๋ด์ค๋ ํฐ์ ๋๋ค.
Git์ ๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ ์ผ๋ก์ ํ๋ฅญํ์ง๋ง, ํ ๋ด ๊ตฌ์ฑ์๋ค์ด ๊ฐ์์ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๋ค๋ณด๋ฉด ์ฝ๋๊ฐ ์ถฉ๋ํ๊ฑฐ๋ ํ์คํ ๋ฆฌ ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋ ๋ฑ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋จ์ํ Git ๋ช ๋ น์ด๋ฅผ ์๋ ๊ฒ์ ๋์ด์, ํ ์ ์ฒด๊ฐ ๋์ํ๊ณ ๋ฐ๋ฅผ ์ ์๋ ๋ช ํํ ์ฌ์ฉ ๊ท์น๊ณผ ์ ์ฐจ๊ฐ ํ์ํ๋ฐ์. ์ธ์ ์ด๋ค ๋ธ๋์น๋ฅผ ๋ง๋ค๊ณ , ์ธ์ ๋ณํฉํ๊ณ ๋ฐฐํฌํ ์ง์ ๋ํ ์ฝ์์ด ์๋ค๋ฉด, Git์ ๊ทธ์ ํ์ผ ๋ฐฑ์ ๋๊ตฌ๋ก ์ ๋ฝํด๋ฒ๋ฆด์ง๋ ๋ชจ๋ฆ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๋ฆฌ๋ Git์ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผ ํ ๊น์? ์ด๋ฐ ๋ฌธ์ ์์์์ ๋์จ ๊ฒ์ด ๋ฐ๋ก, Git ๋ธ๋์น ์ ๋ต์ ๋๋ค.
์ด๋ฒ ์ํฐํด์ ์ฝ์ผ์๋ค๋ณด๋ฉด ์ฐ๋ฆฌ ํ์ ์ ํฉํ Git ๋ธ๋์น ์ ๋ต์ ์ฐพ์๊ฐ์ค ์ ์์ ๊ฒ๋๋ค.
ํ์ด ์๋๋ผ ํผ์์ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ณ ์๋ค๊ณ ์? ๊ฑฑ์ ๋ง์ธ์. 1์ธ ๊ฐ๋ฐ ์ ํ๋ก์ ํธ ๊ด๋ฆฌ์ ๋์์ด ๋๋ Git ๋ธ๋์น ์ ๋ต๋ ์ถ์ฒํด๋๋ฆด ํ ๋๊น์.
ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ ๋ Git ๋ธ๋์น ์ ๋ต์ด ์ค์ํ ์ด์

๋ํ์ ์ธ Git ๋ธ๋์น์๋ Git ํ๋ก์ฐ, GitHub ํ๋ก์ฐ, GitLab ํ๋ก์ฐ๊ฐ ์์ต๋๋ค.
Git ๋ธ๋์น ์ ๋ต์ ํ์ด ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๊ณ ํตํฉํ๋ฉฐ ๋ฐฐํฌํ๋ ์ ์ฒด ๊ณผ์ ์ ๋ํ ๊ท์น๊ณผ ์ ์ฐจ๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ๋ก ์ ๋๋ค. ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ , ํ๋ก์ ํธ๋ฅผ ์์ ์ ์ผ๋ก ์งํํ๊ธฐ ์ํ ๊ธฐ๋ฐ์ด ๋์ด์ฃผ๋๋ฐ์. ๊ทธ๋์ Git ๋ธ๋์น ์ ๋ต์...
์ฝ๋ ํตํฉ ์์ ์ฑ์ ๋์ด๊ณ ๋ณ๋ ฌ์ ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ํ๋ฉฐ,
์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ฅผ ์ ์ฐฉ์ํค๋ฉด์ ์ฝ๋ ํ์ง ํฅ์์ ๊ธฐ์ฌํ๊ณ ,
์ง์์ ํตํฉ(CI) ๋ฐ ์ง์์ ๋ฐฐํฌ(CD) ํ์ดํ๋ผ์ธ๊ณผ๋ ์์ฐ์ค๋ฝ๊ฒ ์ฐ๋๋ ์ ์์ต๋๋ค.
๋ํ์ ์ธ Git ๋ธ๋์น ์ ๋ต์ผ๋ก๋ ์๋์ ๊ฐ์ด 3๊ฐ์ง๊ฐ ์กด์ฌํ๋๋ฐ์.
Git ํ๋ก์ฐ
ํต์ฌ ๋ธ๋์น(
main
,develop
)์ ๋ช ํํ ๋ชฉ์ ์ ๊ฐ์ง ๋ณด์กฐ ๋ธ๋์น(feature
,release
,hotfix
)๋ฅผ ํ์ฉํ๋ ์ฒด๊ณ์ ์ธ Git ๋ธ๋์น ์ ๋ต
GitHub ํ๋ก์ฐ
main
๋ธ๋์น๋ฅผ ํญ์ ๋ฐฐํฌ ๊ฐ๋ฅํ ์ํ๋ก ์ ์งํ์ฌ ๋ณต์กํ ๊ท์น ์์ด ๋น ๋ฅธ ๋ฐฐํฌ์ ์ ํฉํ Git ๋ธ๋์น ์ ๋ต
GitLab ํ๋ก์ฐ
GitHub ํ๋ก์ฐ์ ๋จ์ํจ์ ๊ฐ์ ธ๊ฐ๋ฉด์, ํ์์ ๋ฐ๋ผ ํ๊ฒฝ๋ณ ๋ฐฐํฌ๋ฅผ ์ํ ๋ธ๋์น(
pre-production
,production
๋ฑ) ๋๋ ํน์ ๋ฒ์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ์ํ ๋ฆด๋ฆฌ์ฆ ๋ธ๋์น๋ฅผ ์ถ๊ฐํ ์ ์๋ ์ ์ฐํ Git ๋ธ๋์น ์ ๋ต
์ฐ๋ฆฌ์๊ฒ ์ ํฉํ ๋ฐฉ์์ ์ฐพ์๋๊ฐ ์ ์๋๋ก ๊ฐ ๋ธ๋์น ์ ๋ต์ ๋์ ๋ฐฉ์๊ณผ ์ฅ/๋จ์ ์ ๋ํด ์ฐจ๊ทผ์ฐจ๊ทผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
Git ํ๋ก์ฐ
์๋ง๋ Git ๋ธ๋์น ์ ๋ต์ ๋ํด ์ด๋ฏธ ๊ฒ์ํด๋ณด์ จ๋ค๋ฉด ์๋์ ๊ฐ์ ๊ทธ๋ฆผ์ ํ ๋ฒ์ฏค์ ๋ณด์ จ์ ์๋ ์์ต๋๋ค. Git ํ๋ก์ฐ๋ฅผ ๋ํ๋ธ ๊ทธ๋ํ์ธ๋ฐ์.

๊ทธ๋ํ๊ฐ ๋ณต์กํด๋ณด์ฌ๋ ๊ฑฑ์ ๋ง์ธ์. ์ง๊ธ ๋น์ฅ ์ ๊ทธ๋ฆผ์ ๋ด์ฉ์ ๋ค ์ดํดํ ํ์๋ ์์ต๋๋ค.
๋ค๋ง ์ฐ๋ฆฌ๊ฐ ์ฃผ๋ชฉํด์ผ ํ ๊ฒ์ ๋ณผ๋์ฒด๋ก ๊ฐ์กฐ๋ master
(๋๋ main
) ๋ธ๋์น์ develop
๋ธ๋์น๊ฐ Git ํ๋ก์ฐ์ ํต์ฌ ๋ธ๋์น๋ผ๋ ์ ์
๋๋ค.
Git ํ๋ก์ฐ์ ๋์ ๋ฐฉ์
Git ํ๋ก์ฐ์ ์ค์ฌ์๋ ํญ์ ์ ์ง๋๋ ๋ ๊ฐ์ ํต์ฌ ๋ธ๋์น(main
, develop
)๊ฐ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ๋ณด์กฐํด์ฃผ๋ ๋ณด์กฐ ๋ธ๋์น(feature
, release
, hotfix
)๊ฐ ์กด์ฌํ์ฃ .
main
๋ธ๋์น์ค์ ํ๋ก๋์ ์ ๋ฐฐํฌ๋ ์์ ์ ์ธ ๋ฒ์ ์ ์ฝ๋๊ฐ ํฌํจ๋ ๋ธ๋์น
ํ๊ทธ๋ฅผ ํตํด ๊ฐ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ๊ด๋ฆฌ
develop
๋ธ๋์น๋ค์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ์ํด ๊ฐ๋ฐ ์ค์ธ ์ต์ ์ฝ๋๊ฐ ํฌํจ๋ ๋ธ๋์น
๋ชจ๋ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ๊ธฐ์ค
feature
๋ธ๋์น์๋ก์ด ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ฑฐ๋ ๊ธฐ๋ฅ ๊ฐ์ ์ด ํ์ํ ๊ฒฝ์ฐ,
develop
๋ธ๋์น๋ก๋ถํฐfeature/{๊ธฐ๋ฅ ์ด๋ฆ}
์ ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋ถ๊ธฐ๋จ๊ฐ ๊ธฐ๋ฅ์ ๋ ๋ฆฝ๋
feature
๋ธ๋์น์์ ๊ฐ๋ฐ ํ, ๊ฐ๋ฐ ์๋ฃ ์ ๋ค์develop
๋ธ๋์น๋ก ๋ณํฉ๋ณํฉ์ด ์๋ฃ๋
feature
๋ธ๋์น๋ ์ญ์
release
๋ธ๋์นdevelop
๋ธ๋์น์ ๋ค์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ์ํ ๊ธฐ๋ฅ๋ค์ด ์ถฉ๋ถํ ํตํฉ๋์๋ค๊ณ ํ๋จ๋ ๊ฒฝ์ฐ,develop
๋ธ๋์น๋ก๋ถํฐrelease/{๋ฒ์ ๋ฒํธ}
์ ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋ถ๊ธฐ๋จ๋ณธ ๋ธ๋์น์์๋ ๋ฐฐํฌ๋ฅผ ์ํ ์ต์ข ํ ์คํธ์ ๋ฌธ์ ์์ , ์ด ๊ณผ์ ์์ ๋ฐ๊ฒฌ๋ ๋ฒ๊ทธ ์์ ์์ ๋ง ์งํ
๋ฐฐํฌ ์ค๋น๊ฐ ์๋ฃ๋๋ฉด
main
๋ธ๋์น์develop
๋ธ๋์น๋ก ๋ณํฉ๋ณํฉ์ด ์๋ฃ๋
release
๋ธ๋์น๋ ์ญ์
hotfix
๋ธ๋์น์ด๋ฏธ ํ๋ก๋์ ์ ๋ฐฐํฌ๋
main
๋ธ๋์น์ ์ฝ๋์์ ๊ธด๊ธ ์์ ์ด ํ์ํ ๋ฒ๊ทธ ๋ฐ์ ์hotfix/{๋ฒ๊ทธ ์ด์ ๋ฒํธ}
์ ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋ถ๊ธฐ๋จ์์ ์๋ฃ ํ
main
๋ธ๋์น์develop
๋ธ๋์น๋ก ๋ณํฉ๋ณํฉ์ด ์๋ฃ๋
hotfix
๋ธ๋์น๋ ์ญ์
Git ํ๋ก์ฐ์ ์ฅ/๋จ์
์ง๊ธ๊น์ง ์ดํด๋ณธ ๋ด์ฉ์ ๋ณด๋ฉด, Git ํ๋ก์ฐ๋ ์ฒด๊ณ์ ์ด๊ณ ๋ช ํํ๊ฒ ๋ธ๋์น๊ฐ ๋๋ ์ง๊ณ ํฉ์ณ์ง์ ์ ์ ์๋๋ฐ์. ์ด๋ฐ Git ํ๋ก์ฐ์ ์ฅ์ ๊ณผ ๋จ์ ์ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์ฅ์ :
์ฌ๋ฌ ๊ฐ๋ฐ์๊ฐ ๋์์ ๋ค์ํ ์์ ์ ์ํํ๋ ๋๊ท๋ชจ ํ๋ก์ ํธ์์๋ ์ฝ๋ ๊ด๋ฆฌ์ ํผ๋์ ์ค์ด๊ณ , ์ฒด๊ณ์ ์ธ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅ
release
๋ธ๋์น๋ฅผ ํตํด ์์ ์ ์ธ ๋ฐฐํฌํ์ ์ค๋นํ๋ ๊ณผ์ ๊ณผ,hotfix
๋ธ๋์น๋ฅผ ํตํด ์ด์ ํ๊ฒฝ์ ๊ธด๊ธํ ๋ฌธ์ ๋ฅผ ์ ์ํ๊ฒ ํด๊ฒฐํ๋ ๋ช ํํ ์ ์ฐจ๋ฅผ ์ ๊ณต
๋จ์ :
์ด๋ฏธ ๋ค์ํ ๋ธ๋์น ์ข ๋ฅ์ ๊ฐ ๋ธ๋์น์ ๋ณํฉ ๊ท์น์ด ์ ํด์ ธ ์์ด ์ฒ์ ์ ํ๋ ํ์๊ฒ๋ ๋ณต์กํ๊ฒ ๋๊ปด์ง ์ ์์
release
๋ธ๋์น๋ฅผ ํตํ ๋ณ๋์ ๋ฐฐํฌ ์ค๋น ๊ณผ์ ์, ๋ฐฐํฌ๊ฐ ๋งค์ผ ๋๋ ์์๋ก ์ด๋ฃจ์ด์ง๋ ํ์ฌ ์น ์๋น์ค ํ๊ฒฝ์์๋ ๋ค์ ๋ฒ๊ฑฐ๋กญ๊ณ ๋๋ฆด ์ ์์๋ธ๋์น ๊ด๋ฆฌ๊ฐ ๋ณต์กํ์ฌ ์ง์์ ํตํฉ(CI) ๋ฐ ์ง์์ ๋ฐฐํฌ(CD) ํ์ดํ๋ผ์ธ๊ณผ ์๋ฒฝํ๊ฒ ํตํฉ์ด ์ด๋ ค์ธ ์ ์์
GitHub ํ๋ก์ฐ
GitHub ํ๋ก์ฐ๋ Git ํ๋ก์ฐ์ ๋ณต์ก์ฑ์ ์ต์ํํ๊ธฐ ์ํด ๋์จ ๋ธ๋์น ์ ๋ต์ ๋๋ค. ์ด๋ฅผ ๋์ํํ ์๋ ์ด๋ฏธ์ง๋ง ๋ด๋, ์์์ ๋ดค๋ Git ํ๋ก์ฐ๋ณด๋ค ๋ง์ด ๊ฐ์ํ๋ ๊ฑธ ์ ์ ์์ฃ ?
GitHub ํ๋ก์ฐ์ ๋์ ๋ฐฉ์
GitHub ํ๋ก์ฐ์ ํต์ฌ ์์น์ main
๋ธ๋์น๊ฐ ํญ์ ์์ ์ ์ด๊ณ , ์ฆ์ ํ๋ก๋์
์ ๋ฐฐํฌ๋ ์ ์๋ ์ํ๋ฅผ ์ ์งํ๋ ๊ฒ์
๋๋ค. ๋ชจ๋ ๊ฐ๋ฐ ์์
์ main
๋ธ๋์น์์ ์์๋๋ฉฐ, ๋ณํฉ๋๊ธฐ ์ ๊น์ง ์ถฉ๋ถํ ํ
์คํธ์ ๋ฆฌ๋ทฐ๋ฅผ ๊ฑฐ์น๋ ๊ฑด๋ฐ์.
๊ธฐ๋ฅ ์ถ๊ฐ๋ ๋ฒ๊ทธ ์์ ๋ฑ ๋ชจ๋ ์๋ก์ด ์์
์ main
๋ธ๋์น๋ก๋ถํฐ ๋ถ๊ธฐ๋, ํผ์ฒ ๋ธ๋์น(Feature Branch)๋ผ ๋ถ๋ฆฌ๋ ๋ธ๋์น์์ ์งํ๋ฉ๋๋ค. ๋ณดํต ํผ์ฒ ๋ธ๋์น๋ ํด๋น ์์
์ ๋ด์ฉ์ ์ค๋ช
ํ๋ ์ด๋ฆ(์: fix-login-bug
, add-user-profile
)์ผ๋ก ๋ง๋ค์ด์ง์ฃ .
์ด๋ฐ ํผ์ฒ ๋ธ๋์น์์์ ์์
์ด ๋ชจ๋ ์๋ฃ๋๋ฉด main
๋ธ๋์น์ ๋ณํฉ๋ฉ๋๋ค. main
๋ธ๋์น์ ์ฝ๋๋ ๊ณง ํ๋ก๋์
๋ฐฐํฌ์ฉ ์ฝ๋์ด๊ธฐ ๋๋ฌธ์, main
๋ธ๋์น๋ก ๋ณํฉ ์ ์๋์ผ๋ก ๋์ํ๋ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ฑํ๊ธฐ ์ข์ต๋๋ค.
GitHub ํ๋ก์ฐ์ ์ฅ/๋จ์
Git ํ๋ก์ฐ์ ๋นํด ํฌ๊ฒ ๊ฐ์ํ๋ GitHub ํ๋ก์ฐ๋ ๊ทธ ์ฅ/๋จ์ ๋ ๋ช ํํฉ๋๋ค.
์ฅ์ :
main
๋ธ๋์น์ ํผ์ฒ ๋ธ๋์น๋ผ๋ ์ต์ํ์ ๋ธ๋์น ์ข ๋ฅ๋ง ์ฌ์ฉํ์ฌ ๋์ ๋ฐ ๊ต์ก ๋ถ๋ด์ด ์ ์main
๋ธ๋์น์ ๋ณํฉ๋ ์ฝ๋๋ ์ฆ์ ๋ฐฐํฌ ๊ฐ๋ฅ ์ํ์ด๋ฏ๋ก, ํ๋ฃจ์๋ ์ฌ๋ฌ ๋ฒ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์ ์ํ ๊ฐ๋ฐ๊ณผ ๋ฐฐํฌ ์ฌ์ดํด ๊ตฌํ ๊ฐ๋ฅCI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๊ณ ์๋ํํ๋ ๋ฐ์ ๋งค์ฐ ์ ๋ฆฌํจ
๋จ์ :
main
๋ธ๋์น๊ฐ ํญ์ ์ต์ ๋ฐฐํฌ ๋ฒ์ ์ ๋ํ๋ด๊ธฐ ๋๋ฌธ์, ํน์ ์์ ์ ์ฝ๋๋ฅผ ๊ณ ์ ํ์ฌ ๋ณ๋์ ๋ฒ์ ์ผ๋ก ๊ด๋ฆฌํ๊ฑฐ๋, ์ฌ๋ฌ ๋ฒ์ ์ ๋์์ ์ ์ง๋ณด์ํด์ผ ํ๋ ์ ํต์ ์ธ ์ํํธ์จ์ด ๋ฆด๋ฆฌ์ฆ ๋ฐฉ์์๋ ์ ํฉํ์ง ์์๊ธด๊ธ ์์ ์ ์ํ ๋ณ๋ ์ ์ฐจ๊ฐ ์ ์๋์ด ์์ง ์์ผ๋ฏ๋ก, ์ํฉ์ ๋ฐ๋ผ ๋์ฒํด์ผ ํ ์ ์์
GitLab ํ๋ก์ฐ
GitLab ํ๋ก์ฐ๋ GitHub ํ๋ก์ฐ์ ํต์ฌ ์์น์ธ 'main
๋ธ๋์น ์ค์ฌ์ ๊ฐ๋ฐ'์ ์ ์งํ๋ฉด์, ํ๋ก์ ํธ์ ํ์์ ๋ฐ๋ผ ์ถ๊ฐ์ ์ธ ๋ธ๋์น๋ฅผ ์ ์ฐํ๊ฒ ๋์
ํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ฆ, '๋จ์ํจ'๊ณผ '์ฒด๊ณ์ ์ธ ๊ด๋ฆฌ'๋ฅผ ๋ชจ๋ ์ทจํ๊ณ ์ ๋์จ ์ ๋ต์ด์ฃ .
GitLab ํ๋ก์ฐ์ ๋์ ๋ฐฉ์
๋จผ์ GitLab ํ๋ก์ฐ๊ฐ GitHub ํ๋ก์ฐ์ ์ ์ฌํ ์ ์ ์๋์ ๊ฐ์ต๋๋ค.
main
๋ธ๋์นํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌ๋ ์์ ์ ์ธ ์ฝ๋ ํฌํจ
feature
๋ธ๋์น๋ชจ๋ ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ๊ณผ ๋ฒ๊ทธ ์์ ์ด ์ด๋ฃจ์ด์ง
main
๋ธ๋์น๋ก๋ถํฐ ๋ถ๊ธฐ๋๋ฉฐ, ์์ ์ด ์๋ฃ๋๋ฉดmain
๋ธ๋์น๋ก ๋ณํฉ
๊ทธ๋ฆฌ๊ณ ์ฒด๊ณ์ ์ธ ์ฝ๋ ๊ด๋ฆฌ๋ฅผ ์ํด GitLab ํ๋ก์ฐ์์ ์ฌ์ฉํ ์ ์๋ ๋ธ๋์น๋ ์๋์ ๊ฐ์ต๋๋ค.
ํ๊ฒฝ ๋ธ๋์น (์:
pre-production
,production
)์คํ ์ด์ง์ด๋ ํ๋ก๋์ ๊ณผ ๊ฐ์ด ๊ฐ ๋ฐฐํฌ ํ๊ฒฝ์ ๋์
main
๋ธ๋์น์์pre-production
๋ธ๋์น๋ก ์ฝ๋๋ฅผ ๋ณํฉํ์ฌ ์คํ ์ด์ง ํ๊ฒฝ์ ๋ฐฐํฌ ํ, ์ถฉ๋ถํ ํ ์คํธ๋ฅผ ์๋ฃํ๋ฉดpre-production
๋ธ๋์น์์production
๋ธ๋์น๋ก ๋ณํฉํ์ฌ ์ค์ ์ด์ ํ๊ฒฝ์ ๋ฐฐํฌ
release
๋ธ๋์น์ ๊ธฐ์ ์ธ ๋ฆด๋ฆฌ์ฆ๋ ํน์ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ,
release/{๋ฒ์ ๋ฒํธ}
ํํ์ ๋ธ๋์น ์์ฑํด๋น ๋ฒ์ ์ ์์ ํ ์์ ๋ฐ ๋ฒ๊ทธ ์์ ์ด ์๋ฃ๋๋ฉด ํ๋ก๋์ ํ๊ฒฝ์ ๋ฐฐํฌ ๋ฐ
main
๋ธ๋์น์ ๋ณํฉ
GitLab ํ๋ก์ฐ์ ์ฅ/๋จ์
GitHub ํ๋ก์ฐ์ '๋จ์ํจ'๊ณผ Git ํ๋ก์ฐ์ '์ฒด๊ณ์ฑ'์ ๋ชจ๋ ์ทจํ๊ณ ์ ํ๋ GitLab ํ๋ก์ฐ์ ์ฅ/๋จ์ ์ ์๋์ ๊ฐ์ต๋๋ค.
์ฅ์ :
๊ฐ๊ฒฐํ ๊ธฐ๋ณธ ํ๋ฆ์ ์ ์งํ๋ฉด์๋ ํ๊ฒฝ ๋ธ๋์น๋ ๋ฆด๋ฆฌ์ฆ ๋ธ๋์น ๋์ ์ผ๋ก ์ ์ฐํ ์ด์ ๊ฐ๋ฅ
GitLab ํ๋ซํผ ๋ด์์ GitLab ํ๋ก์ฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ, ์ ์ฒด ๊ฐ๋ฐ ๋ผ์ดํ์ฌ์ดํด์ ์ด์์ ์ฐ๊ณํ์ฌ ํจ๊ณผ์ ์ผ๋ก ์ถ์ ๋ฐ ๊ด๋ฆฌ ๊ฐ๋ฅ
๋จ์ :
GitHub ํ๋ก์ฐ๋ณด๋ค๋ ๋ณต์ก์ฑ์ด ์ฆ๊ฐ
์ฐ๋ฆฌ ํ๋ก์ ํธ์ ๋ง๋ Git ๋ธ๋์น ์ ๋ต์ ๋ญ๊น?
์ด๋ ๊ฒ 3๊ฐ์ง Git ๋ธ๋์น ์ ๋ต์ ๋์ ๋ฐฉ์๊ณผ ์ฅ/๋จ์ ์ ๋ํด ์์๋ดค๋๋ฐ์. ๊ฐ ๋ธ๋์น ์ ๋ต์ด ์ ํฉํ ์๋๋ฆฌ์ค๋ ์๋์ ๊ฐ์ด ์ ๋ฆฌํ์ผ๋, ๋์๊ฒ ๋ง๋ Git ๋ธ๋์น ์ ๋ต์ ์ฐพ๊ณ ๊ณ์ ๋ค๋ฉด ๋์์ด ๋ ๊ฒ๋๋ค.
Git ํ๋ก์ฐ๊ฐ ์ ํฉํ ๊ฒฝ์ฐ
์ฌ๋ฌ ํ์ด๋ ๋ค์์ ๊ฐ๋ฐ์๊ฐ ์ฐธ์ฌํ์ฌ ๊ฐ์์ ์ญํ ์ ์ํํ๊ณ , ๊ฐ๋ฐ ํ๋ก์ธ์ค๊ฐ ๋ช ํํ๊ฒ ์ ์๋ ํ
์ฌ๋ฌ ๋ฒ์ ์ ๋์์ ์ ์ง๋ณด์ํด์ผ ํ๊ฑฐ๋ ๋ช ํํ ๋ฒ์ ๊ด๋ฆฌ๊ฐ ํ์์ ์ธ ์ํํธ์จ์ด ๊ฐ๋ฐ ์
์: ์๋ฒ ๋๋ ์ํํธ์จ์ด, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฑ
GitHub ํ๋ก์ฐ๊ฐ ์ ํฉํ ๊ฒฝ์ฐ
๋น ๋ฅด๊ฒ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ ๊ฐ๋ฐ ํ์คํ ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๊ณ ์ถ์ 1์ธ ๊ฐ๋ฐ์
์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ ๋ฐ๋ฅด๋ ์๊ท๋ชจ ํ
์ง์์ ์ธ ๊ธฐ๋ฅ ๊ฐ์ ๊ณผ ์ฌ์ฉ์ ํผ๋๋ฐฑ ๋ฐ์์ด ์ค์ํ ์น ์๋น์ค, SaaS, ๋ชจ๋ฐ์ผ ์ฑ ๋ฑ ๊ฐ๋ฐ ์
GitLab ํ๋ก์ฐ๊ฐ ์ ํฉํ ๊ฒฝ์ฐ
GitHub ํ๋ก์ฐ๋ฅผ ์ ์ฉํด์์ง๋ง ์ฌ๋ฌ ๋ฆด๋ฆฌ์ฆ ๋ฒ์ ์ด๋ ๋ค์ํ ๋ฐฐํฌ ํ๊ฒฝ์ด ํ์ํ๊ฒ ๋ ํ
GitLab ํ๋ซํผ์ ์ฌ์ฉํ๋ฉด์ ์ ์ฒด ์์ ํํฉ์ ๊ฐ์์ฑ์ ๋์ด๊ณ ์ถ์ ํ
๋ง๋ฌด๋ฆฌ
์ง๊ธ๊น์ง ๋ํ์ ์ธ Git ๋ธ๋์น ์ ๋ต 3๊ฐ์ง์ ๋ํด ์ดํด๋ดค๋๋ฐ์. ์ด๋ ์ ๊ฐ์? ์ฌ๋ฌ๋ถ์๊ฒ ์ ์ฉํ, ๋๋ ๊ด์ฌ์ด ๊ฐ๋ GIt ๋ธ๋์น ํ์ฉ๋ฒ์ ์ฐพ์ผ์ จ๋์?
๋ฌผ๋ก ์ด๋ฐ ์ ๋ต ํ๋๋ฅผ ๊ณ ๋ฅด๊ณ ๋ฌด์กฐ๊ฑด ๊ทธ๋๋ก ๊ณ ์ํด์ผ๋ง ํ๋ ๊ฒ์ ์๋๋๋ค.
์ด๋๊น์ง๋ ํ๋ก์ ํธ๋ฅผ ์ง๊ธ๋ณด๋ค ์ข ๋ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํจ์ด Git ๋ธ๋์น ์ ๋ต์ ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์, ํ๋ก์ ํธ ์ํฉ์ ๋ฐ๋ผ ํ ๋ด์์ ํฉ์๋ฅผ ํ๋ค๋ฉด ๋ธ๋์น ์ ๋ต์ ์ผ๋ถ ์์ ํ๋ ๋ฑ ์ ์ฐํ๊ฒ ๋์ ํ ์ ์๋ ๊ฒ์ด์ฃ .
Git์ ์ฌ์ฉ ์ค์ด๊ธด ํ์ง๋ง ์ฒด๊ณ์ ์ธ ๋ธ๋์น ํ์ฉ ๋ฐฉ๋ฒ์ด ๊ถ๊ธํ์ จ๊ฑฐ๋, ์๋ก ์์ํ ํ๋ก์ ํธ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ์ถ์ผ์ ๋ถ๋ค์๊ฒ ๋์์ด ๋์๊ธธ ๋ฐ๋๋๋ค.
๊ทธ๋ผ ๋ค์์ฃผ์ ๋ ํฅ๋ฏธ๋ก์ด ์ฃผ์ ๋ฅผ ๊ฐ์ง๊ณ ๋์์ค๊ฒ ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
โจ์ด๋ฒ ๋ด์ค๋ ํฐ๋ ์ด๋ ์ จ๋์?
์ด๋ฒ ๊ธ์์ ๋ค๋ฃฌ ์ฃผ์ ์ ๋ํด ์ด๋ป๊ฒ ์๊ฐํ๋์ง ์๋ ค์ฃผ์ธ์! ๋ด์ค๋ ํฐ๋ฅผ ๋ ๋์ ๋ฐฉํฅ์ผ๋ก ๊ฐ์ ํ๊ธฐ ์ํด ์๋ ํผ์์ ์งง์ ํผ๋๋ฐฑ์ ๋ฐ๊ณ ์์ด์.
๐ ํผ๋๋ฐฑ ๋ณด๋ด๊ธฐ (1~2๋ถ ์์)
์ฌ๋ฌ๋ถ๋ค์ ์์คํ ์๊ฒฌ์ Aidenโs Lab ๋ด์ค๋ ํฐ์๊ฒ ํฐ ํ์ด ๋ฉ๋๋ค!
๐ญAidenโs Lab์์ ๋ ๋ง์ ์ํฐํด์ ๋ง๋๋ณด์ธ์
๋ฐํ๋ ๋ด์ค๋ ํฐ๋ฅผ ์์นด์ด๋นํ๊ณ ๋ค์ํ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ๊ธฐ์ ๋ธ๋ก๊ทธ๋ฅผ ์ด์ ์ค์ ๋๋ค.