All
-
TIL - 2022년 01월 14일TIL/2022 2022. 1. 15. 00:02
Network OSI 7 Layer 중 4Layer인 Trasnport계층에 대해서 공부를 했다. TCP/UDP 프로토콜과 NAT, TELNET, SSH의 대한 개념을 배웠다. Swift Equtable에 대해서 복습했다. 이미 알고 있었지만 공식문서들을 참고해서 모르는 부분도 확인하고 갔다. GCD DispatchGroup과 Semaphore 그리고 WorkItem에 대해서 복습을 했다. 새롭게 알게 된 점은 group 안에서 async 작업을 하게 되면 group이 끝나는 시점과 async작업이 끝나는 시점이 맞지 않을 수 있으니 조심해야 한다는 점이다. 해결 방법은 직접 enter()와 completionHandler에 leave()를 호출하는 것! CoreData 공부한 부분이 많아서 지금까지 공..
-
Swift - Equatable ProtocolProgramming/Swift 2022. 1. 14. 18:17
안녕하세요 BeePeach입니다 :) 오늘 공부해볼 내용은 기초적인 Protocol 중 하나인 Equatable 프로토콜입니다. 우리가 비교 연산자를 통해서 Int, String 등 기본적인 Type을 서로 비교할 수 있던 것은 Swift Standard library에서 제공하는 대부분의 Type들은 기본적으로 Equatable 프로토콜을 채용하고 있기 때문입니다. 그럼 우리가 직접 만든 Custom Type들은 선언할 때 Equtable을 추가해주지 않는데 비교가 가능할까요?? 우리가 주로 만드는 Type은 Class, Struct, Enum이 있을 텐데 어떻게 되는지 하나하나 알아보도록 하겠습니다. Adopting a Protocol Using a Synthesized Implementation A..
-
TIL - 2022년 01월 13일TIL/2022 2022. 1. 14. 00:18
GCD Queue를 사용할 때의 주의사항에 대해서 공부를 했다. Deadlock이 발생할 수 있는 경우도 알아보았다. Closure의 캡처리스트에 대해서 다시 복습하는 기회가 됐고 weak self와 guard let self = self 코드를 사용하는 이유도 확실하게 이해하게 됐다. Architecture RIBs를 이용해서 앱을 구현하는 방법에 대해서 공부를 했는데 MVC에 익숙해져서 이러한 코드 디자인은 역시 이해하기 힘들다. 지금은 이해가 잘 안되지만 이것도 이후에 보면 이해가 잘 되겠지?? Algorithm Kruskal알고리즘을 구현하는 방법에 대해서 공부를 했다. 효과적인 알고리즘 구현을 위해서 path compression, union-by-rank 기법에 대해서 공부했다. 코드를 보면 ..
-
TIL - 2022년 01월 12일TIL/2022 2022. 1. 13. 01:52
GCD Thread를 다룰 때 직접 생성하지 않고 Queue에 전달하면 처리한다는 개념과 sync, async, serial, concurrent에 대한 개념에 대해서 복습을 했다. Architecture 앱을 개발할때 기능들을 작은 객체로 나누고 composition해서 구현해야 한다는 개념에 대해서 공부를 했다. 여기서 map, flatMap을 이용하여 코드를 구현하는 방법도 공부해보았다. 코드를 작성할 때 고차 함수를 거의 안 썼는데 의식을 하고 써보려고 노력해봐야겠다! Swift Protocol extension으로 protocol을 확장하는 방법에 대해서 공부했다. iOS Predicate에 대해서 상세히 공부를 했다. CoreData를 사용할 때 데이터를 query 하기 위해서 꼭 알아야 하는..
-
Swift - Protocol ExtensionProgramming/Swift 2022. 1. 12. 18:50
안녕하세요 BeePeach입니다 :) 오늘 공부해볼 내용은 Protocol Extension입니다. Protocol도 Type이기 때문에 extension을 이용해서 확장시킬 수 있습니다. Extension을 활용하면 아래의 기능을 추가시킬 수 있습니다. Protocol Default Implenentation(기본구현) 추가 Constraints (제약) 추가 그럼 하나하나씩 공부해볼까요?? Extension 우리가 이전에 배웠던 extension의 가장 기본적인 사용법은 Type에 없던 멤버들을 추가시키는 것이었습니다. Extension을 이용하면 protocol에 computed property, method, subscript를 추가시킬 수 있습니다. 그럼 여기서도 protocol에 없던 요구사항..
-
TIL - 2022년 01월 11일TIL/2022 2022. 1. 12. 00:26
iOS CoreData 공부를 하다가 갑자기 completionHandler에 대한 이해가 완벽하게 됐다. 예전에 한번 이해해보려고 열심히 검색하며 공부해봤었는데 결국 이해를 완벽하게 못하고 그냥 그렇군... 하고 넘어간 적이 있었다. Thread와 async, sync에 대해서 이해를 하게 되다 보니 자연스럽게 이해가 된 거 같다. CompletionHandler에 대해서는 조만간 포스팅을 해야겠다 CoreData는 Entity 간의 관계와 계층에 대해서 공부를 하고 데이터를 가져올 때 사용하는 FetchRequest에 대해서 공부를 했다. 워낙 많은 분량이다 보니 공부하는데 시간이 많이 걸렸지만 이해가 잘되니 어려운 건 없었다. 예전에 맨 처음 공부했을 때는 나는 누구...? 여긴 어디..? 이런 기..
-
TIL - 2022년 01월 10일TIL/2022 2022. 1. 10. 23:15
iOS CoreData에 대해서 복습을했다. 예전에 공부한게 있어서 이해하는데 어렵지 않았지만 워낙 공부해야할 양이 많아서 디테일한 부분들을 자꾸 까먹게 된다. CoreData Stack에 대해서 공부하고 Data Model File로 Entity 생성하고 사용하는 방법에 대해서 공부했다. NetWork OSI 7 Layer에 2계층에 해당하는 DataLink에 대해서 공부를했다. MAC주소, Ethernet등의 용어에 대해서 공부를했고 어떤식으로 데이터를 주고 받는지 발생하는 문제는 뭐가있고 어떤 방식으로 문제를 해결하는지에 대해서 알아보았다. Dijkstra 알고리즘 구현하기 최단경로를 구할때 사용하는 Dijkstra 알고리즘에 대해서 공부를 했다. 로직만 잘 이해하고있다면 구현하는데 엄청 어렵지는 ..
-
ERROR - Can't find keyplane that supports type 4 for keyboardProgramming/Errors 2022. 1. 10. 18:26
Project Can't find keyplane that supports type 4 for keyboard iPhone-PortraitChoco-NumberPad; using 27059_PortraitChoco_iPhone-Simple-Pad_Default 으음...? 방금 전까지만 해도 잘 되던 프로젝트에서 TextField에 입력을 하려고 하니 이러한 로그가 뜨면서 앱이 멈춰버렸다. 프로젝트가 이 keyboard를 지원하지 않는다 라는 내용인데 짐작 가는것은 평소에는 블루투스 키보드를 사용하고 밖에서는 노트북 내장 키보드를 사용한다는 점. 그리고 최근에 키맵핑을 위해 카라비너를 다운로드하여서 노트북 인식 키보드가 변경됐다는 점이다. 해결 방법은 Simulator -> I/O -> Keyboard ..