ꡬ쑰체μ ν΄λμ€λ λ°μ΄ν°λ₯Ό μ©λμ λ§κ² λ¬Άμ΄μ ννν λ μ¬μ©λ©λλ€. Swift μμλ ꡬ쑰체μ ν΄λμ€μ λ¬Έλ²μ΄ μ μ¬νκ³ , property μ method λ₯Ό μ§λ μ μμ΅λλ€. λμ ν° μ°¨μ΄λ ꡬ쑰체λ Value type (κ°μ 볡μ¬νλ νν), ν΄λμ€λ Reference type (κ°μ²΄λ₯Ό 곡μ νλ νν) μ λλ€. λν, ν΄λμ€λ μμμ΄ κ°λ₯νμ§λ§ ꡬ쑰체λ μμμ΄ λΆκ°λ₯ν©λλ€.
μ€μν ν΅μ¬μ Swift νμ€ λΌμ΄λΈλ¬λ¦¬μ μ μλ νμ μ λλΆλΆμ ꡬ쑰체λΌλ μ μ λλ€ !
π Swift μ κ΅¬μ‘°μ²΄κ° C κΈ°λ° μΈμ΄μ ꡬ쑰체μ λ€λ₯Έ μ μ?
- C κΈ°λ° μΈμ΄μ ꡬ쑰체μ κΈ°λ³Έμ μΈ κΈ°λ₯μ λΉμ·νμ§λ§, ν΄λμ€μ λͺ κ°μ§ κΈ°λ₯μ μΆκ°ν΄ μ€νλ € ν΄λμ€μ κ°κΉμ΄ κΈ°λ₯μ νλ€.
- μλμΌλ‘ μμ±λλ λ©€λ² μ΄κΈ°ν ν¨μ μΈμ 컀μ€ν μ΄κΈ°ν ν¨μ μ¬μ©μ΄ κ°λ₯νλ€.
- Swift ꡬ쑰체λ method λ₯Ό μ§λ μ μμΌλ©°, protocol μ ꡬνν μ μλ€.
π Swift νμ€ λΌμ΄λΈλ¬λ¦¬μμ ν΄λμ€ λμ ꡬ쑰체λ₯Ό μ¬μ©νλ μ΄μ λ 무μμΌκΉ?
- ν΄λμ€λ³΄λ€ κ΅¬μ‘°μ²΄κ° λμ± λ¨μνκΈ° λλ¬Έμ, μμ±ν μ½λλ₯Ό μμ νμν€λ©° νΉμ ꡬ쑰체λ₯Ό λ³κ²½μ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ μν₯λ°μ§ μκΈ° λλ¬Έμ΄λ€.
- μμ, μ΄κΈ°ν ν΄μ κ°μ²΄, μ°Έμ‘° νμ κ³μ°(Reference Counting) λ± λ€μν κΈ°λ₯μ μ 곡νλ ν΄λμ€μ λΉν΄ μ νμ μΈ κΈ°λ₯μ μ 곡νλ―λ‘ μ€νλ € κ°λ¨νλ€.
- ꡬ쑰체λ Value type μΌλ‘ μλ‘μ΄ λ³μμ ν λΉνκ±°λ ν¨μμ μ λ¬ μ νμ 볡μ¬ν΄μ μ¬μ©νλ―λ‘, νΉμ ꡬ쑰체λ₯Ό λ³κ²½ν΄λ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ μν₯λ°μ§ μλλ€.
π‘ Swift μμ ꡬ쑰체μ ν΄λμ€λ₯Ό μ ννλ κΈ°μ€μ?!
μ νμ κ°μ΄λλΌμΈμμ κΆμ₯νλ λ΄μ©μ΄κ³ , μλ λͺ©λ‘μ ν΄λΉνλ©΄ ꡬ쑰체λ₯Ό μ¬μ©νκ³ μλ κ²½μ° ν΄λμ€λ₯Ό μ¬μ©νλ κ±Έ κΆμ₯ν©λλ€. μ¦, μμμ΄λ λ νΌλ°μ€ μ°Έμ‘°κ° νμν κ²½μ°μλ§ ν΄λμ€λ₯Ό μ¬μ©νλλ‘ ν©μλ€.
- νμ μμ±μ λͺ©μ μ΄ "κ°λ¨ν λͺκ°μ κ°μ μΊ‘μννλ κ²" μΌ λ
- μΊ‘μνν κ°μ μ λ¬νκ±°λ ν λΉν λ μ°Έμ‘°νλ κ² μλ, 볡μ¬νλ κ²½μ°
- ꡬ쑰체μ μν΄ μ μ₯λλ property κ° μ°Έμ‘°κ° μλ 볡μ¬λ₯Ό μν Value type μΈ κ²½μ°
- κΈ°μ‘΄μ νμ μ property λ method λ₯Ό μμλ°κ±°λ, μμν νμκ° μλ κ²½μ°
π©π» λ°°μ΄μ / λλμ
μ£Όλ‘ λ€λ₯Έ μΈμ΄μμλ κ°λ¨ν μ’ν μ μ₯ λ±μλ§ κ΅¬μ‘°μ²΄λ₯Ό μ¬μ©νκ³ , λλΆλΆμ ν΄λμ€λ₯Ό μ¬μ©νμλλ°μ. μ¨λΌμΈ κ°μμμ Swift μμλ λλΆλΆ λ°μ΄ν° νμ μ΄ κ΅¬μ‘°μ²΄λ‘ μ΄λ€μ Έμλ€λ κ±Έ λ£κ³ λλ¬μμ΄μ.. λ§μ§λ§ μ 리λ΄μ©μΈ ꡬ쑰체 / ν΄λμ€λ₯Ό μ ννλ κΈ°μ€μ μ κΈ°μ΅νκ³ νμ©ν΄μΌκ² λ€ μΆμ΅λλ€!
μ°Έκ³ λ§ν¬