π 1. μλ‘
2022λ 12μ 7μΌλΆν° 3μΌκ° μΉ΄μΉ΄μ€μμ κ°λ°μ 컨νΌλ°μ€λ₯Ό μ§νν©λλ€.
μΉ΄μΉ΄μ€μμ μ¬μ§νλ κ°λ°μλΆλ€μ΄ μ§μ 10μ 15μΌ λ°μν μ₯μ μμΈ λΆμκ³Ό κ°μ μ¬νμ 곡μ νκ³ , μΉ΄μΉ΄μ€μμ κΈ°μ μ λν΄ κ³ λ―Όν νμ μ΄λ μ¬λ¬ μ 보λ€μ 곡μ νλ μ’μ μλ¦¬κ° μ΄λ Έμ΅λλ€.
μ μ κ°λ°μκ° λκΈ°λ₯Ό ν¬λ§νλ νμμΌλ‘μ¨ νμ§μμ λ§μ λ€μ μ μλ€λ μ , μμ¦ 'λ°±μλ'μμ μ£Όμνκ³ μλ κΈ°μ /μν€ν μ²λ 무μμΈμ§ νμ ν μ μλ€λ μ , λ―Έλμ μ₯μ λ₯Ό 극볡νκ³ μλ°©ν μ μλ κ°λ°μκ° λκΈ° μν ννΈλ₯Ό μ»μ μ μλ€λ μ μμ κ΅μ₯ν 맀λ ₯μ μΈ μ»¨νΌλ°μ€μμ΅λλ€.
곧λ°λ‘ μ¬μ λ±λ‘μ μ μ²νκ³ , κ΄μ¬μλ μΈμ μ λν΄ νμνμ΅λλ€.
πͺ 1-1. λ°±μλ μΈμ
λ°±μλ μΈμ μλ μ΄ 15κ° μΈμ μΌλ‘, κ΅μ₯ν κ΄μ¬μλ ννΈκ° λ§μμ΅λλ€. κ·Έλ¬λ λ무 λ§μ μμ λ€ λ€μ μλ μμ§λ§, νμ κ΄μ¬μλ λΆμΌμ λν 컨νΌλ°μ€λ₯Ό λ³΄κΈ°λ‘ νμ΅λλ€.
πͺ API μ£Όλ ν μ€νΈ κ°λ°μ μμ
μΈλ» λ΄€μ λλ, TDD(ν μ€νΈ μ£Όλ κ°λ°)μ λν λ΄μ©μΈκ°? νκ³ μ 보μλλ API μ£Όλ ν μ€νΈ κ°λ°μ λλ€.
ν μ€νΈ μ½λμ λν μ€μμ±μ μ΅ν μκ³ μκ³ , μλ ν΄λ³΄λ € νμ§λ§ μ½κ² μμνκΈ° μ΄λ ΅λκ΅°μ.
μΉ΄μΉ΄μ€μμλ μ΄λ€μμΌλ‘ ν μ€νΈλ₯Ό μ§ννκ³ μλμ§ κΆκΈνκ³ , μ΄λ° λ°©λ²μ΄ μꡬλ~ νλ λλμΌλ‘ λ€μ΄λ³΄λ € ν©λλ€.
πͺ λλμ κ΄κ³ λ°μ΄ν° νν° κΈ°λ₯ κ°λ°κΈ° : ESνν λΊ¨ λ§κ³ Citusμκ² μκΈ΄ μ°
μ μ»€λ¦¬μ΄ λΉμ μλ νμ 'λλ, λ§μ μ¬λλ€'μ΄ ν¬ν¨λ©λλ€. μ λ§μ μμ²μ λ³λ€λ₯Έ λ¬Έμ μμ΄ μ²λ¦¬ν΄, κ°λ₯ν λ§μ μ¬λλ€μ΄ μλΉμ€λ₯Ό μ΄μ©ν΄ μν₯λ ₯μ νΌμΉλ κ²μ κΏμ΄μ λͺ©νμ λλ€. μμ 'λλ'μ΄λΌλ ν€μλκ° μ λͺ©μ ν¬ν¨λμ κ½νκ³ λ§μμ΅λλ€. λ°μ΄ν° νν°λ μλ§μ λ°μ΄ν°μ λν΄ κ° μ‘°κ±΄μ λ°λΌ λΉ λ₯΄κ³ μ ννκ² νν°λ§ν΄μΌ νλ κ²μ΄ κ΄κ±΄μΈλ°, μ΄λ₯Ό λ§μ‘±νκΈ° μν΄ μ΄λ€ μλλ₯Ό νμ ¨λμ§ κΆκΈν΄μ‘μ΅λλ€. κ°μΈμ μΌλ‘ κ΅μ₯ν κΈ°λλλ ννΈ μ€ νλμ λλ€.
πͺ μΉ΄μΉ΄μ€ν‘ λ©μμ§ μμ€ν μ¬κ±΄μΆ μ΄μΌκΈ°
ν₯λ―Έλ₯Ό μ΄λ λΆλΆμ, μμ€ν μ μ¬κ±΄μΆνλ©΄μλ νμ¬ μΉ΄μΉ΄μ€ν‘μ μ¬μ©νκ³ μλ μ¬μ©μμκ²λ μλ¬΄λ° μν₯μ΄ μμ΄ μ§νλμλ€λ κ²μ λλ€. λ―Έλμλ μλ€λ©΄ μ μ§λ³΄μ, ν¬λ€λ©΄ μ¬κ±΄μΆ νΉμ κ°νΈμ κ²ͺκ² λ κ²μΈλ° μ΄λ€ μμΌλ‘ μ§ννλμ§ κΆκΈν΄μ‘μ΅λλ€.
πͺ μΉ΄μΉ΄μ€ T λ리 μ κ· μ»€λ₯μ μλ² κ°λ°κΈ°
ννΈ μ λͺ©μ 보μμ λ, μΉ΄μΉ΄μ€ λͺ¨λΉλ¦¬ν°μ μΉ΄μΉ΄μ€ T λ리 μλΉμ€λ₯Ό μ¬μ©μ - μ΄μ μλ₯Ό μλ‘ λ§€μΉν΄μ£Όλ 컀λ₯μ μλ²λ₯Ό μλ‘ κ°λ°ν κ² κ°μ μμ²ν μμ μ λλ€. μ κ· μλ²λ₯Ό κ°λ°ν λ μ΄λ€ κ²μ μ€μ μΌλ‘ μκ°νλμ§, μ΄λ€ μ μ΄ μ΄λ €μ λ μ§ λ± μμν μ΄μΌκΈ°λ₯Ό λ€μ μ μμ κ² κ°μ κΈ°λκ° λ©λλ€.
πͺ JVM warm up
μλ°λ₯Ό μ¬μ©ν΄ λ°±μλ μλ²λ₯Ό κ°λ°νλ μ μ₯μμ JVMμ μ΄ν΄ν΄μΌ μ±λ₯ κ°μ μ΄ κ°λ₯νκ³ , μλ°λ‘ ꡬνν λ λ ν¨μ¨μ μΈ μ½λλ₯Ό λ§λ€ μ μμ κ²μ΄λΌ μκ°ν©λλ€. μ§λμΉκ² νλν ννΈλ μλκΉ νμ§λ§, warm upμ΄κΈ° λλ¬Έμ μ‘°κΈ μμμ λλ€μ.
πͺ μλ¦Ό μλΉμ€λ‘ μμνλ μλ² κ°λ°
μλ¦Ό μλΉμ€λ μ΄λ»κ² μλ²λ₯Ό ꡬμ±νλμ§ κΆκΈν΄μ‘μ΅λλ€. λ¨ ν λ²λ μκ°ν΄λ³Έ μ μ΄ μμ΄ μ΄μΌκΈ°λ₯Ό μ§μ λ£λ κ²μ΄ λμμ΄ λ κ² κ°μ΅λλ€.
πͺ γ·γ·γ· : Domain Driven Designκ³Ό μ μ© μ¬λ‘ 곡μ
λ§μ λκ·λͺ¨μ IT μλΉμ€ νμ¬λ€μ΄ DDDλ₯Ό μ μ©νκ³ μμ΅λλ€. λͺ¨λ κ²½μ°μ DDDκ° μ’μ κ²μ μλκ³ λΆλͺ λͺ¨λ리μμ΄ μ’μ μ λ μμ κ²μ λλ€. μ μ© μ¬λ‘λ₯Ό 보면μ DDDμ λν΄ λ μ΄ν΄νκ³ μΆμ λ§μμ λλ€.
πͺ 1-2. λ¬Έν μΈμ
λ¬Έν μΈμ μμλ λμ λλ νλ‘κ·Έλ¨μ΄ 2κ° μμμ΅λλ€.
πͺ μ΄λ ₯μ μμ±μ΄ μ²μμ΄λΌλ©΄, μ±μ©νμ΄ μλ €μ£Όλ κ°λ°μ μ΄λ ₯μ μμ± κΏν!
μ무λλ, μ·¨μ€μμ΄λ€λ³΄λ λ΄κ° μμ±ν μ΄λ ₯μμ ν¬νΈν΄λ¦¬μ€μ λν νμ μ΄ νμνμ΅λλ€. κ·Έλ¬λ€λ³΄λ μμ°μ€λ½κ² λμ΄ κ° μ λ°μ μμμ΅λλ€.
πͺ μΉ΄μΉ΄μ€νμ΄ μλ² κ°λ°μλ‘ μΌνλ€λ κ²
λ°±μλ κ°λ°μκ° λκ³ μΆμ μ¬λμΌλ‘μ¨, νμ§ μλ² κ°λ°μμ μμν μ΄μΌκΈ°λ₯Ό λ€μ μ μλ€λ κ²μ κ΅μ₯ν μ₯μ μ λλ€. μΆν 컀리μ΄μλ μ§μ μ°κ΄μ΄ μκΈ° λλ¬Έμ κ΄μ¬μ΄ μκ²Όμ΅λλ€!
π 2. κΈ°λ
νμμΈ μ μ₯μμ μ€μ νμ§μλ€μκ² μ΄λ° μμ§μ μ 보λ₯Ό μ»κΈ°λ μ½μ§ μμ΅λλ€.
μ΄λ° μ’μ κΈ°νλ₯Ό κ΄μ¬μλ μΈμ μ λ§κ² μ νν΄μ λ³Ό μ μλ€λ κ²μ μ’μ κΈ°νμΈ κ² κ°μ΅λλ€.
μμΌλ‘ λ€λ₯Έ 컨νΌλ°μ€μλ μ°Έμ¬ν΄μ λ€μν κ°λ°μμ μ΄μΌκΈ°λ₯Ό λ£λ κ²½νμ μλλ‘ νκ² μ΅λλ€.
μΉ΄μΉ΄μ€ κ°λ°μ 컨νΌλ°μ€μ λ§μ κΈ°λκ° κ°λ€μ.
12μ 7μΌμ νκ³ λ₯Ό μ§ννκ³ , 12μ 8μΌ λͺ©μμΌλΆν° 본격μ μΌλ‘ μΈμ μ΄ μμλ©λλ€.
12μ 8μΌλΆν° μΈμ μ μ°Έμ¬νκ³ μλ‘κ² μ»μ μ§μκ³Ό μ μκ°μ λΈλ‘κ·Έμ 곡μ νλλ‘ νκ² μ΅λλ€.