struct

    우아한 Model Data 처리 (1)

    우아한 Model Data 처리 (1)

    Struct와 Codable 프로토콜을 통해 주로 Server Response Data를 받습니다. 하지만, API 수정 및 신규 배포 등 의 문제로 인해 예상치 못한 String Key 값이 오거나, 자료형이 다른 Response Data가 올 수 있습니다. 보통, 이런 Decoding Error가 발생하게 되면 해당 데이터 전체를 쓸수가 없게됩니다. 즉 10개의 프로퍼티가 있는 Model 에서 유저가 몰라도 되는 프로퍼티의 자료형이 다르게 온다면, 해당 데이터 전체에 대한 Decoding Error가 발생하게 됩니다. 그렇다면, 좀 더 유연해질 순 없을까요? 물론, 쉽고 편하게 가능합니다 ! 나아가, String Key 값을 보통 enum으로 처리하게 되는데요. (String으로 값을 받은 후, en..

    Struct와 Class에서의 let 과 var의 차이에 대하여

    값(Value)형태와 레펀러스(Reference) 참조 형태의 차이를 가진 Struct와 Class에서의 let 선언과 var 선언의 차이의 핵심을 알아보겠습니다 ~ class T1 { var name: String? init(_ name: String?){ self.name = name } } var a = T1("1") //T1("1") 주소 100이라고 가정 a = T1("2") //T1("2") 주소 102이라고 가정 //새로운 인스턴스 주소를 가리킬 수 있음 let b = T1("immutable") //새로운 인스턴스 주소를 가리킬 수 없음 //b.name = "변경가능" //heap 인스턴스에서 변수를 가진 name 영역은 변경가능 let c = b let d = b b = T1("변경") ..