λ€μ΄κ°λ©° κ·Έ λμ μλ²½ν κΈμ μ¨μΌμ§ νλ λ§μμ λ―Έλ€μλ SOPTμ κ΄ν μ΄μΌκΈ°λ₯Ό μμν΄λ³΄κ³ μ νλ€. μ΄λ² κΈμμλ 28κΈ°μ μ§μλΆν° ν©κ²©κΉμ§μ μ΄μΌκΈ°λ₯Ό ν μμ μ΄λ€. λλ μ§μνλ μκ°μ μ¬λ¬ λΈλ‘κ·Έμ νκΈ° κΈμ μ°Ύμλ΄€μκ³ , λ λ§μ λμμ μ»μκΈ° λλ¬Έμ΄λ€. λκ΅°κ°κ° μ΄ κΈμ ν΅ν΄ λμμ μ»λλ€λ©΄ λΏλ―ν κ² κ°λ€. 3λ²μ λμ λμ ν©κ²© μ¬μ€ λλ 26κΈ°, 27κΈ°μ μ§μνμμΌλ λ¨μ΄μ§κ³ 3λ²μ λμ λμ 28κΈ°μ ν©κ²©νλ€. μ²μμλ λ§μ΄ λΆλλ¬μ κ³ μμ¬μ΄ μ»Έλ€. μ§κΈμμμΌ λ§νμ§λ§ λμλ¦¬κ° λ°κΈ°λ νλ€. κ·Όλ° κ°κ΄μ μΌλ‘ μκ°ν΄λ³΄λ©΄ λΆλͺ
λ΄κ° λΆμ‘±ν λ©΄μ΄ μμκΈ°μ λ¨μ΄μ§ κ²μ΄ ν©νΈμλ€. μ νν μ΄μ λ μ μ μμ§λ§ μλ₯μ λ΄μ©μ μ§μ μ±μ΄ μμκ±°λ, λ©΄μ μμμ μκΈ° μ΄νμ΄ λΆμ‘±νκ±°λ λλ λμ리μμ μν..
μλ
νμΈμ, νλΌμ
λλ€. μ΄λ² κΈμ μ 리ννλ‘ μμ±ν΄λμ΄ μ΄ν¬κ° μ‘°κΈ λ±λ±ν μ μμ΅λλ€.. μ΄ν΄λΆνλλ €μ π₯² μ΄λ² κΈμ μ΄ν¬λ λ±λ±νκ³ μ€κΈ νμμ΄λ€. λ무 μ΄λ ΅κ² μκ°ν νμκ° μλ κ°λ
μ΄λ€. λ¨μνκ² λ§μ보μ. μμ½ νλ‘ν μ½μμ μ¬μ©λλ μ λ€λ¦ Placeholderμ λλμ΄λ€. Associated Typeμ μλ typealiasμλλ°, Swift 2.2λΆν° Associated Typeμ΄λ ν€μλλ‘ λ°λμλ€. μ€λͺ
μμ λ κ°μ§ κ΄μ μμ 보면 λ΄μ©μ ν¬κ² μ΄λ ΅μ§ μλ€. μλμ μμλ‘ ν¨κ» μ΄ν΄ν΄λ³΄κ² λ€. μ°μ νλ‘μ νΈμ λν΄ μ κΉ μ΄ν΄ν΄λ³΄λ©΄, νλ‘μ νΈλ νμ¬ MVVM ν¨ν΄μ λ°λ₯΄κ³ μλ€. λ€μ νλ‘μ νΈμμλ λΉμ¦λμ€ λ‘μ§μ μ²λ¦¬νλ ViewModelμ ꡬνν΄μΌ νλ€. λ³΄ν΅ κ° ViewControlle..
ν΄λΉ κΈμ μ¬μ©λ μμλ 2κ°μ§ κΈμμ κ°μ Έμμ΅λλ€. μΆμ²λ κΈ λ§μ§λ§μ μ μ΄λμμ΅λλ€. μ°Έκ³ νμ
μ κΈ μ½μ΄μ£Όμλ©΄ κ°μ¬νκ² μ΅λλ€ :) π¬ λ€μ΄κ°κΈ°μ μ κ²°λ‘ λΆν° λ§νκ³ μμνκ² μ΅λλ€. typealiasλ μ½λλ₯Ό μ’ λ κ°κ²°νκ² κ°λ
μ±μκ² μμ±νκΈ° μν΄μ μ¬μ©ν©λλ€. μΈμ μ¬μ©νλꡬμ? μ λ΅μ μμ΅λλ€. λ€λ§ μΌλ°μ μΌλ‘ μ¬μ©νλ κ²½μ°λ μμ£ . μ΄λ² κΈμμλ κ·Έ λΆλΆμ λν΄μ ν¨κ» μμ보λλ‘ νκ² μ΅λλ€. π typealiasλ typealiasλ νμ
μ λΆμΌ μ μλ λ³μΉ, μ½μΉμ
λλ€. typealias (μ¬μ©ν λ³λͺ
) = (μ‘΄μ¬νλ νμ
) ex) typealias Nickname = Int ex) typealias Codable = Decodable & Encodable ex) ... typealiasλ μ..
μ΄μ¬ν λ°μ΄ν°λ₯Ό λ°μμμ UIμ λΏλ €μ£Όλ μμ
μ€ λμ ν κ°λ§ν μμ μ μλ μ΄μκ° λ°μνμ΅λλ€. ν
μ€νΈ κ° μμ html νκ·Έκ° ν¬ν¨λμ΄ μμ΄ λΌλ²¨μ κ·Έλλ‘ ννλκ³ μλ κ²μ
λλ€. ν¨κ³Όκ° μ μ©μ΄ λκ±°λ μ¬λΌμ§κΈΈ μνλλ° μ κ±°νλ λ°©ν₯ μͺ½μΌλ‘ κ°κΈ°λ‘ νμ΄μ. μ’μ μ΅μ€ν
μ
μ΄ μμ΄μ κ·Έλλ‘ κ°μ Έμμ μ¬μ©ν΄λ΄€λλ° κΉλνκ² μ μ©μ΄ λμμ΅λλ€. μ΅μ€ν
μ
μ μ΄ν΄νλ μκ°λ κ°μ§ νμκ° μμ κ² κ°μ΅λλ€. μ°μ μ κ·Έλ₯ μ¬μ©νλ κ²μΌλ‘ νκ² μ΅λλ€~! μΆκ°λλ λ΄μ©μ΄ μμΌλ©΄ μ
λ°μ΄νΈ νλλ‘ νκ² μ΅λλ€ :) // ν
μ€νΈμ ν¬ν¨λμ΄ μλ HTMLνκ·Έ μ κ±°νκΈ° (μ΅μ€ν
μ
) extension String { // html νκ·Έ μ κ±° + html entityλ€ λμ½λ©. var htmlEscaped: String { guar..
μλ
νμΈμ, νλΌμ
λλ€~ μ€λμ Convenience initializerκ° λ¬΄μμΈμ§ μμλ³΄κ² μ΅λλ€! μ΄λμ
λΌμ΄μ λ ν¬κ² 2κ°μ§λ₯Ό μ΄ν΄λ³Ό μ μμ΅λλ€. Designated initializer, Covenience initializer μ°¨λ‘λλ‘ μ§μ μ΄λμ
λΌμ΄μ , νΈμ μ΄λμ
λΌμ΄μ λΌκ³ ν΄μν΄λ³Ό μ μλλ°, μ§μ μ΄λμ
λΌμ΄μ λ ν΄λμ€(ꡬ쑰체)λ΄μ λͺ¨λ νλ‘νΌν°κ° μ΄κΈ°νλ μ μλλ‘ ν΄μ£Όλ μ΄λμ
λΌμ΄μ μ΄κ³ , νΈμ μ΄λμ
λΌμ΄μ λ μΆκ°μ μΈ μμ
μ ν μ μλλ‘ ν΄μ£Όλ 보쑰 μ΄λμ
λΌμ΄μ μ
λλ€. Designated init μ νλΌλ―Έν° μΌλΆλ₯Ό κΈ°λ³Έκ°μΌλ‘ μ€μ ν΄μ Convenience init μμμ Designated init μ νΈμΆν΄μ μΈ μ μμ΅λλ€. μ€μν ν¬μΈνΈλ λ€μκ³Ό κ°μ΅λλ€. Convenience i..
μλ
νμΈμ, νλΌμ
λλ€ :) μμ¦μλ ν λ¨κ³ λ μ±μ₯νκΈ° μν΄μ λ€μ κΈ°μ΄λΆν° μ°¨κ·Όμ°¨κ·Ό 곡λΆνλ μ€μ
λλ€. νμ€ν 곡λΆλ₯Ό νλ€λ³΄λ μ΄μ μ μ무 μκ°μμ΄ μμ±νλ μ½λλ κ°λ
λ€μ΄ λμ ν λλλΌκ΅¬μ... μκ³ μ¬μ©νλκ±°λ λͺ¨λ₯΄κ³ μ¬μ©νλκ±°λμ μμ μμ²λ μ°¨μ΄μ΄κΈ° λλ¬Έμ νμ κΈ°μ΄λΆν° ννν ν©μλ€... (κ·Όλ° κΈ°μ΄λ§ 곡λΆνλ€λ³΄λ©΄ ν₯λ―Έκ° λ¨μ΄μ§λ건 μ¬μ€... κ·Έλ¬λκΉ μ μ ν μ리쑰리 μμμ£ ...? π) frame vs bounds μ€λμ frameκ³Ό boundsμ λν΄ μ 리ν κ±°μμ. μ κ·Όλ°, μμ½λ²μ μ΄λκΉ μμΈνμ§ μμλ μ΄ν΄ν΄μ£ΌμΈμ... κΌΌκΌΌν μ€λͺ
λ²μ μ λμ€μ... μ°μ λ€ μ΄ν΄νκ³ λμ μ 리λ₯Ό ν΄λ³΄λ©΄ frameκ³Ό boundsμ μ°¨μ΄λ λ€μ 3κ°μ§λ‘ μ 리ν μ μμ κ² κ°μ΅λλ€. μ’νκ³μ λν μ°¨..
μ°λ¦¬λ μ΅μ
λμ λν΄ λ¬Όμμ λ, μΌλ§λ μ λλ΅ν μ μμκΉ? Summary μ΅μ
λμ λ³μμ κ°μ΄ μμ μλ μκ³ , μμ μλ μλ μν(nil)λ₯Ό νννκΈ° μν΄ Swiftμ λμ
λ κ°λ
μ
λλ€. μ΅μ
λμ Enum ννλ‘ μ μλμ΄ μκ³ , κ°μ μκ³ μμμ κ° Caseλ‘ κ°μ§κ³ μμ΅λλ€. μ΅μ
λλ‘ ννλ κ°μ μ κ·Όνλ λ°©λ²μΌλ‘λ Forced Unwrapping(κ°μ μΈλν), Optional Binding(μ΅μ
λ λ°μΈλ©), Nil-Coalescing Operator(Nilλ³ν©μ°μ°μ)κ° μμ΅λλ€. μ΅μ
λ 체μ΄λμ ν΅ν΄μ μ΅μ
λ λ°μΈλ©μΌλ‘ ννλ μ½λλ₯Ό κ°κ²°νκ² μμ±ν μ μμ΅λλ€. μ΅μ
λ(Optional) λλ λ
μ μ΅μ
λμ μλ―Έ μ μ°λ¦¬λ κ·Όλ³Έμλ κ°λ°μμ΄κΈ° λλ¬Έμ Apple 곡μ λ¬Έμλ₯Ό 보λλ‘ νμ£ . (..
'νκ³ 'κ° μ’μ μ΅κ΄μ΄ λ μ μκ² λ€λΌλ μκ°μ΄ λ€μ΄μ λ¬μ΄ λ§λ¬΄λ¦¬λλ©΄ 지λ§νκ² λͺ μ€ λ¨κΈ°λ €κ³ νλ€. ν λ¬μ μ΄μ¬ν μ΄ μ μλ μλλ ₯μ΄ λ μλ μμ§ μμκΉ! λ§μ§λ§μ΄ λ§μλ 7μ 7μμ μ λ§ λ§μ§λ§μ΄ λ§μλ λ¬μ΄λ€. κ³Ό μ¬λλ€κ³Ό μ§ννλ μκ³ λ¦¬μ¦ μ€ν°λμ μΌμ°¨μ μΈ λ§μ§λ§ 3μ£Όκ°μ νλ‘μ νΈ, νλΉλ© ~ λ°λͺ¨λ°μ΄κΉμ§ μ±κ³΅μ μΌλ‘ μ§νλ APP JAMμ λ§μ§λ§ 2021λ
λ§μ μκ°μ μμλ, IT λ²€μ² μ°½μ
λμ리 SOPTμ λ§μ§λ§ μΈμ λ λ§μ§λ§μ λκ² μμ½κ³ λ§μ μκ°μ΄ λ€κ² νλ€. μ’μλ μΆμ΅λ λ§μ΄ μκ°λκ³ , λ΄κ° λ μν κ±Έμ΄λΌλ ννλ λ¨κΈ°κ³ κ·Έλ§νΌ λλ₯Ό λ λ§μ΄ λμλ³΄κ² νλ€. λ§μ§λ§μ΄λΌλ μκ° μμμ μ λ§ λ§μ κ²μ λ°°μ°κ³ λκΌλ€. ν¨κ»ν΄μ€ λͺ¨λ μ¬λλ€μκ² κ°μ¬λ₯Ό μ νκ³ μΆλ€. λ€κ°μ€λ 8μ..