μ€μν λλ©μΈ λ‘μ§μ λλ©μΈμΌλ‘ νμ.
Service Layer μ set λ©μλκ° μμΌλ©΄ μΌλ¨ μμ¬ -> μ΄ λΆλΆμ λλ©μΈ μμμΌλ‘ λ³κ²½ν μ μλλ‘ νμ
Aggregate
Entity + Value μ κ°λ
(ν¬ν¨κ΄κ³μ μλ€, μ¦ μ¬λ¬κ°μ Entity + Value μ λͺ¨μμ΄ λ μ μμ.)
(λΌμ΄ν μ¬μ΄ν΄μ΄ λμΌν κ°λ₯μ±μ΄ λλ€)
Aggregate μ Root λ₯Ό λ§λ€κ³ , μΌκ΄μ±(Consistency)μ΄ κΉ¨μ§μ§ μλλ‘ Rootμ μ± μμ λΆμ¬
- μΌκ΄μ±μ΄λ ꡬμ±μμλ€ κ°μ λΆμΌμΉκ° μ‘΄μ¬νμ§ μλ κ².
μ¦, Root λ₯Ό ν΅ν΄μλ§ νμ Value λ€μ λ³κ²½ν μ μλλ‘ ν¨.
(μ¬κΈ°μ value κ° μμ λ§μ pk λ₯Ό κ°μ§κ³ μμ§ μκΈ° λλ¬Έμ value μ.. Entityλ DB λ‘ λ΄€μ λ pkκ° ν¬ν¨λ ν μ΄λΈμ΄λΌ λ³Ό μ μμΌλ..)
Value λ³κ²½
- Set μ ν΅νμ¬ κΈ°μ‘΄κ°μ λ³κ²½νλ λ°©λ²
- New λ₯Ό νμ¬ κΈ°μ‘΄κ°μ λ³κ²½νμ§ μκ³ μλ‘ λ§λλ λ°©λ²
2κ°μ§ λ°©λ²μ΄ μ‘΄μ¬.
νμ§λ§, 2λ² λ°©λ²μ μΆμ² μ΄μ λ new λ₯Ό μ¬μ©ν κ²½μ° λΆλ³(Immutable) μ΄ λλ©°, λΆλ³μ΄ λμμ κ²½μ° μ½λ λΆμμ΄ μ©μ΄νλ€.
(μκ°ν΄λ³΄λ©΄, λΉμ°ν μλ μλ κ²… νΉν Map κ°μ Collection κ°μ²΄λ€λ‘ μμ§μΌ λ, Map μ λ£μ΄μ Map μ λ°κ³ … Map μ Key κ°μ΄ λ³κ²½λλ κ²½μ°λ μμ΄μ μ¬μ μ λ³΄λ‘ μ μ μλ κ²λ€μ get μΌλ‘ κ°μ Έμ€λ κ²½μ° κ·Έκ²μ΄ μ΄μ λΆν° μλ κ°μΈμ§, μ κ·κ°μΈμ§λ ν΄λΉ λ©μλ νΉμ 쿼리 μͺ½μ μ§μ κΉλ³΄μ§ μλ ν λͺ¨λ¦)
-
λΆλ³μ λν΄μ μκ°ν΄λ³΄λ©΄ μΌλ¦¬λ μλ€κ³ μκ°ν¨. κ·Όλ° μλ°μμ λΆλ³μΌλ‘ μ¬μ©νλ €λ©΄ final μ λΆμ¬μ μ¬μ©νλλ°, κ°μ²΄λ Map κ°μ 건 final ν€μλλ₯Ό μ¬μ©ν΄λ λ³κ²½ν μ μλ κ±Έλ‘ μκ³ μμ.. μ΄ λΆλΆμ λ°λ‘ λ μ°Ύμλ΄μΌ ν μ£Όμ )
-
Repository = Aggreate λ¨μλ‘ μ‘΄μ¬
(μ΄ λΆλΆμ μ’ ν·κ°λ¦Ό. Repository λ₯Ό μ¬ν DB ν μ΄λΈ λ¨μλ‘ μκ°νκ³ μμκ³ , Entitry = Repository λ‘ μκ°νκ³ μμμ.
κ·Όλ° κ°μκΈ° μ λ° λ±νΈκ° μ±λ¦½λλ€κ³ νλ©΄…? ν¬ν¨κ΄κ³κ° μ±λ¦½λλ€κ³ λ νλ 3κ°μ κ΄κ³κ° λͺ ννκ² μ‘νλ κ²μ μλ)
μΆνμλ Aggregate λ μ΄λκΉμ§ μ μν μ μλμ§ νμΈν΄λ³΄λλ‘ ν¨.