
π― μΈμν μ€νΈμ λν΄ μ 리ν©λλ€.
μΈμν μ€νΈ(UAT; User Acceptance Test)λ κΈ°λ₯μ΄ μꡬμ¬ν (requirement) λλ‘ κΈ°λ₯μ΄ κ΅¬νλμλμ§λ₯Ό μ¬μ©μ κ΄μ μμ κ²μ¦νλ μ μ°¨μ λλ€.
μ΄λ μ 체 μμ€ν μ μ¬μ©μ κ΄μ μμ μννλ λΈλλ°μ€ ν μ€νΈλ₯Ό ν¬ν¨νκ³ , μμ€ν μ΄ βκΈ°λ₯μ μΌλ‘β μ λμνλμ§λ§μ΄ μλλΌ, μ¬μ©μκ° μ€μ λ‘ μ¬μ©ν μ μμ μμ€μΈμ§λ₯Ό νμΈνλ λ° μ€μ μ λ‘λλ€.
π€ μΈμ ν μ€νΈ μ μλνκ° μ΄λ €μΈκΉ?
- μ¬μ©μ μ°Έμ¬ νμ : κΈ°μ μ μΈ‘λ©΄κ³Ό λΉκΈ°μ μ μΈ‘λ©΄μ λν μꡬμ¬νμ μ΅μ’ νμΈμ μ€μ¬μ©μμ¬μΌ ν©λλ€.
- μμ‘΄μ± ν΅ν© μ€ν : ν μ€νΈ μμ μ μ ν리μΌμ΄μ μ΄ μ€μ νκ²½μ²λΌ λͺ¨λ μμ‘΄μ± μλΉμ€μ ν¨κ» μ€νλμ΄μΌ ν©λλ€.
- μ€ν μ΄μ§ νκ²½ κ΅¬μΆ νμ : ν μ€νΈλ λ°λμ νλ‘λμ κ³Ό μ΅λν λμΌν νκ²½(μ€ν μ΄μ§)μμ μ΄λ£¨μ΄μ ΈμΌ ν©λλ€.
- μ ν리μΌμ΄μ λμΌμ± 보μ₯ : νλ‘λμ μ λ°°ν¬λ μ ν리μΌμ΄μ κ³Ό μμ ν λμΌν λΉλ κ²°κ³Όλ¬Ό(λ°μ΄λ리)μ μ¬μ©ν΄μΌ ν©λλ€.
- λ¦΄λ¦¬μ€ μ€λΉ : μΈμ ν μ€νΈλ₯Ό ν΅κ³Όν κ²°κ³Όλ¬Όμ λ°λ‘ 릴리μ€ν μ μλ νμ§μ κ°μΆκ³ μμ΄μΌ ν©λλ€.
μμμ μΈκΈν βλμΌν λ°μ΄λ리 μ¬μ©βμ 보μ₯νκΈ° μν΄ κΌ νμν μμκ° λ°λ‘ μν°ν©νΈ 리ν¬μ§ν 리π¦ μ λλ€.
μννΈμ¨μ΄ κ°λ° κ³Όμ μμ μμ±λλ ν¨ν€μ§, λ°μ΄λ리, λΌμ΄λΈλ¬λ¦¬ λ± κ²°κ³Όλ¬Όμ μ μ₯,κ΄λ¦¬,λ°°ν¬ν μ μλ μ€μ μ μ₯μλ₯Ό λ§ν©λλ€.
λ²μ κ΄λ¦¬, μ κ·Ό μ μ΄, μ΄λ ₯ μΆμ λ± λ€μν κΈ°λ₯μ μ 곡νλ©°, CI/CD νμ΄νλΌμΈμ κ° λ¨κ³κ° λμΌν μν°ν©νΈλ₯Ό μ¬μ©ν μ μκ² ν΄μ€λλ€.
μ€λλ λ§μ μ ν리μΌμ΄μ μ 컨ν μ΄λ κΈ°λ°μΌλ‘ μ΄μλλ©°, μ΄ κ²½μ° μν°ν©νΈλ μΌλ°μ μΈ ν¨ν€μ§κ° μλλΌ λ컀 μ΄λ―Έμ§(Docker Image)μ λλ€.
λ컀 μ΄λ―Έμ§λ₯Ό μ μ₯νκ³ κ΄λ¦¬νλ μ μ© μν°ν©νΈ μ μ₯μκ° λ°λ‘ λ컀 λ μ§μ€νΈλ¦¬(Docker Registry)μ λλ€.
ν΄λΌμ°λ λ°©μ λ μ§μ€νΈλ¦¬
Docker Hub
AWS ECR
GCP Artifact Registry
Azure Container Registry λ±
μ체 νΈμ€ν λ°©μ λ μ§μ€νΈλ¦¬
μ‘°μ§ λ΄λΆ 보μ μ μ± μ μΈλΆ μ μ₯μ μ¬μ©μ΄ λΆκ°λ₯ν κ²½μ° μ¬μ©ν©λλ€.
μ§μ ν΄λ¬μ€ν° λ΄μ λ μ§μ€νΈλ¦¬λ₯Ό μ€μΉνκ³ μ΄μν΄μΌ ν©λλ€.
κ°λ°μκ° λ³κ²½ν μ½λλ₯Ό GitHubμ νΈμ
Jenkinsκ° λ³κ²½μ κ°μ§νκ³ μ½λλ₯Ό μΈμΆν΄ λΉλλ₯Ό μμ, μ½λ μ κ²(λ¨μν μ€νΈ μν)
Jenkinsκ° λΉλλ₯Ό μλ£νμ¬ λ컀 μ΄λ―Έμ§λ₯Ό μμ±
Jenkinsκ° μμ±ν μ΄λ―Έμ§λ₯Ό λ μ§μ€νΈλ¦¬λ‘ νΈμ
Jenkinsκ° μ€ν μ΄μ§ νκ²½μ ꡬμ±νκ³ λ컀 컨ν μ΄λ μ€ν
μ€ν μ΄μ§ νκ²½μ λ컀 νΈμ€νΈκ° μ΄λ―Έμ§λ₯Ό κ°μ Έλ€κ°(Pull) 컨ν μ΄λλ₯Ό μ€ν
Jenkinsκ° μ€ν
μ΄μ§ νκ²½μμ μ€ν μ€μΈ μ ν리μΌμ΄μ
μ λμμΌλ‘ μΈμ ν
μ€νΈλ₯Ό μ€ν
μΆμ²: oreilly
μ½λ λ¨μμμ κΈ°λ₯μ΄ μ μλνλ κ²κ³Ό μ¬μ©μ μ μ₯μμ κ·Έ κΈ°λ₯μ΄ μ λλ‘ μ λ¬λλ κ²μ μ ν λ€λ₯Έ μ΄μΌκΈ°μ λλ€.
μλ₯Ό λ€μ΄, REST APIλ curl λͺ
λ Ήμ΄λ‘ ν
μ€νΈν μ μμ§λ§, λΉκ°λ°μμΈ μ€μ μ¬μ©μλ μ¬μ
λΆμ λ΄λΉμ μ
μ₯μμλ κ·Έ κ²°κ³Όλ₯Ό μ½κ³ μ΄ν΄νκΈ°κ° μ΄λ ΅μ΅λλ€.

λν μ΄λ° μμ ν μ€νΈλ μ½λκ° λ°λμλ‘ κ°±μ νκΈ° μ΄λ €μ μ μ§λ³΄μμλ μ·¨μ½ν©λλ€.
κ·Έλμ μ¬μ©μμ ν¨κ» μμ±νκ³ , λꡬλ μ΄ν΄ν μ μλ ννμ ν μ€νΈ λ°©μμ΄ νμν΄μ§λλ€. μ΄λ° λ°°κ²½μμ λ±μ₯ν κ²μ΄ λ°λ‘ BDDμ TDDμ λλ€.
BDDλ κΈ°λ₯ μꡬμ¬νμ μ¬μ©μ λλ νλ‘λνΈ μ€λμ μΈμ΄λ‘ νννκ³ , μ΄λ₯Ό ν μ€νΈλ‘ μ°κ²°νλ λ°©μμ λλ€.
μ¬μ©μ λλ PMμ΄ μΈμ κΈ°μ€μ λͺ νν μ μν©λλ€.
κ°λ°μλ ν΄λΉ κΈ°μ€μ λ§μΆ° ν μ€νΈ μλ리μ€λ₯Ό μμ±ν©λλ€.
μμ°μ΄μ κ°κΉμ΄ DSL(Domain-Specific Language)λ‘ μλλ¦¬μ€ μμ±ν©λλ€.
TDDλ ν μ€νΈλ₯Ό λ¨Όμ μμ±νκ³ , ν μ€νΈλ₯Ό ν΅κ³Όν μ μλ μ½λλ₯Ό ꡬννλ κ°λ° λ°©λ²λ‘ μ λλ€.
μΈμ κΈ°μ€μ ν μ€νΈλ‘ λ¨Όμ μμ±νμ¬ ν μ€νΈ ν΅κ³Όλ₯Ό κΈ°λ₯ ꡬν μλ£λ‘ κ°μ£Όν©λλ€.
TDDλ₯Ό λ§μ΄ λ€μμλλ° μ€μ λ‘ κ°λ μ μκ³ λλ ν μ€νΈλ₯Ό λ¨Όμ μμ±νκ³ , μ½λλ₯Ό ꡬννλ λ°©λ²μ΄λΌλ κ²μ λ³΄ν΅ μκ°νλ λ°©λ²μ΄ μλλΌμ μ κΈ°νλ€.