본문 바로가기

분류 전체보기

(351)
193. Fetched Result Controller Fetched Result Controller FetchedResultController는 영구 저장소에서 가져온 내용을 관리하고 표시한다. 주로 TableView와 연동할 때 사용한다. Delegate 구현을 사용해 데이터를 모니터링하고 업데이트하며, Caching을 사용해 읽기 성능을 향상할 수 있다. 이 둘의 사용 여부에 따라 3가지 모드를 사용할 수 있다. Delegate Caching No Tracking Mode ❌ ❌ Memory-Only Tracking Mode ⭕️ ❌ Full Persistent Tracking Mode ⭕️ ⭕️ No Tracking Mode 가져온 데이터를 관리하는 최소한의 역할만 수행한다. Memory-Only Tracking Mode 가져온 데이터를 관리하며, M..
[~ 2022.02.28] 일상, 광주 (Ricoh GR 3x) 서론 RICOH GR 3x / 포지티브 필름, 커스텀 대부분 보정 없음(못함) 꾸준히 올리고 싶었지만 그러지 못했다. 시작부터 요란한 새 해였고, 그만큼 기억에 남을 1월이었다. 소소하고 작은 일상 사진들이 대부분에, 광주로 떠났던 여행 사진을 몇 장 올려 본다. (너희들 얼굴은 알아서 안 올라간다. 걱정 말도록) 누군가에게 전달해 줄 사진들이 있었기에 보정을 한 사진들이 있다. 그런 사진들은 글에 언급해 두도록 하겠다. 본론 LAB1004 - 독산 이게 웬 걸 21년의 마지막 날을 너희와 보냈었다. 아직은 정기 모임이 되기 전 두 번째 '독서 모임'이었고, 썩 괜찮은 분위기의 카페였고, 큰 창으로 햇빛도 눈이 시리게 들이쳤지. 의자는 조금 불편해서 책을 오래 읽기에는 조금 힘들었던 것 같다. 이모네 고..
192. Expression Expression Format 문자열 대신 Class로 조건을 지정할 때 사용한다. 사용 빈도는 낮지만 평균, 합계 등의 연산에서 월등히 높은 성능을 보여준다. 대신 상대적으로 구현에 필요한 코드의 양이 많고, 동작 방식이 난해하다는 단점이 있다. Table View Cell의 디자인은 위와 같고, 평균 연봉은 해당 부서의 직원 목록에 접근한 뒤 연봉 데이터에 접근해 계산을 진행한다. ExpressionViewContoller.swift > tableView(_:cellForRowAt:) func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.deq..
191. Predicate Syntax Predicate Syntax NSPredicate(format: String, arguments: CVaListPointer) NSPredicate(format: "target LIKE %@", "value") 여러 생성자 중 위의 생성자의 사용 빈도가 가장 높다. pram1 : Format 문자열 : 해당 문자열을 사용해 검색 조건을 지정 "targer LIKE %@"은 target 속성에 저장된 문자열을 검색한다. LIKE는 문자열 비교에 사용되는 연산자이고, Format 문자열 자체는 대소문자를 가리지 않지만 LIKE와 같이 연산자 등에 해당하는 키워드들은 대문자로 작성하는 것이 관행이다. 두 개 이상의 공백은 하나로 취급한다. %@는 포맷 지정자로 Swift의 것과 동일하다. param2 : 포..
190. Predicate Predicate Spotlight, CoreData에서 검색조건을 나타낼 때 사용되는 Predicate는 기술의 종류, DB의 종류에 상관없이 검색조건 지정이 가능하다는 장점이 있다. 구현 자체에서 대소문자를 구분하진 않지만 키워드는 대문자로, 그 외엔 lowerCamelCase로 작성하는 것이 보통이다. predicate를 사용하면 데이터 전체를 context에 전달하는 게 아닌 predicate의 조건에 맞는 데이터만 context에 전달하기 때문에 속도 향상을 기대할 수 있다. PredicateViewController.swift fetch() employee의 데이터를 이름순으로 정렬해 list 배열에 저장 TableView 새로고침 searchBarSearchButtonClicked() 선택한..
Python #1 서론 홈페이지를 만들어 보겠다고 삽질할 때도, 앱을 만드는 중에도 이제는 머리가 굳은 건지 원래도 멍청했던 게 이제야 티가 나는 건지 슬슬 공부를 떠나서 프로젝트에 돌입하며 한계를 느끼기 시작했다. 보고 이해하는 것과 처음부터 내가 생각한 것을 구현하는 것은 상당히 큰 차이가 있다. 이걸 메꾸기 위해 다른 공부가 필요하다고 생각했다. Swift를 공부하고, 가장 많이 사용하기는 하지만 진입이 쉽고, 자료가 많기로는 Python을 따라가기 힘들다. 따라서 알고리즘 자체를 공부하고, 예제를 풀고, 이를 서로 공부하는 자리를 마련했는데, 사용하는 언어들이 다양하다 보니 같이 공부할 때는 Python을 사용하기로 결정했다. 한 녀석은 대학원생으로 Python을 이미 사용하고 있고, 한 녀석은 웹 개발자로의 취직..
티스토리에 Disqus 댓글을 연결해 보자. 서론 이전에 잘 사용하던 네이버 블로그를 버리고 자작을 거쳐 티스토리로 오게 된 데에는 '도메인' 문제가 가장 컸다. 블로그가 예쁘고 안 예쁘고를 떠나 어릴 때는 항상 '~.com'같은 나만의 주소가 있었으면 했으니까. 대학교를 졸업할 때 즈음 도메인을 구입했던것 같다. 티스토리는 현재 2차도메인을 반쪽만 지원한다. 연결은 가능하되, 해당 주소로 접근하는 경우 로그인을 필요로 하는 모든 기능을 사용할 수 없다. 이는 하나의 페이지에 두개의 주소가 할당되는 '크로스 도메인'에 관련된 것으로, 티스토리 측은 이를 해결하기 위해 고군분투하는 것으로 보이지만 이게 그렇게 호락호락한 문제가 아니라는 것을 잘 알고 있다. 졸작 때도 그렇게 우리를 괴롭혔었으니까 말이다. 좌우간 아무리 공부 목적의 블로그라지만, 개인..
187 ~ 189. Fetch Request Fetch : CoreData에서 데이터를 읽어 오는 것 Fetch Request : 읽어올 데이터의 종류, Filtering 조건, 정렬 방식 등을 포함하는 객체 Request로 불리는 이유는 이를 직접 처리하지 않고 Context에 요청하고, Context가 대신해서 이를 처리하기 때문 Fetch Request 생성하기 FetchAllViewController.swift class FetchAllViewController: UITableViewController { var list = [NSManagedObject]() @IBAction func fetch(_ sender: Any?) { let context = DataManager.shared.mainContext } override func vi..
레오폴드 750RBT 맥에서 써보기 요약 어떤 식으로 작동되는 건지 궁금하다면 글을 읽어 보시길 바란다. 수정에는 어느 정도의 정보가 필요하니 글을 읽어 보시길 바란다. 그것도 귀찮다면 일단 파일을 올려 드린다. hidutil key remapping generator hidutil-generator.netlify.app 직접 수정하는 게 귀찮다면 해당 사이트의 도움을 받는 것도 좋다. 해당 파일의 본 글과 같이 매핑하도록 돼있는 plist 파일이다. 'Macintosh HD > Library > LaunchAgents' 경로에 넣고 재부팅하면 적용된다. 적용하고 딥스위치와 설정만 변경하면 그림의 레이아웃과 동일하게 사용할 수 있다. 해당 파일은 Keyboard Application 키에 Fn 키를 할당한 plist 파일이다. 'Macin..
187. Entity Hierarchy, Relationships Entity Hierarchy Student Employee name = name age = age address = address gender = gender grade salary course 위와 같은 Data Model에서 Student와 Employee의 name, age, address, gender 4가지의 Attribute가 동일하다. 이러한 경우 양쪽에 반복해 생성하기 보다는 공용으로 사용할 수 있도록 하는 것이 효율적이다. 이러한 것을 Entity 계층이라고 부르고, CoreData는 이것을 지원한다. 위와 같이 Person으로 공통된 Attribute를 분리하는 Entity를 생성하고, 필요한 Entity에서 이를 동일하게 사용하도록 구현하면 데이터 모델 구현에 필요한 시간이 감소 데..