All
-
Swift - Generic TypeProgramming/Swift 2022. 1. 18. 16:57
안녕하세요 BeePeach입니다 :) 이번 포스팅에서는 Generic Type에 대해서 공부를 해보려고 합니다. 이전 포스팅에서 Generic Function에 대해서까지만 설명하고 Generic Type에 대해서는 설명하지 않았습니다. Generic Type(제네릭 타입)이란 custom class, struct, enum이 Type에 상관없이 동작하는 Type을 의미합니다. 예를 들자면 지금까지 사용했던 Array, Dictionary를 생각해보겠습니다. Array, Dictionary 모두 struct입니다. Array에는 어떠한 Type이라도 모두 저장할 수 있었습니다. 모든 Type에 대해서 코드가 다 작성돼있지는 않았겠죠?? 심지어 잘 생각해보니 Array와 Dictionary의 Type을 지..
-
TIL - 2022년 01월 17일TIL/2022 2022. 1. 18. 00:18
Algorithm Backtracking에 대해서 공부를 했다. 예전에 N Queen문제를 접한 적이 있었는데 그때는 백트래킹에 대해서 모르고 있어서 해결하지 못했었는데 이제는 해결할 수 있을 거 같다. Operation Operation과 GCD의 차이점을 복습하고 왜 Operation을 사용하는지에 대해서 복습했다. 그리고 Operation 사용방법, BlockOperation, OperationQueue에 대해서 공부했고 Async 메서드를 Operation에 넣었을 때 발생할 수 있는 문제점과 이를 해결하기 위한 AsyncOperation을 만드는 개념에 대해서 공부를 했다. Swift Generic Func에 대해서 복습을 하면서 포스팅을 작성했다.
-
Swift - GenericProgramming/Swift 2022. 1. 17. 19:30
안녕하세요 BeePeach입니다 :) 오늘은 Generic(제네릭)에 대해서 공부해보려고 합니다. 제네릭이란 단어를 처음 들어봤을 수도 있지만 사실 우리는 계속해서 제네릭을 사용하고 있었습니다. Array와 Dictionary, Set을 생각해보면 Int를 넣는 배열을 만들기도 하고 String을 넣는 배열을 만들기도 했습니다. 어떠한 Type이 들어가도 다 생성할 수 있었죠. 이렇게 제네릭을 사용하면 Type에 관계없이 유연하고 재사용성이 높은 코드를 작성할 수 있습니다. Swift에서 제공하고 있는 많은것들도 제네릭으로 구현되어있습니다. 그럼 제네릭을 어떻게 사용하는지 같이 공부해보도록 해요! Generic 일반적으로 제네릭은 주로 Function, Type에서 사용됩니다. 두 단어가 결합해서 Gen..
-
TIL - 2022년 01월 16일TIL/2022 2022. 1. 16. 23:51
Swift Hashable 프로토콜에 대해서 공부하면서 Hash에 대해서 다시 알아보았다 Algorithm MST를 작성할때 크루스칼 알고리즘 말고 다른 알고리즘인 Prim알고리즘에 대해서 공부를 했다. 시간 복잡도가 더 낮은 알고리즘에 대해서도 공부를 했는데 핵심 기능이 python에서 제공되는 메서드로 구현하면 간단하지만 Swift에서는 해당 메서드를 제공하고 있지않아서 직접 구현을 해야하는데 이 부분을 어떻게 구현해야할지 고민해봐야겠다. GCD Thread Safe한 코드를 작성하는 방법에 대해서 공부를 했다. sync를 이용하거나 semaphore를 이용하거나 DispatchBarrier를 이용하는 방법! Thread에 안전한지 확인하는TSan에 대해서 공부했다. 그리고 lazy var에 여러 t..
-
Swift - Hashable ProtocolProgramming/Swift 2022. 1. 16. 19:38
안녕하세요 BeePeach입니다 :) 오늘은 기본적인 Protocol 중에 마지막 Hashable 프로토콜에 대해서 공부해보려고 합니다. 여기서 Hash란 아주 간단하게 설명하자면 어떠한 값을 특정 알고리즘을 통해서 Integer값으로 변환시키는 것을 의미합니다. 변환 알고리즘에는 종류가 아주 많습니다! (심심하면 한번 찾아보셔도 좋습니다.. SHA가 유명합니다.) 위 그림은 문자열을 특정 알고리즘함수를 통해서 00 ~ 15까지 변환하는 작업을 표현했습니다. 그리고 2개의 값이 다른데 같은 hash값으로 변환된 문제를 그림으로 표현한 것입니다. (이를 collision이라고 합니다.) 암호화에 사용하고 어쩌구 저쩌구 이런 건 다 제쳐두고 간단하게 어떤 값을 Interger값으로 변환시키는거구나~ 라고만 ..
-
TIL - 2022년 01월 15일TIL/2022 2022. 1. 15. 23:46
Network OSI 7Layer 중 7Layer인 Application계층에 대해서 공부를했다. HTTP 프로토콜, URL, Cookie, Session에 대해서 간단히 배웠고 DNS가 무엇인지 배웠다. Swift Comparable에 대해서 복습하고 포스팅을 했다. GCD TableView나 CollectionView에서 이미지를 외부에서 가져올때 비동기적으로 어떻게 처리해야하는지에 대해서 공부했다. Thread에서 가장 주의해야할 Sync문제에는 무엇이 있는지 공부하고 어느 상황에서 발생하고 간단한 해결방법에 대해서 공부했다.
-
Swift - Comparable ProtocolProgramming/Swift 2022. 1. 15. 23:42
안녕하세요 BeePeach입니다 :> 오늘 공부해볼 내용은 지난 포스팅에 이어서 기본적인 Protocol 중에 하나인 Comparable 프로토콜입니다. Equatable과 마찬가지로 우리가 기본적인 Type들의 대소비교를 할 수 있던 것은 기본적으로 제공해주는 Type들이 Comparable을 채용하고 있었기 때문입니다. 그럼 같이 한번 공부해보도록 해요! Adopting a Protocol Using a Synthesized Implementation Comparable은 Equtable과는 조금 다른 부분이 있습니다. 두 값이 같다 다르다와 어느값이 더 크다 작다는 다른 문제입니다. 무엇을 기준으로 더 크거나 작다는것일까요?? 예시를 들어보겠습니다. A라는 사람은 키가 180cm이고 몸무게가 85k..