λλ μ€μννΈ μΈμ΄μ κ°λ κ³΅λΆ μ΄μ μ, λ λ€ λ¬Έμ νμ΄λΆν° μμνλ€.
λ¬Έμ λ₯Ό νμ΄λ³΄λ©° νμν ν¨μλ κΈ°λ³Έμ μΈ κ°λ λ€μ κ·Έλ κ·Έλ μ°Ύμ보λ μμΌλ‘ 곡λΆλ₯Ό νλ€.
κ·Έλ κ² νλκΉ νμ€ν μ§λλ λΉ λ₯΄κ³ , μ€μ λ‘ μ½λλ₯Ό μμ±νλ©° 곡λΆνλ€λ³΄λ κΈλ°© μ΅νμ§λ€λ μ₯μ μ΄ μλ€.
νμ§λ§ μ μ μ΄λ €μ΄ λ¬Έμ λ₯Ό μ νκ³ , λ€μν κ°λ λ€μ΄ λ±μ₯νλ€λ³΄λ μ νν κ°λ μ 리 μμ΄ νμν λλ§λ€ λ°°μ΄λ€λ κ²μλ νκ³κ° λκ»΄μ‘λ€.
κ·Έλ¦¬κ³ μ€μννΈλ₯Ό 곡λΆνκΈ° μ΄μ μ, λ΄κ° Cλ C#, κ·Έλ¦¬κ³ Java λ±λ± μΈμ΄λ₯Ό λ°°μΈλλ νμ μ§λλΉΌλ κ²μ κΈκΈνλ€λ³΄λ
λμ€μ μ λ§ μ΄λ €μ΄ κ°λ λ€μ μ ν΄μΌ λ λλ©΄, μ 리μλ λ΄μ©λ€μ΄ λ¨Έλ¦Ώμμμ μ λ¦½μ΄ λμ§ μμ μ’μ νλ κ²½νμ΄ λ§λ€,,
λ°λΌμ μ€λμ μ λ§ κΈ°μ΄λ‘ λμκ°μ, μ€μννΈ μΈμ΄μ νΉμ±μ λν΄μ μμ보λ μκ°μ κ°μ Έλ³΄κ² λ€.
π Swift μΈμ΄
μ€μννΈ μΈμ΄λ μ νμ΄ iOS, whatchOS, macOS λ± μμ¬ μ ν κ°λ°μ νμ©νκ³ μ κ°λ°ν μΈμ΄μ΄λ€.
(μ§κΈμ μ€νμμ€!)
ARC(Auto Reference Counting, μλ μ°Έμ‘° νμ κ³μ°)μ μ§μνμ¬ μ½κ² λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν΄μ£Όκ³ , μ€ν¬λ¦½νΈ μΈμ΄μ κ°μ΄ λ°λ‘ μ½λμ κ²°κ³Όλ₯Ό νμΈν μλ μλ! νΈλ¦¬ν¨μ κ°μΆ μ»΄νμΌλ¬ μΈμ΄μ΄λ€. λ¬Έλ²λ μ€ν¬λ¦½νΈ μΈμ΄μ λΉμ·νκ² λ³΄μ¬μ§λ€.
π Swiftμ μΈμ΄μ νΉμ± (Feat. μ ν)
μ νμ΄ λ°νν μ€μννΈμ μΈμ΄μ νΉμ±μ μ΄ μΈ κ°μ§λ‘, Safe(μμ μ±), Fast(μ μμ±), Expressive(λ λμ ννμ±)μ΄λ€.
βοΈ Safe(μμ μ±)
곡λΆνλ©΄μ μ μΌ λ§μ΄ μ ν νΉμ±μ΄ λ°λ‘ μ΄ μμ μ±μ λν λ΄μ©μΈ κ² κ°λ€.
μ€μννΈλ μμ ν νλ‘κ·Έλλ°μ μ§ν₯νλ€. κ·Έ μ λκ° μ‘°κΈ λΉ‘λΉ‘νκ² λκ»΄μ§ μ λμΌ μλ μμ§λ§,, μ€μλ₯Ό μ€μ΄λ λ°μ ν° κ³΅νμ νλ€.!
μ΄ μμ μ±μ 보μ¬μ£Όλ λνμ μΈ μμκ° μ΅μ λμ΄λ€. μ΅μ λμ λ΄κ° 첫 λ²μ§Έ κ²μκΈλ‘ λ§λ€μλ λ΄μ©μΈλ°,
μ€μννΈμ μμ μ±μ λ¬Έλ²μΌλ‘ λ΄λ³΄νλ κΈ°λ₯μΌλ‘, λ³μ λλ μμμ κ°μ΄ nilμΌμλ μλ€λ κ²μ μλ―Ένλ€.
κ·Έλ¦¬κ³ κ·Έ μΈμλ guard ꡬ문, μ€λ₯μ²λ¦¬, κ°λ ₯ν νμ ν΅μ λ±μ ν΅ν΄ μ€μννΈλ μμ ν νλ‘κ·Έλλ°μ ꡬννλ€.
βοΈ Fast(μ μμ±)
μ€μννΈλ CμΈμ΄λ₯Ό κΈ°λ°μΌλ‘ ν C++, Objective-Cμ κ°μ νλ‘κ·Έλλ° μΈμ΄λ₯Ό λ체νλ €λ λͺ©μ μ κ°μ§λ€. νμ¬ μ€ν μλμ μ΅μ ν, κ·Έλ¦¬κ³ λ λΉ λ₯Έ μ»΄νμΌλ¬ μ±λ₯μ ꡬνν΄ λκ°κ³ μλ€.
βοΈ Expressive(λ λμ ννμ±)
λ€μν νλ‘κ·Έλλ° μΈμ΄λ€μ λͺ¨λ κ°κ°μ μ₯λ¨μ μ κ°μ§μ§λ§, μ€μννΈλ μ΄λ¬ν μ λ€μ λͺ¨λ μ°Έκ³ νμ¬ μ’ λ νΈνκ³ λ³΄κΈ° μ’μ λ¬Έλ²μ ꡬννλ €κ³ λ³΄μνλ€. λλΆμ νμ¬ μ€μννΈλ νλμ μ΄κ³ κΉλν λ¬Έλ² κ΅¬μ¬λ₯Ό ν μ μκ² λμμΌλ©°, κ³μ λ°μ νκ³ μλ€.
π μ€μννΈμ νλ‘κ·Έλλ° ν¨λ¬λ€μ
μ€μννΈλ λ€μ€ ν¨λ¬λ€μ νλ‘κ·Έλλ° μΈμ΄μ΄λ€. ν¬κ² λͺ λ Ήν νλ‘κ·Έλλ° ν¨λ¬λ€μ, κ°μ²΄μ§ν₯ νλ‘κ·Έλλ° ν¨λ¬λ€μ, ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μ, νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ° ν¨λ¬λ€μμ μ°¨μ©νλ€.
μ΄ λ§μ ν¨λ¬λ€μ μ€, μ°λ¦¬κ° μ£Όλͺ©ν΄μΌ ν κ²μ λ°λ‘ ν¨μνκ³Ό νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ° ν¨λ¬λ€μμ΄λ€.
(μ΄ λ ν¨λ¬λ€μμ΄ λ°λ‘ μ€μννΈκ° κ°μ₯ κ°μ‘°νλ ν¨λ¬λ€μμ΄λ€.)
βοΈ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μ
μ΅κ·Ό λ μ€λ₯΄λ ν¨λ¬λ€μμ λμΈλ‘, μ νμμ νΉνλ κ°μ‘°νλ ν¨λ¬λ€μμ΄λ€.
λκ·λͺ¨ λ³λ ¬μ²λ¦¬λ₯Ό μ½κ² νλ€λ νΉμ§μ΄ μκ³ , μνλ³ν보λ€λ ν¨μ μ체μ μμ©μ μ€μνκ² μ¬κΈ΄λ€.
κ·Έλ¦¬κ³ μ΄ ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμ κ°μ₯ ν° νΉμ§μ ν¨μλ₯Ό μΌκΈ κ°μ²΄(First-class Citizen)μΌλ‘ λ€λ£¬λ€λ κ²μ΄λ€.
(ν¨μλ₯Ό νΈμΆ, μ λ¬, λ°ννλ λμλ§μΌλ‘λ νλ‘κ·Έλ¨ κ΅¬νμ΄ κ°λ₯νλ€λ μλ―Έ!)
μ΄λ κ² ν¨μν νλ‘κ·Έλλ° ν¨λ¬λ€μμΌλ‘ νλ‘κ·Έλ¨μ μμ±νλ©΄ λ³λ ¬μ²λ¦¬λ₯Ό μ½κ² νκ³ ,
λ μν λ³νμ λ°λ₯Έ λΆμμ©μμ μμ λ‘μμ§λ€λ νΉμ§μ΄ μκΈ° λλ¬Έμ μμνκ² κΈ°λ₯μ ꡬνμ μ΄μ μ λ§μΆ° μ€κ³κ° κ°λ₯ν΄μ§λ€.
βοΈ νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ° κΈ°λ²
15λ λ 2.0 λ²μ μ΄ λ°νλλ©΄μ νλ‘ν μ½ μ΅μ€ν μ μ΄ μΆκ°λλ©΄μ, νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ°μ΄ κ°λ₯ν΄μ‘λ€.
νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ°μ΄ κ°λ₯ν΄μ‘λ€λ μλ―Έλ,
μ°Έμ‘° νμ μ μ°Έμ‘° λ¬Έμ μμ μ’ λ μμ λ‘μμ§ μ μκ³ , λ€μ€μμμ΄ λΆκ°λ₯ν νκ³λ₯Ό λ°μ΄λμ μ μμΌλ©°, λ λμ μΆμν λ©μ»€λμ¦μ ꡬνμ΄ κ°λ₯ν΄μ§λ€λ κ²μ΄λ€.
νμ€ν νλ‘ν μ½ μ΅μ€ν μ μ κΈ°λ₯μ μ€μννΈμ νλ‘ν μ½ μ§ν₯ νλ‘κ·Έλλ° κΈ°λ²μ μμ±μ λμκ³ , κ°λ ₯νκ² ν΄μ£Όμλ€.
π μ 리 π
μ€μννΈλ μμ ν νλ‘κ·Έλλ°μ μ§ν₯νλ μΈμ΄λ‘,
ν¨μν νλ‘κ·Έλλ° μΈμ΄μ΄λ©° νλ‘ν μ½ μ§ν₯ μΈμ΄μ΄λ€.
μ°Έκ³
- π μ€μννΈ νλ‘κ·Έλλ°
'3οΈβ£ Swift > Swift μ 리' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift] Type Annotationκ³Ό Type Inference (νμ μ΄λ Έν μ΄μ κ³Ό νμ μΆλ‘ ) (2) | 2021.06.11 |
---|---|
[Swift] Int, Int64? (0) | 2021.06.09 |
[Swift] let ν€μλλ₯Ό μ¬μ©νλ μ΄μ (μμλ₯Ό μ¬μ©νλ μ΄μ ) (2) | 2021.06.09 |
[Swift] nil μ 리 (feat.NULL) (4) | 2021.06.07 |
[Swift] Optional(μ΅μ λ) μ 리 (4) | 2021.06.06 |
λκΈ