π λ²μ κ΄λ¦¬λ₯Ό μν΄ μλ‘μ΄ μ½λλ₯Ό λΉλνκ³ ν μ€νΈλ₯Ό μν μλν νλ‘μΈμ€
CI λ, μλ‘μ΄ μ½λμ λ³κ²½μ¬νμ΄ μ κΈ°μ μΌλ‘ λΉλ λ° ν μ€νΈλμ΄ κ³΅μ λ ν¬μ§ν 리μ ν΅ν©λλ κ²μ λ§νλ€. λ€μμ κ°λ°μκ° μ°Έμ¬νλ κ·λͺ¨κ° ν° νλ‘μ νΈμμ νμκ΄λ¦¬ ν΄(Git)μ μ¬μ©νλ νκ²½μμ μ λ§μ 컀λ°(commit)μ λν΄ μλμΌλ‘ λΉλ/ν μ€νΈ/λ³ν©μ μννλ©° μ»€λ° κ° μ½λ μΆ©λμ λ°©μ§ν μ μλ€.
νΉν, κΈ°λ₯λ³λ‘ μκ² μͺΌκ°μ΄ μλΉμ€λ₯Ό κ°λ°νλ MSAνκ²½μμλ κΈ°λ₯λ¨μμ κ°λ°μ μννκΈ° λλ¬Έμ κ° κΈ°λ₯μ μΆ©λμ λ°©μ§ ν μ μλ€.
β λΉ λ₯Έ λ²κ·Έ ν΄κ²°, μννΈμ¨μ΄ νμ§ κ°μ , μ λ°μ΄νΈ κ²μ¦ λ° λ¦΄λ¦¬μ¦ μκ° λ¨μΆ
π CI νλ‘μΈμ€λ₯Ό ν΅κ³Όν μ½λλ₯Ό λ°°ν¬νλ κ³Όμ
CIνλ‘μΈμ€μ μ½λ ν
μ€νΈ λ° λΉλ κ³Όμ μ μ΄μμμ΄ ν΅κ³Όν μ½λλ₯Ό μλμ μΌλ‘ λ°°ν¬νλ κ³Όμ μ ν΅νμ΄ CDλΌκ³ νλ©°,
μΈλΆμ μΌλ‘λ λ κ°μ λ¨κ³λ‘ λλμ μλ€ :
κ°λ¨ν μλ₯Ό μ¬μ©νμλ©΄, CIν΄μ μ΄μ©ν΄ μ½λ ν μ€νΈ λ° λΉλλ₯Ό κ±°μ³ μ§μμ μ λ¬μ ν΅ν΄ νν μ¬μ©λλ Githubμ 컀λ°λλ©΄, μ§μμ λ°°ν¬κ° ν΄λΉ 컀λ°μ κΈ°λ°μΌλ‘ μλΉμ€μ λν λ°°ν¬(μ λ°μ΄νΈ λ° ν«ν½μ€ λ±)λ₯Ό μ§ννλ κ²μ΄λ€. λ€λ§, λ¨μ Githubμ CI/CDκΈ°λ₯μ΄ μκΈ° λλ¬Έμ λ€λ₯Έ ν΄μ μ¬μ©ν΄ μ§νν μ μλ€.
β μ¬μ©μκ° μ΅λν λΉ λ₯Έ μκ°λ΄μ μ΅μ λ²μ μ νλ‘λμ 릴리μ¦λ₯Ό μ 곡 λ°μ μ μλ€.
CI/CD ν΄ : CI/CDλ₯Ό μ¬μ©νκΈ° μν΄μλ ν΄λΉ κΈ°λ₯μ μ 곡νλ ν΄μ μ¬μ©ν΄μΌ νλ€. (Jenkins, GitLab λ±)
Github : 무λ£λ‘ μ½λ(μμ€) κ΄λ¦¬ λ° λ°°ν¬κ° κ°λ₯ν μλΉμ€λ‘μ μμ€ μ½λκ° μ€ν(public)λμ΄ μ½λ κ°μ μ μμ΄ κ°λ₯ν μ€νμμ€ νλ‘μ νΈκ° νΉμ§μ΄λ€.
GitLab : μμ€μ½λλ₯Ό privateνκ² κ΄λ¦¬νκΈ° μν λκ΅¬λ‘ νμ¬ μ°¨μμμ μ€ννμ§ μλ νλ‘μ νΈκ΄λ¦¬μ μ¬μ©λλ©° CI/CIμ λν κΈ°λ₯μ΄ μΆκ°λμ΄ μλ€.
λΉλ λ° ν μ€νΈ λꡬλ‘μ Jenkinsκ° κ°μ₯ λ§μ΄ μ¬μ©λκ³ μλ€. μ΄λ 무λ£λ‘ μ¬μ©μ΄ κ°λ₯ν¨μΌλ‘ ν λꡬ(tool)μ λΉν΄ μ¬μ©μκ° λ§μ λ§μ λ νΌλ°μ€ λ° μ 보μ μ‘΄μ¬, μ€μΉ λ° μ¬μ©μ κ°λ¨, λΉ λ₯Έ νλ¬κ·ΈμΈ κ°λ°μλ λ±μ μ₯μ μ κ°μ§κ³ μλ€. CI/CDμ μ€μ μ μ λ§μ νλ¬κ·ΈμΈμ μ‘°ν©νμ¬ μ»€μ€ν ꡬμΆμ ν μ μμΌλ©° λμ²΄λ‘ λΉλ, 컀λ°, μ€μΊ λ° ν μ€νΈ, μ μ μ½λ λΆμμν, λ°°ν¬ νλ¬κ·ΈμΈμ λ§μ΄ μ¬μ©νλ€.
βπππβ¨