λλ©μΈ
- λλ©μΈ
- μννΈμ¨μ΄λ‘ ν΄κ²°νκ³ μ νλ λ¬Έμ μμ
- λλ©μΈμ μ¬λ¬ νμ λλ©μΈμΌλ‘ ꡬμ±
- ν νμ λλ©μΈμ λ€λ₯Έ νμ λλ©μΈκ³Ό μ°λνμ¬ μμ ν κΈ°λ₯μ μ 곡
- λλ©μΈμ μΌλΆ κΈ°λ₯μ μ체μμ€ν μΌλ‘ ꡬν, μΌλΆ κΈ°λ₯μ μΈλΆ μ 체μ μμ€ν μ μ΄μ©ν μ μμ
- λλ©μΈ ꡬμ±μ μν©μ λ°λΌ λ¬λΌμ§
λλ©μΈ λͺ¨λΈ(κ°λ λͺ¨λΈ)
- μ μ
- νΉμ λλ©μΈμ κ°λ μ μΌλ‘ ννν κ²
- λλ©μΈ μ체λ₯Ό μ΄ν΄νκΈ° μν κ°λ λͺ¨λΈ
- λλ©μΈ λͺ¨λΈμ μ¬μ©νμ¬ μ¬λ¬ κ΄κ³μλ€μ΄ λμΌν λͺ¨μ΅μΌλ‘ λλ©μΈμ μ΄ν΄νκ³ , λλ©μΈ μ§μμ 곡μ νλλ° λμμ΄ λ¨
- μ’
λ₯ ⇒ ννλ°©μμ λλ©μΈμ μ΄ν΄νλλ° λμμ΄ λλ€λ©΄ 무μμ΄λ μ¬μ© κ°λ₯
- UML νκΈ°λ²
- κ°μ²΄ κΈ°λ° λλ©μΈ λͺ¨λΈ (ν΄λμ€ λ€μ΄μ΄κ·Έλ¨)
- λλ©μΈμ΄ μ 곡νλ κΈ°λ₯ + λλ©μΈμ μ£Όμ λ°μ΄ν° ꡬμ±
- μν λ€μ΄μ΄κ·Έλ¨ κΈ°λ° λλ©μΈ λͺ¨λΈ
- μν μ μ΄λ₯Ό λͺ¨λΈλ§
- κ°μ²΄ κΈ°λ° λλ©μΈ λͺ¨λΈ (ν΄λμ€ λ€μ΄μ΄κ·Έλ¨)
- κ·Έλν μ΄μ©ν λλ©μΈ λͺ¨λΈλ§
- κ΄κ³κ° μ€μν λλ©μΈμΌ κ²½μ°
- μν 곡μμ νμ©ν λλ©μΈ λͺ¨λΈλ§
- κ³μ° κ·μΉμ΄ μ€μν κ²½μ°
- UML νκΈ°λ²
λλ©μΈ λͺ¨λΈ ν¨ν΄ (λλ©μΈ κ³μΈ΅μ κ°μ²΄λͺ¨λΈμ ꡬνν¨ν΄)
- μν€ν μ³μμ λλ©μΈ κ³μΈ΅μ κ°μ²΄ μ§ν₯ κΈ°λ²μΌλ‘ ꡬννλ ν¨ν΄
- μΌλ°μ μΈ μ ν리μΌμ΄μ
μν€ν
μ³
- νν - μμ© - λλ©μΈ - μΈνλΌμ€νΈλμ³ ( - DB )
- νν (Presentation) == μ¬μ©μ μΈν°νμ΄μ€(UI)
- μ¬μ©μμ μμ²μ μ²λ¦¬νκ³ μ¬μ©μμκ² μ 보λ₯Ό 보μ¬μ€
- μ¬μ©μ: SWλ₯Ό μ¬μ©νλ μ¬μ©μ & μΈλΆ μμ€ν
- μμ© (Application)
- μ¬μ©μκ° μμ²ν κΈ°λ₯μ μ€ν
- λλ©μΈ κ³μΈ΅μ μ‘°ν©ν΄μ κΈ°λ₯μ μ€ν
- λλ©μΈ
- μμ€ν μ΄ μ 곡ν λλ©μΈμ κ·μΉμ ꡬν (κ°λ λͺ¨λΈμ ꡬνκ³μΈ΅)
- μΈνλΌμ€νΈλμ³
- DBλ λ©μμ§ μμ€ν κ³Ό κ°μ μΈλΆ μμ€ν κ³Όμ μ°λμ μ²λ¦¬
- ν΅μ¬ κ·μΉμ ꡬνν μ½λλ λλ©μΈ λͺ¨λΈμλ§ μμΉνλ―λ‘ κ·μΉμ λ³κ²½/νμ₯ μ λ€λ₯Έ μ½λμ μν₯μ λ μ£Όκ² λ¨
*λλ©μΈ λͺ¨λΈμ λλ©μΈμ νννλ κ°λ μ μΈ λͺ¨λΈμ μλ―ΈνκΈ°λ νκ³ , λλ©μΈ κ³μΈ΅μ ꡬνν λ μ¬μ©νλ κ°μ²΄ λͺ¨λΈμ μλ―ΈνκΈ°λ ν¨
λλ©μΈ λͺ¨λΈ λμΆ
- μꡬμ¬ν λμ΄
- μꡬμ¬νμ ν΅ν΄ λλ©μΈ λ³λ‘ μ 곡ν΄μΌ νλ κΈ°λ₯μ μ μ
- κ°μ²΄μ κ΄λ ¨ κΈ°λ₯μ λ©μλλ‘ μΆκ°
- μ΄λ€ λ°μ΄ν°λ‘ ꡬμ±λλμ§ κ³ λ €νμ¬ κ°μ²΄μ νλ μΆκ°
- 2μ μꡬμ¬νλ³λ‘ λ©μλμ λ°μ(λλ©μΈ κ·μΉ λ°μ)
- κ°μ²΄ μμ±μ μ‘°κ±΄μ΄ μλ€λ©΄ μ΄λ₯Ό μμ±μμ λ°μ
- μνμ λ°λΌ μ μ½μ¬νμ΄ μλ°λ©΄ μ΄κ±°νμ μ μ΄μ©νμ¬ νν
μν°ν°μ λ°Έλ₯
- λλ©μΈ λͺ¨λΈμ ν¬κ² μν°ν°μ λ°Έλ₯λ‘ κ΅¬λΆλ¨
Entity
- κ³ μ ν μλ³μλ₯Ό κ°μ§λ κ°μ²΄
- μν°ν°μ μλ³μλ μν°ν°λ₯Ό μμ±-μμ -μμ ν λκΉμ§ λ°λμ§ μμ.
- μλ³μλ₯Ό μ΄μ©ν΄μ equals(), hashCode() λ©μλλ₯Ό ꡬνν μ μμ
- μλ³μ μμ±
- νΉμ κ·μΉμ λ°λΌ μμ±
- ex. μ£Όλ¬Έ λ²νΈ, μ΄μ‘μ₯ λ²νΈ, μΉ΄λλ²νΈ
- νν μ¬μ©νλ κ·μΉμ νμ¬ μκ°κ³Ό λ€λ₯Έ κ°μ ν¨κ» μ‘°ν©νλ κ²
- UUID μ¬μ©(Universally unique identifier)
- λ€μμ κ°λ° μΈμ΄μμ UUID μμ±κΈ°λ₯Ό μ 곡νκ³ μμ. (java.util.UUID class)
- μ§μ κ° μ
λ ₯
- ex. νμ μμ΄λ, μ΄λ©μΌ
- μΌλ ¨λ²νΈ μ¬μ©
- μ£Όλ‘ λλΉμμ μ 곡νλ μλ μ¦κ° κΈ°λ₯μ μ¬μ©
- ex. oracle - μνμ€, mysql - DB μλ μ¦κ° μΉΌλΌ
- μ£Όλ‘ λλΉμμ μ 곡νλ μλ μ¦κ° κΈ°λ₯μ μ¬μ©
- νΉμ κ·μΉμ λ°λΌ μμ±
Value
- μλ³μλ₯Ό κ°μ§μ§ μλ κ°μ²΄μ΄λ©΄μ κ°λ μ μΌλ‘ μμ ν νλλ₯Ό ννν λ μ¬μ©
- ex. [Value] Receiver = String recieverName + String receiverPhoneNumber [Value] ShippingInfo = String shippingAddress + String shippingZipcode
- λ°Έλ₯ νμ μ μ¬μ©ν¨μΌλ‘μ¨ μ¬λ¬κ°μ λ°μ΄ν°λ₯Ό λ¬Άμ΄ κ°λ μ μΌλ‘ μμ ν νλλ₯Ό μ ννν μ μμ
- λ°Έλ₯ νμ
μ΄ κΌ λκ° μ΄μμ λ°μ΄ν°λ₯Ό κ°μ ΈμΌ νλ κ²μ μλ → μλ―Έλ₯Ό λͺ
ννκ² νννκΈ° μν΄ λ°Έλ₯ νμ
μ μ¬μ©νκΈ°λ ν¨
- ex. int price → Money Price
- λ¨μν int νμ μΌλ‘ μ μΈν price νλλ₯Ό Money λΌλ λ°Έλ₯λ₯Ό μ¬μ©ν΄μ μ μνλ©΄ μλ―Έκ° λ λͺ νν΄μ§
- Money νμ μ μν κΈ°λ₯μ μΆκ°ν μ λ μμ (ex. λκ³μ°)
- λ°Έλ₯ κ°μ²΄μ λ°μ΄ν°λ₯Ό λ³κ²½ν λλ κΈ°μ‘΄ λ°μ΄ν°λ₯Ό λ³κ²½νκΈ° λ³΄λ€ λ³κ²½ν λ°μ΄ν°λ₯Ό κ°λ μλ‘μ΄ λ°Έλ₯ κ°μ²΄λ₯Ό μμ±νλ λ°©μμ μ νΈ → λ°Έλ₯λ λΆλ³μΌλ‘ ꡬννλ κ²μ κΆμ₯
- λΆλ³ νμ
(immutable) : λ°μ΄ν° λ³κ²½ κΈ°λ₯μ μ 곡νμ§ μλ νμ
- μμ ν μ½λ μμ±μ΄ νμν κ²½μ° μ¬μ©
- μ°Έμ‘° ν¬λͺ μ± & μ€λ λμ μμ ν νΉμ§
- λΆλ³ νμ
(immutable) : λ°μ΄ν° λ³κ²½ κΈ°λ₯μ μ 곡νμ§ μλ νμ
- λ κ°μ²΄κ° κ°μμ§ λΉκ΅ν λ...Value: λͺ¨λ μμ±μ΄ κ°μμ§ λΉκ΅
- Entitiy: μλ³μλ₯Ό λΉκ΅
- μν°ν°μ μλ³μμ μ€μ λ°μ΄ν°λ String κ³Ό κ°μ λ¬Έμμ΄λ‘ ꡬμ±λλ κ²½μ°κ° λ§μ§λ§, μλ³μλ λ¨μν λ¬Έμμ΄μ΄ μλ λλ©μΈμμ νΉλ³ν μλ―Έλ₯Ό μ§λλ κ²½μ°κ° λ§λ€.
- → μλ³μλ₯Ό μν λ°Έλ₯ νμ μ μ¬μ©ν΄μ μλ―Έκ° μ λλ¬λλλ‘ ν μ μμ. ex. String [Order.id](<http://order.id>) → OrderNo Order.id
- get/set λ©μλλ₯Ό 무쑰건 μΆκ°νλ κ²μ λλ©μΈμ ν΅μ¬ κ°λ μ΄λ μλλ₯Ό μ½λμμ μ¬λΌμ§κ² νλ―λ‘ μ’μ§ μμ
- λλ©μΈ κ°μ²΄κ° λΆμμ ν μνλ‘ μ¬μ©λλ κ²μ λ§μΌλ €λ©΄ μμ±μλ₯Ό ν΅ν΄ νμ λ°μ΄ν°λ₯Ό λͺ¨λ λ°μμΌ νλ€.
- μμ±μ νΈμΆ μμ μ λ°μ΄ν°λ₯Ό κ²μ¬ν μ μμ
λλ©μΈ μ©μ΄
- λλ©μΈμ μ¬μ©νλ μ©μ΄λ₯Ό μ΅λν μ½λμ λ°μν μ μλλ‘ ν΄μΌν¨
- μ½λ ↔ λλ©μΈ μ©μ΄ κ° ν΄μ κ³Όμ μ΄ μ€μ΄λ¬
- μ½λ κ°λ μ± λμμ Έμ λΆμ/μ΄ν΄νλ μκ° μ μ½
- λλ©μΈ μ©μ΄λ₯Ό μ¬μ©ν΄μ μ΅λν λλ©μΈ κ·μΉμ μ½λλ‘ μμ±νκ² λλ―λ‘ λ²κ·Έλ κ°μ
'BE > DDD' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[DDD Start!] 3. μ κ·Έλ¦¬κ±°νΈ (0) | 2021.06.09 |
---|---|
[DDD Start!] 2. μν€ν μ³ κ°μ (0) | 2021.06.07 |