π€ Chapter 4: μ€μ©μ£Όμ νΈμ§μ¦
Tip 36. μ¬λ¬λΆμ μλ²½ν μννΈμ¨μ΄λ₯Ό λ§λ€ μ μλ€.
μ€μ©μ£Όμ νλ‘κ·Έλλ¨Έλ μκΈ° μμ μμ λ―Ώμ§ μλλ€. μ΄λ λꡬλ, μ¬μ§μ΄λ μκΈ° μμ λ μλ²½ν μ½λλ₯Ό μμ±ν μ μμμ μκΈ° λλ¬Έμ μ€μ©μ£Όμ νλ‘κ·Έλλ¨Έλ μμ μ μ€μμ λλΉν λ°©μ΄μ± μ λ§λ ¨νλ€.
π Topic 23. κ³μ½μ μν μ€κ³β
κ³μ½μ μμ κ³Ό μλνΈμ κΆλ¦¬ λ° μ± μμ μ μνλ€. κ·ΈλΏλ§ μλλΌ νμͺ½μ΄ κ³μ½μ μ΄κ²Όμ κ²½μ°μ λμλ κ³μ½ μ¬νμ ν¬ν¨λλ€.
π₯ DBCβ
DBC(κ³μ½μ μν μ€κ³)λ λ¨μνμ§λ§ κ°λ ₯ν κΈ°λ²μΌλ‘, νλ‘κ·Έλ¨μ μ νμ±μ 보μ₯νκΈ° μν΄ μννΈμ¨μ΄ λͺ¨λμ κΆλ¦¬μ μ± μμ λ¬Έμννκ³ ν©μνλ λ°μ μ΄μ μ λ§μΆλ€. μ νν νλ‘κ·Έλ¨μ΄λ 무μμΈκ°? μμ μ΄ νλ μΌμ΄λΌκ³ μ£Όμ₯νλ κ²λ³΄λ€ λ§μ§λ μ μ§λ μκ² λ± κ·Έλ§νΌλ§ νλ νλ‘κ·Έλ¨μ΄λ€. μ΄ μ£Όμ₯μ λ¬Έμννκ³ κ²μ¦νλ κ²μ΄ "κ³μ½μ μν μ€κ³"μ ν΅μ¬μ΄λ€.
μννΈμ¨μ΄ μμ€ν μ λͺ¨λ ν¨μμ λ©μλλ λκ°λ₯Ό νλ€. κ·Έ λκ°λ₯Ό μμνκΈ° μ μ ν΄λΉ ν¨μλ μΈμμ μνμ λν΄ μ΄λ€ μ μ 쑰건μ κ°κ³ μμ ν κ³ , 루ν΄μ΄ λλ νμλ μΈμμ μνκ° μ΄λ ν κ²μ΄λΌκ³ μ μΈν μ μμ κ²μ΄λ€.
μ ν 쑰건β
- 루ν΄μ΄ νΈμΆλκΈ° μν΄ μ°Έμ΄μ΄μΌ νλ κ².
- μ¦, 루ν΄μ μꡬ μ¬νμ΄λ€. 루ν΄μ μ ν μ‘°κ±΄μ΄ μλ°λ κ²½μ°μλ 루ν΄μ΄ νΈμΆλμ΄μλ μ λλ€. μ λλ‘ λ λ°μ΄ν°λ₯Ό μ λ¬νλ κ²μ νΈμΆνλ μͺ½μΌ μ± μμ΄λ€.
νν 쑰건β
- 루ν΄μ΄ μκΈ°κ° ν κ²μ΄λΌκ³ 보μ₯νλ κ².
- μ¦, 루ν΄μ΄ μλ£λμμ λ μΈμμ μνλ€. 루ν΄μ νν μ‘°κ±΄μ΄ μλ€λ κ²μ 곧 루ν΄μ΄ μ’ κ΅μλ μ’ λ£λ κ²μ΄λΌλ κ±Έ μλ―Ένλ€. 무ν λ°λ³΅μ νμ©λμ§ μλλ€.
ν΄λμ€ λΆλ³μβ
- νΈμΆμμ μ μ₯μμ λ³Ό λλ μ΄ μ‘°κ±΄μ΄ μΈμ λ μ°ΈμΈ κ²μ ν΄λμ€κ° 보μ₯νλ€.
- 루ν΄μ λ΄λΆ μ²λ¦¬ λμ€μλ λΆλ³μμ΄ μ°Έμ΄ μλ μλ μμ§λ§, 루ν΄μ΄ λλκ³ νΈμΆμλ‘ μ μ΄κΆμ΄ λ°νλλ μμ μλ λΆλ³μμ΄ μ°Έμ΄ λμ΄μΌ νλ€.
루ν΄κ³Ό κ·Έ 루ν΄μ νΈμΆνλ €λ μ½λ κ°μ κ³μ½μ λ€μκ³Ό κ°λ€.
λ§μ½ νΈμΆμκ° λ£¨ν΄μ λͺ¨λ μ ν 쑰건μ μΆ©μ‘±νλ€λ©΄ ν΄λΉ 루ν΄μ μ’ λ£ μ λͺ¨λ νν 쑰건과 λΆλ³μμ΄ μ°Έμ΄ λλ κ²μ 보μ₯νλ€.
λ§μ½ κ³μ½ λΉμ¬μ μ€ μ΄λ νμͺ½μ΄λΌλ μ΄ κ³μ½ λ΄μ©μ μ§ν€μ§ λͺ»νλ©΄ ν΄κ²° λ°©μμ΄ μ€νλλ€. μμΈκ° λ°μν μλ μκ³ μλλ©΄ νλ‘κ·Έλ¨μ μ’ λ£μν¬ μλ μλ€. λ¬΄μ¨ μΌμ΄ λ²μ΄μ§λ μ§ νμ€ν μ μ κ³μ½μ λΆμνμ§ λͺ»νλ κ²μ λ²κ·ΈλΌλ κ²μ΄λ€. μ΄κ²μ κ²°μ½ λ°μν΄μλ μ λλ μΌμ΄λ©°, κ·Έλ κΈ° λλ¬Έμ μ ν 쑰건μ μ΄μ©ν΄μ μ¬μ©μ μ λ ₯κ°μ κ²μ¦νλ€κ±°λ ν΄μλ μ λλ€.
Tip 37. κ³μ½μΌλ‘ μ€κ³νλΌ.
κ³μΌλ¦λ± μ΄(lazy) μ½λλ₯Ό κ°μ‘°νκ³ μΆλ€. μμνκΈ° μ μ μμ μ΄ μμ©ν κ²μ μ격νκ² νμΈνκ³ , λ΄μ΄ μ€ κ²μ λν΄μλ μ΅μνλλ₯Ό μ½μνλ κ²μ΄λ€. 무μμ΄λ μμ©νκ³ κ²°κ³Όλ‘λ 무μμ΄λ λ€ μ€λ€κ³ κ³μ½μ μ°μ¬ μλ€λ©΄, μ¬λ¬λΆμ μ λ§μ΄μ§ λ§μ μ½λλ₯Ό μμ±ν΄μΌ ν κ²μ΄λ€.
π₯ DBC ꡬνβ
μ½λλ₯Ό μμ±νκΈ° μ μ μ ν¨ν μ λ ₯ λ²μκ° λ¬΄μμΈμ§, κ²½κ³ μ‘°κ±΄μ΄ λ¬΄μμΈμ§, 루ν΄μ΄ λ μ λ¬νλ€κ³ μ½μνλμ§, νΉμ λ μ€μνκ²λ 무μμ μ½μνμ§ μλμ§ λ± λμ΄νλ κ²λ§μΌλ‘λλ λμ μννΈμ¨μ΄λ₯Ό μμ±νλ λ°μ μμ²λ λμμ΄ λλ€.
π₯ DBCμ μΌμ° λ©μΆκΈ°β
DBCλ μ°λ¦¬μ "μΌμ° μλμ λ©μΆ°λΌ."λΌλ κ°λ κ³Ό μ μ΄μΈλ¦°λ€. λ¨μ λ¬Έμ΄λ DBC λ°©μμ μ¬μ©νμ¬ μ ν 쑰건μ΄λ νν 쑰건, λΆλ³μμ κ²μ¦νλ©΄ λ μΌμ° λ©μΆκ³ , λ¬Έμ μ λν λ³΄λ€ μ νν μ 보λ₯Ό μλ €μ€ μ μμ κ²μ΄λ€.
λ¬Έμ λ₯Ό μ°Ύκ³ μμΈμ λ°νκΈ° μν΄μλ μ¬κ³ κ° λ μ§μ μμ μΌμ° λ©μΆλ κ²μ΄ μ 리νλ€.
π₯ μλ―Έλ‘ μ λΆλ³μβ
μλ―Έλ‘ μ λΆλ³μμ μ¬μ©νλ©΄ μΌμ’ μ μ² νμ κ³μ½μΈ μ λ μ΄κ²¨μλ μ λλ μꡬ μ¬νμ ννν μ μλ€.
μ΄κ²¨μλ μ λλ κ³ μ λ κ·μΉμΈ μꡬ μ¬νκ³Ό κ²½μμ§μ΄ λ°λλ©΄ μΌλ§λ μ§ μμ΄μ§ μ μλ λ¨μν μ μ± μ νΌλνμ§ λ§μμΌ νλ€. μλ―Έλ‘ μ λΆλ³μμ 무μΈκ°κ° νμ μ§μ§ μλ―Έλ₯Ό μ€μ¬μ΄ λμ΄μΌ νλ©°, ν¨μ¬ μλμ μΌλ‘ λ³νλ λΉμ¦λμ€ κ·μΉμ²λΌ μΌμμ μΈ μ μ± μ μν₯μ λ°μΌλ©΄ μ λλ€. μ°λ¦¬κ° μλ―Έλ‘ μ λΆλ³μμ΄λΌλ μ©μ΄λ₯Ό μ¬μ©νλ κ²μ μ΄ λλ¬Έμ΄λ€.
λΆλ³μμ μκ²©μ΄ μλ μꡬ μ¬νμ μ°Ύμλ€λ©΄ μ¬λ¬λΆμ΄ μμ±νλ λͺ¨λ λ¬Έμμ μ λλ¬λλλ‘ λ§λ€μ΄λΌ. κ·Έκ² μΈ λΆμ© μλͺ νλ μꡬ μ¬ν λ¬Έμμ λ²νΈλΆμΈ λͺ©λ‘μ΄λ , νΉμ λͺ¨λ μ¬λμ΄ λ³Ό μ μλ κ³΅μ© νμ΄νΈλ³΄λμ μ°μΈ 컀λ€λ λ©λͺ¨μ΄λ λλ λͺ¨λκ° μ¬λ¬λΆμ΄ μ°Ύλ μλ―Έλ‘ μ λΆλ³μμ μ λλ¬λ΄μΌ νλ€. λͺ ννκ³ λͺ¨νΈν μ μ΄ μκ² μμ νλλ‘ λ Έλ ₯νλΌ.
μ€λ₯ λ°μ μ μλΉμμ μ μ₯μ μ°μ νλΌ.
μ΄κ²μ μμ€ν μ μ¬λ¬ λ€λ₯Έ λΆλΆμ μ μ©ν μ μλ λΆλͺ νκ³ κ°λ΅νλ©° λͺ νν μ μΈμ΄λ€. μ΄λ λͺ¨λ μμ€ν μ¬μ©μμ λ§Ίλ κ³μ½μ΄λ©° λμμ λν μ°λ¦¬μ 보μ¦μ΄λ€.