전체 글
[Combine 책 정리] Chapter 9: Networking
안녕하세요 코찐입니다. 아래의 자료를 따라서 공부하고 있습니다. https://www.raywenderlich.com/books/combine-asynchronous-programming-with-swift/v2.0 한 가지 API Publisher에 여러 Subscriber가 붙는 예제입니다. let url = URL(string: "https://www.raywenderlich.com")! let publisher = URLSession.shared .dataTaskPublisher(for: url) .map(\.data) .multicast { PassthroughSubject() } let subscription1 = publisher .sink(receiveCompletion: { complet..
[iOS] 이슈 해결: CloudKit integration does not support unique constraints
안녕하세요 코찐입니다. 어제 개인앱으로 만들고 있는 '행복한 사전'에 메일이 들어왔습니다. 오랜만에 앱을 수정하고자 Xcode에서 앱을 켰는데 에러가 뜨네요ㅎ;; 이번 글에서는 CloudKit integration does not support unique constraints. 이 에러에 대해서 한번 알아보겠습니다. Thread 2: Fatal error: Unresolved error Error Domain=NSCocoaErrorDomain Code=134060 "코어 데이터에서 오류가 발생했습니다." UserInfo={NSLocalizedFailureReason=CloudKit integration does not support unique constraints. The following entit..
[Combine 책 정리] Chapter 7: Sequence Operators
안녕하세요 코찐입니다. 아래의 자료를 따라서 공부하고 있습니다. https://www.raywenderlich.com/books/combine-asynchronous-programming-with-swift/v2.0 Finding values min greedy: publisher가 finsih될 때 까지 기다림 [1, -50, 246, 0].publisher.min() // -50 value가 Comparable을 준수하지 않는다면? Comparable을 준수하지 않는 객체가 있으면 비교문을 직접 넣어서 min을 사용할 수 있다. 아래 예제에서는 억지로 Comparable을 준수하지 않도록 만든 다음 min을 찾도록 해보는 것. 조금 억지지만 이렇게 하면 결과값에서 다시 String으로 변환해서 체크해..
[OS] 3. 고등운영체제, 인터럽트 기반 운영체제: 최근의 고급운영체제, 인터럽트에 기반한 현대 운영체제
안녕하세요 코찐입니다. 이번에는 고등운영체제에 대한 수업을 듣고 정리하겠습니다. http://www.kocw.net/home/search/kemView.do?kemId=978503 보면서 정리하고 있습니다. 학부내용에서는 중요한 내용은 아니지만, 운영체제가 앞으로 어떤 방향으로 전개될지 알아두면 좋다고 합니다. 대학원 수준에서 고등 운영체제 학습할 수 있습니다. 0. 기본 폰 노이만 구조 1. 다중 프로세서 시스템 (Multiprocessor system) CPU(Processor)가 여러개 있는 시스템 병렬 시스템 강 결합 시스템: 하나의 메모리에 CPU가 여러개 붙어있음 장점 1. 퍼포먼스: 일꾼이 여러명. 더 많은 일을 할 수 있음 2. 비용: 저렴한 CPU 여러개를 두는게 더 저렴 3. 신뢰성: ..
[iOS] 다크 모드에서 cgColor 적용하기
안녕하세요 코찐입니다. 이번에는 다크모드에서 cgColor 적용하는 이슈를 정리해보겠습니다. iOS는 UITraitCollection를 통해서 적절한 컬러를 적용하게 되는데요. https://developer.apple.com/videos/play/wwdc2019/214/ 에서 내용을 소개하고 있습니다. https://eunjin3786.tistory.com/301 이 글에서 WWDC 내용을 잘 정리해주고 있습니다! 간단한 예제를 통해 알아보겠습니다. MainColor라는 컬러셋을 만들었습니다. 뷰의 테두리를 그리거나 그림자를 넣을 때 등을 위해서 CGColor를 사용합니다. cgColor는 dynamic color를 지원하지 않아서, UITraitCollection를 먼저 반영해서 cgColor로 뽑아..
[iOS] UITextField placeholder color 변경하기
안녕하세요 코찐입니다. UITextField를 쓸 때 플레이스 홀더 텍스트의 색상을 변경할 일이 있습니다. textField.placeholderColor 로 지정가능하면 좋을텐데 그런 변수는 없습니다... 그래서 매번 검색해서 찾게되는데요. 다음에 또 찾을 수 있도록 기록차 남겨둡니다. 해결책 https://stackoverflow.com/questions/1340224/iphone-uitextfield-change-placeholder-text-color iPhone UITextField - Change placeholder text color I'd like to change the color of the placeholder text I set in my UITextField controls, t..
[iOS] overrideUserInterfaceStyle 부분 적용하기
안녕하세요 코찐입니다. iOS 13 부터 다크모드가 도입되었습니다. 앱 전체를 시스템 설정에 따라 다크모드 적용한다면 별 이슈가 없을 수도 있을 것 같습니다. 하지만 제가 개발 중인 환경에서는 일부만 다크모드를 적용해서 업데이트하기로 했습니다. 그리고 시스템 설정이 아니라 앱 내부 설정에서 다크모드 변경을 제공하는 경우도 있을 겁니다. 그럴 때 유용하게 사용할 수 있는 프로퍼티가 있습니다. https://developer.apple.com/documentation/uikit/uiview/3238086-overrideuserinterfacestyle overrideUserInterfaceStyle 인데요. 상위 ViewController나 Windowr가 다크모드로 되어 있더라도, 하위 View만 라이트모..
[Git] Invalid username or password 문제 해결
Github 비밀번호를 변경하고 나면 기존에 사용하던 레포를 pull/push 하지 못하는 경우가 있습니다. 어려운 문제는 아니지만 비밀번호를 변경할 때마다 삽질을 해서 글로 남겨둡니다. remote: Invalid username or password. https://jinseongsoft.tistory.com/251 이 글을 보면 remote를 지웠다가 다시 add 하는 방법인데, 제가 사용하는 환경에서는 작동하지 않았습니다. 제 경우에는 계정이 키체인에 저장되어 있어서 remote를 다시 연결해도 안되는 것 같습니다. In a case you entered incorrect password, please update it in Keychain Access application. 동일한 아이디/비밀번..