일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- IOS
- 청년취업사관학교
- Realm
- SeSAC
- MainScheduler.asyncInstance
- combine
- MainScheduler.Instance
- 오픈채팅방
- 프로그래머스
- gitflow
- MainScheduler
- leetcode
- GCD
- DependencyInjection
- 명품cppProgramming c++
- MethodSwilzzling
- rxswift
- DiffableDataSource
- 등굣길
- SwiftUI
- DynamicMemberLookup
- cleanarchitecture
- SRP
- data_structure
- 코테
- RaceCondition
- CoreBluetooth
- swift
- GIT
- DispatchQueue
- Today
- Total
목록분류 전체보기 (73)
Do.
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 1. 핵심은 출입로그 메시지에서 이름이 변경된 유저의 로그 내용을 변경해야 한다는 뜻이다. 일일이 서치해서 지우기에는 입력 받는데 O(N), 출력문으로 컨버팅 하는데 O(N) 으로 O(N^2)이므로 여유가 없다. 따라서 User를 클래스로 정의하고, 참조를 통해 해결해 볼 수 있다. 2. User는 id로 구분 가능한 Hashable 객체이다. 3. Chat 클..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 1. 기본적인 알고리즘은, 1칸씩 잘라보고, 그 다음 2칸씩 잘라보는 행위를 계속 반복하는 것이다. 이때 문자열이 1,000 자 라면 500자 까지만 잘라보면 되는데, 왜냐하면 501자를 자르게 되면 남은 길이가 499자 이므로 앞서 자른 문자와 무조건 일치하지 않는다. 따라서 전체길이 S 일 때 S/2 까지만 자르는 동작을 반복하면 된다. 2. 문자열의..
Issue DiffableDataSource와 Realm을 함께 썼을 때 발생했던 문제와 해결법 DiffableDataSource는 Diff을 위해서 일종의 뷰의 상태를 가지고 있는데, 데이터가 변하면, 이전에 가지고 있던 상태와 비교해서 뷰를 갱신합니다. Storage에서 Object3이 삭제가 되고, snapshot을 재 구성해서 dataSource에 apply를 실행하게 되면, 이전 DataSource Snapshot과 비교해서, 화면을 갱신하는 상황입니다. 그런데 해당 과정에서 Realm 예외처리 오류가 발생합니다. RealmManager.shared.deleteTodo(todo: todo) print(dataSource.snapshot().itemIdentifiers(inSection: .Tas..
CAF란? Core Audio Format(이하 CAF)는 애플에서 개발한, 오디오 포맷으로 기존의 AIFF, WAV등의 한계점을 개선하기 위한 포맷이다. Advantages 무제한 파일 사이즈 AIFF, AIFF-C, WAVE는 기존 오디오 포맷은 4기가바이트의 용량 제한이 있었고, 대략 15분 정도의 길이의 오디오만 담을 수 있었지만, CAF는 용량에 제한이 없기 때문에, 이론적으로 수백년 길이의 오디오도 저장 할 수 있다. 안전하고 효율적인 녹음 AIFF와 WAV는 녹음이 끝난 뒤 파일의 사이즈를 나타내는 헤더를 업데이트 해야하는데, 헤더 저장이 정상적으로 완료되지 않으면 파일을 못쓰게 되는 경우가 있다. CAF는 헤더없이 파일의 사이즈를 결정할 수 있다. 호환성 CAF는 다양한 오디오 포맷의 래퍼..
Bluetooth iOS에서는 BLE(Bluetooth Low Energy) 무선 기술을 CoreBluetooth 프레임워크를 통해 연결 가능하다. Central: Bluetooth 장치에서 데이터를 수신하는 개체 Peripheral: 다른 장치에서 사용할 데이터를 게시할 Bluetooth 장치 Advertising Packets: 블루투스는 Advertising Packets 형태로 가지고 있는 데이터 중 일부를 브로드캐스트 한다. 패킷에는 주변 장치의 이름, 기능 등과 같은 정보가 포함될 수 있다. Central의 역할은 이러한 AdvertisingPackets 을 스캔하고 관련이 있는 주변 장치를 식별하고 개별 장치에 연결하고 추가 정보를 확인한다. Service 주변 장치의 특정 기능 또는 특징을..
하드웨어 환경 해결방법 Xcode 로제타로 실행하세요 🤬 소개 NMapsMap을 사용해야 하는데, 해당 프레임워크는 cocoapods 설치밖에 지원하지 않습니다. 거기다 잘~ 설치하고나서 보니, SPM으로 설치된 것들이 빌드 오류가 발생습니다.
Intro 출시한 프로젝트에 GoogleCrashlytics랑 Analytics 달아놓고, 평생 비공개 할꺼라, 신경을 못썼는데, 프로젝트를 공개로 돌리려고 봤더니, GoogleService-Info.plist 가 노출이 되는걸, 뒤늦게 눈치챘다. Gitignore에 넣는것도 깜빡했고, Commit 로그에도 남아있는 관계로... 깃에서 파일을 삭제하고 커밋 히스토리에서 해당 파일을 삭제하고자 했다. 파일 삭제 우선 git에 잘못 등록된 파일은 아래 명령어를 사용하자 git rm --cached -r git rm --cached cached 옵션은, remote에서 이를 삭제한다는 뜻으로 해당 옵션이 없으면 local에서도 삭제해버리니, 주의하자 삭제한 후, gitignore에 추가하고, commit, p..
(네이버 블로그에서 이전 작성한 글입니다) 2. ④ - 기계어로 프로그램을 작성하는 것은, 그만큼 사이드이펙트를 줄일 수 있지만, 생산성 측면에서 완전히 낭비입니다. 좋은 개발자가 되는 지름길로는 보기 힘듭니다. 4. ② - C언어는 절차 지향 프로그래밍 언어입니다. 6. ② 객체 지향의 특성은 다음과 같습니다. - Encapsulation - Inheritance - Polymorphism - Abstraction https://www.codeproject.com/Articles/22769/Introduction-to-Object-Oriented-Programming-Concep#OOP Introduction to Object Oriented Programming Concepts (OOP) and Mo..