SVN λΈλμΉ μ λ΅ μΈμ°κΈ°
π SVNμΌλ‘ μ΄λ»κ² λ²μ κ΄λ¦¬λ₯Ό νλ κ²μ΄ μ’μκΉ?
SVN
μ μ΄μ©ν λ²μ κ΄λ¦¬ μμ€ν
μ λ λ²μ§Έ ν¬μ€ν
μ
λλ€.
μ΄λ² ν¬μ€νΈμμλ SVN
μ νμ©ν λΈλμΉ μ λ΅μ μ΄μ μ λ§μΆ°λ³΄λλ‘ νκ² μ΅λλ€.
π Git Flow?
λ²μ κ΄λ¦¬ μμ€ν
μ λν΄μ 곡λΆνλ€ λ³΄λ©΄ (νΉν git
) git-flow
μ λν΄μ ν λ²μ―€μ λ³΄κ² λ©λλ€.
μ΄κ±Έ μ²μ λ΄€μ λλ μ΄λ³΄λ€ μλ²½ν λ²μ κ΄λ¦¬ λ°©λ²μ μμ κ² κ°λ€κ³ μκ°νμ΅λλ€.
λλ΅μ μΌλ‘ μ΄λ¬ν νλ¦μ κ°μ§κ³ μμ΄μ
SVN
μ λ²μ κ΄λ¦¬ μμ€ν
μΌλ‘μ λ³΄λ€ μμ νκ² μ¬μ©νκΈ° μν΄μ
μ격ν git-flow
λ°©μμ μ°¨μ©νλ κ²μ μ΄λ¨κΉ κ³ λ―Όνκ³ μμμ΅λλ€.
곧λ°λ‘ κ°μ΄ μΌνλ κ°λ°μλΆμκ² νΌλλ°±μ μμ²νλ μ μκ² μ΄λ κ² λ°λ¬Ένμ ¨μ΅λλ€.
λ§μ½ νΉμ κΈ°λ₯μ νΉμ νμμ λ°μν΄λ¬λΌκ³ νλ μμ²μ λν΄μλ μ΄λ»κ² λ€λ£° μ μμκΉμ?
μ λ λ΅λ³μ μ λλ‘ ν μ μμκ³ git-flow
λ νμ¬ μ°λ¦¬ νλ‘μ νΈμ μ±κ²©κ³Ό
μ λ§μ§ μμ λ€λ₯Έ λ°©λ²μ μ°ΎμμΌ νλ€λ κ²μ μκ² λμμ΅λλ€.
π μ°λ¦¬κ° Git Flowλ₯Ό μ¬μ©νμ§ μμ μ΄μ
νμ¬ μ κ° νμ¬μμ μ§ννκ³ μλ νλ‘μ νΈλ λΉ λ₯Έ μ£ΌκΈ°λ‘ μλ‘μ΄ κΈ°λ₯λ€μ΄ μΆκ°λκ³
κ²μ¦κ³Όμ μ κ±°μ³ μ΄μ λ² ν(μ€μ μ΄μ λ°λ‘ μ§μ μ λ²μ )μ λ°°ν¬λκ³ μμ΅λλ€.
λμννλ©΄ λ€μκ³Ό κ°μ νλ¦μΌλ‘ μ±μ΄ λ°°ν¬λκ³ μλ κ²μ λλ€.
κ°λ° -> κ²μ¦ -> μ΄μλ² ν -> μ΄μ
κ°λ°
μμ μꡬμ¬νμ ꡬννκ³ ,
κ²μ¦
μμ QA λΆλ€κ³Ό ν¨κ» κ²μλ₯Ό μ§ννλ©°
μ΄μ
μ μ¬λ¦¬κΈ° μ μ΄μ λ² ν
μμ μ΅μ’
νμΈμ μ§ννλ ννμ
λλ€.
μ΄ κ³Όμ μμ μ¬μ μ μΈ μ건, λλ κΈ°ν μ¬λ¬ κ°μ§ λ¬Έμ λ‘
κ°λμ©μ νΉμ κΈ°λ₯μ λ°μμ λ¨Όμ ν΄λ¬λΌλ μμ²μ΄ λ€μ΄μ€κ±°λ
μ΄λ² λ°°ν¬μμλ μ μΈν΄λ¬λΌλ λΆνμ λ°μ λκ° μμ΅λλ€ π .
λ§μ½ μ¬κΈ°μ μ μμ μΈ Git-Flow
λ₯Ό μ¬μ©νκ² λλ©΄
μ΄μ μ dev
λΈλμΉμμ νμλμ΄ μ½λ λ°μμ΄ λλ feature
λΈλμΉμ λ΄μ©μ΄
κ·Έλλ‘ κ²μ¦ νκ²½μΌλ‘ λμ΄κ°λ λ¬Έμ κ° μκΈΈ μ μλ κ²μ λλ€.
κΈ°λ₯ λ¨μλ‘ μ μ΄νκΈ°λ₯Ό μνλ μ ν¬ νλ‘μ νΈ μ±κ²©μλ λ§μ§ μμμ΅λλ€.
π λ ν¨μ¨μ μΈ λ°©λ²μ 무μμΌκΉ?
λΈλμΉ μ λ΅μΌλ‘ ν΄κ²°νκ³ μΆμ λ¬Έμ λ€
λ°λΌμ μ ν¬λ λ€μκ³Ό κ°μ 쑰건λ€μ λ§μ‘±νλ λΈλμΉ μ λ΅μ λν΄μ κ³ λ―Όνμ΅λλ€.
- μλ‘μ κ°λ° μμμ μν₯λλ₯Ό μ΅μνν μ μμ΄μΌ νλ€.
- κΈ΄κΈ λ°μμ΄λ νΉμ κΈ°λ₯μ λν μμ λ° λ°μ 건λ μ²λ¦¬ν μ μμ΄μΌ νλ€.
- λ€μμ κ°λ°μκ° μ¬μ©νκΈ° λλ¬Έμ μ§κ΄μ μ΄λ©° 볡μ‘νμ§ μμ μ λ΅μ΄μ΄μΌ νλ€.
κ·Έλμ λ€μκ³Ό κ°μ΄ λλμμ΅λλ€
λ°λΌμ μ ν¬λ λ€μκ³Ό κ°μ΄ λΈλμΉλ₯Ό λλμ΄ νμμ κ΄λ¦¬νκΈ°λ‘ κ²°μ νμ΅λλ€.
app, feature, develop, stage, beta, trunk
κ°κ°μ λΈλμΉμ λν μ©λλ λ€μκ³Ό κ°μ΅λλ€.
app λΈλμΉ
app
λΈλμΉλ μΈμ£Ό κ°λ°μκ° μ£Όλ‘ μμ
νλ μμμ
λλ€.
νλ‘μ νΈ μν© μ λͺ¨λ μΈμ£Ό κ°λ°μ λΆλ€μκ² μλ‘μ΄ λΈλμΉ μ λ΅μ μ€λͺ νκ³ μ΄λ₯Ό μ μ© μλ λΉμ©μ΄ ν¬λ€κ³ νλ¨νμ΅λλ€.
λν λ°°ν¬μ λν κΆνμ λͺ¨λ λ΄λΆ κ°λ°μλ€μκ² μμ΄μ, μ½λ merge μ μμ μ΄ νμν λΆλΆμ νμ μ΄ κ°λ₯ν ꡬ쑰μμ΅λλ€.
κ°λ¨ν UI μμ μ΄λ κΈ°λ₯μ μν₯μ μ£Όμ§ μλ μμ μμ λ€μ λ΄λΆ κ°λ°μλ λ³λμ feature
λΈλμΉλ₯Ό trunk
μμ μμ±νμ§ μκ³ app
λΈλμΉλ₯Ό ν΅ν΄ ν΄κ²°νλ κ²μΌλ‘ κ²°μ νμ΅λλ€.
feature λΈλμΉ
JIRA
ν°μΌ μ΄μλ μμ€ μ λ°μ μΌλ‘ μν₯λκ° ν° μμ
λ€μ feature
λΈλμΉλ₯Ό μμ±ν΄μ μμ
ν©λλ€.
μ΄λ λ°λμ feature
λΈλμΉλ trunk
λ‘λΆν° μμ±ν©λλ€.
develop λΈλμΉ
κ°λ°κ³ μλ²μ λ°°ν¬λλ μμ€ λ²μ μ μν λΈλμΉμ λλ€.
stage λΈλμΉ
κ²μ¦κ³ μλ²μ λ°°ν¬λλ μμ€ λ²μ μ μν λΈλμΉμ λλ€.
beta λΈλμΉ
μ΄μ λ² νμ λ°°ν¬λλ μμ€ λ²μ μ μν λΈλμΉμ λλ€.
λ§μΌ λ°°ν¬ μΌλ³λ‘ beta
λΈλμΉμ μ΅μ’
λ²μ μ μ΄μκ³ μλ²λ‘ λ°°ν¬κ° μ΄λ£¨μ΄μ§λλ€.
trunk
μ€μ μ΄μκ³μ λ°°ν¬λμ΄μλ μμ€ λ²μ μ λλ€.
κ°κ°μ trunk
λ²μ μ ν΄λΉ λ²μ κ³Ό κ°μ beta
λΈλμΉ μμ€ μ½λμ λμΌν νμμ κ°μ§λλ€.
λΈλμΉλ₯Ό μ¬μ©ν λ μ§μΌμΌ ν κ·μΉλ€
μ΄μ μ λΈλμΉλ€λ‘ μμ μ μ§νν λ κΌ μ§μΌμΌ ν λͺ κ°μ§ κ·μΉλ€μ μ νμ΅λλ€.
1οΈβ£ featureλ trunk λ‘λΆν° μμ±νλ€.
μ΄μ λ²μ κ³Όμ μ±ν¬μ μν₯λλ₯Ό μ€μ΄κΈ° μν΄ κ°κ°μ feature
λ λ©μΈ trunk
λ‘λΆν° μμ±ν©λλ€.
μ΄λ₯Ό ν΅ν΄ μ΄μ λ°°ν¬μ μν₯λλ₯Ό μ€μΌ μ μκ³ νμν κΈ°λ₯λ§ κ²μ¦ ν μ΄μμ λ°°ν¬ν μ μμ΅λλ€.
κ°λ°μ΄ μλ£λ feature
λ λ°°ν¬λμ΄μΌ ν λΈλμΉλ‘ κ°κ° λ³ν©ν©λλ€.
2οΈβ£ κΈ°λ₯ κ°λ° ν κ°κ°μ λΉλ λΈλμΉλ‘ μ΄λν΄μ merge ν λ€ λΉλνλ€.
μ΄μλλ μλ²κ³μ λ°λΌμ λ°μλμ΄μΌ νλ μ½λ νμμ΄ λ¬λΌμ§λ μꡬ μ‘°κ±΄μ΄ λ°μν μ μκΈ° λλ¬Έμ
develop -> stage
νΉμ stage -> beta
μ κ°μ λ¨λ°©ν₯ merge
λ λΆκ°λ₯ν©λλ€.
λ°λΌμ κ°κ°μ λΉλλ ν΄λΉ λΈλμΉλ‘ μ΄λ ν νμν κΈ°λ₯μ merge
ν λ€ μ§νν©λλ€.
3οΈβ£ μ΄μ λ°°ν¬λ κ°μ₯ μ΅μ μ beta λΈλμΉμ μ±ν¬λ₯Ό λ§μΆλ€.
μ¬μ©μκ° μ¬μ©νκ² λλ μ€μ μ΄μ λ²μ μ beta
λΈλμΉμ νμ μ€ κ°μ₯ μ΅μ κ³Ό λκΈ°νμν΅λλ€.
beta
λΈλμΉλ μ΄λ―Έ κ²μ¦μ΄ μλ£λ μνμ΄κ³ λ μ΄μμ κΈ°λ₯ μΆκ°κ° λ°μνμ§ μμμΌ νκΈ° λλ¬Έμ
ν΄λΉ λ²μ μ λ°λ‘ μ΄μ λ°°ν¬μ μ¬μ©νλλ‘ μ μνμ΅λλ€.
4οΈβ£ λΉλ(κ°λ°, κ²μ¦, μ΄μ) λ²μ μλ Tagλ₯Ό ν΅ν΄μ λ²μ μ 보λ₯Ό λͺ μν©λλ€.
κ°κ°μ λΉλ λ²μ μμ Tag
λ₯Ό λΆμ΄λ μμ
λν μ€μν©λλ€.
μ΄λ₯Ό ν΅ν΄μ λΉλ λ²μ λ§λ€ μμ€μ½λ λ°±μ λ³Έμ κ°μ§ μ μκΈ° λλ¬Έμ, λ§μ½ νΉμ λ²μ μμ λ¬Έμ κ° λ°ννλ€λ©΄
ν΄λΉ λ²μ μ μμ€ μ½λμμ λ¬Έμ μ μ μ°Ύμ μμ ν λ€ λ°°ν¬ν μ μμ΅λλ€.
π κ·Έ μΈ λ΄λΆμ μΌλ‘ μ ν κ²λ€
μ΄ μΈμλ ν¨μ¨μ μΈ νμ
μ μν΄ λ΄λΆμ μΌλ‘ λ€μκ³Ό κ°μ rule set
μ λ§λ€μ΄μ μ¬μ©νκ³ μμ΅λλ€.
- SVN μ Gitκ³Ό κ°μ΄ νμ¬ λΈλμΉ μμΉκ° μ΄λμΈμ§ λνλμ§ μμ
commit
μ μ€μλ₯Ό μ λ°ν μ μμΌλ―λ‘ μ€μν λͺ λ Ήλ€μ μ μ€ν¬λ¦½νΈλ‘ κ°μ νλλ‘ νμ΅λλ€.- λΈλμΉλͺ μ μ΄μλͺ νΉμ μΆκ°λλ κΈ°λ₯λͺ μΌλ‘ μ μνμ΅λλ€. ν°μΌλ²νΈκ° λΈλμΉλͺ μΌλ‘ μ¬μ©λ©λλ€.
- λ§μ½ ν°μΌμ΄ μμ§ ν λΉλμ§ μμκ³ , κΈνκ² μμ μ΄ νμν μ¬νμ΄λΌλ©΄ κΈ°λ₯λͺ μΌλ‘ μ μν©λλ€.
- νμ¬ λ€λκ³ μλ νμ¬μμλ
JIRA
λ₯Ό μ΄μ©ν΄μ μ΄μλ₯Ό ν°μΌ ννλ‘ κ΄λ¦¬νκ³ μκΈ° λλ¬Έμ
'π¨βπ» web.dev > ops' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
GitHub Actions λ₯Ό νμ©ν release bot λ§λ€κΈ° (0) | 2023.04.24 |
---|---|
SVN μ μ΄μ©ν νμκ΄λ¦¬ PART.1 - SVN μ΄λ? (0) | 2022.03.01 |
π¬ λκΈ