IOS/Swift

    다형성(Polymorphism)과 추상화(Abstraction)의 관계

    최근 인터뷰를 몇번 보면서 부족한 점을 많이 느끼게 되는 것 같습니다. 그중에 기억에 남은 질문이 오늘의 주제입니다. 서칭을 하며 언뜻 보기에는 두 개념이 같은 말을 하고있는게 아닌가 했었는데 같은 생각을 하셨던분이 정리해주신걸 보고 좀 명확해진 것 같아 공유하려고 글을 쓰게 되었습니다 https://wlaxhrl.tistory.com/78 OOP의 추상화(Abstraction)와 다형성(Polymorphism)의 관계 최근에 OOP에 대해 공부를 하다 혼란에 빠졌었는데, 나름 결론이 나서 기록. '나름' 결론이기 때문에 주의해주세요. 의견은 자유롭게 코멘트로 달아주세요. 혼란을 불러일으킨 요소 - 존 호프만의 wlaxhrl.tistory.com

    UserDefault 깔끔하게 쓰는 법 공유합니다

    https://medium.com/better-programming/create-the-perfect-userdefaults-wrapper-using-property-wrapper-42ca76005ac8 Create the Perfect UserDefaults Wrapper Using Property Wrapper No more boilerplate code and increase reusability betterprogramming.pub 미디엄구독하세요! ㅎㅎ

    Codable & Encodable

    Codable 자신을 변환하거나 외부표현(external representation)으로 변환할 수 있는 타입입니다. Codable = Decodable & Encodable Decodable = 자신을 외부표현에서 디코딩 할 수 있는 타입 Encodable = 자신을 외부표현으로 인코딩 할 수 있는 타입 채택할수 있는 인스턴스의 종류 Class Struct Enum Encoding 예시 순서. JSONEncoder선언 위 JSONEncoder의 encode메소드를 사용하여 인스턴스를 Data타입으로 만듬 Data타입을 String타입으로 만듬 struct Person { var name: String var age: Int } // Codable 채택 struct Person: Codable { var..

    [TIL] Swift. Closure

    Closure 기본 개념 이름이 없는 매서드라고 생각할수있다( = 이름이 없는 함수) 안쪽 Scope는 바깥쪽 Scope를 참조할수 있지만 바깥 Scope는 안쪽을 참조할수 없다. Scope안쪽에서 생성된 함수가 바깥쪽의 변수를 참조 할 수 있고, 만약 안쪽에서 생성된 함수가 Scope 밖에서 사용될 경우 안쪽에서 참조 되었던 변수를 바깥에서도 참조 할 수 있다 아주 정확히는 함수는 Closure의 한가지 타입 Closure의 3가지 타입 Global 함수 Nested 함수 closure expressions 함수는 func가 필요하지만 클로저는 func키워드가 필요없다 함수와 클로저는 First Class Type이다 First Class Type이란 변수에 할당할 수 이다 인자로 받을수 있다 리턴 할..

    [TIL] Swift. Type Casting(feat. is, as)

    Type Casting 코딩 강의를 보면서 is 또는 as가 언제 쓰이게 되고 왜 이렇게 쓰이는지 궁금해서 정리하게 되었습니다. Type Casting? 스위프트는 다른 프로그래밍 언어에서 대부분 지우언하는 암시적 데이터 타입 변환은 지원하지 않습니다. 아래의 예시는 Int(value)라는 형태의 데이터 타입으로 형태를 변경해주는데, 이는 이니셜라이저와 같습니다. 즉, 기존의 데이터를 전달인자로 받아 새로운 Int 구조체의 인스턴스를 생성하게 됩니다. 스위프트에서는 이를 타입 캐스팅이 아니라, 이니셜라이즈를 통해 새로운 인스턴스를 생성하는 과정이라합니다. var value: Double = 3.3 var convertedValue: Int = Int(value) convertedValue = 5.5 //..

    [TIL] Swift. GCD (Grand Central Patch)

    GCD 해야할 일(code blocks)들을 만들어서 GCD에 넘기면 시스템에서 알아서 스레드를 할당해서 안전하게 수행시켜 줍니다. GCD는 스레드 위에 만들어진 것 입니다. GCD는 이 테스크를 DispatchQueue를 이용해서 관리하게 됩니다 #Queue 자료구조입니다. First- in & First - out 들어온 순서대로 나가는 형태의 자료구조 입니다. DispatchQueue Main Queue 메인 스레드에서 작동되는 큐입니다. Global Queue 시스템에 의해 관리되는 큐입니다 큐에 들어가는 테스크의 우선순위를 QoS(Quality of Service) 를 이용해서 표현할수 있습니다. 번호가 낮을수록 높은 순위 입니다. userInteractive - 바로 수행되어야할 작업을 표현할..