전체 글
-
[Diary] 히가시노 게이고의 '매스커레이드 게임'을 읽고무념무상일상/히가시노 게이고 2023. 11. 1. 00:54
2023년 7월 14일에 발매된 따끈따끈한 신작 가가보다 매력적인 닛타형사를 만나러 출발 등장인물: 닛타, 나오미, 아즈사, 노세, 이리에 유토, 가미야 요시미, 모리모토 마사시, 마에지마 다카아키, 하세베 나오, 미와 하즈키 줄거리(스포주의) 전과자 이리에 유토가 살해됐다. 이리에 유토는 가미야 요시미의 아들 가미야 후미카를 폭행하여 식물인간으로 만들었다. 1년 뒤, 후미카는 세상을 떠났다. 또 다른 전과자 고사카 요시히로가 살해됐다. 그는 모리모토 도시에를 강도 살해했다. 유족 모리모토 마사시는 무기징역 또는 사형을 기대했지만 징역 18년에 불과했다. 무라야마 신지는 리벤지 포르노로 한 소녀를 자살에 이르게 만들었다. 피해자 마에지마 유카의 부친 마에지마 다카아키의 삶은 분노로 가득해졌다. 세 살인 ..
-
[Diary] 히가시노 게이고의 '블랙 쇼맨과 환상의 여자'를 읽고무념무상일상/히가시노 게이고 2023. 10. 21. 23:16
블랙 쇼맨 다케시의 단편 이야기 3편이 담겨있다. 단편은 안좋아하는데 모르고 샀다..ㅋㅋ 심지어 종이도 두꺼워서 하루만에 다 읽어버림 책이 엄청나게 두꺼웠던 이전 블랙 쇼맨 이야기와는 정반대인 셈이다. 스토리 요약 첫 번째 단편. 맨션의 여자 등장인물: 마요, 다케시, 우에마쓰 가즈미, 스에가나 나나에(가즈미 대역), 다케우치 유사쿠(가즈미 오빠) 우에마쓰 가즈미는 인테리어를 하기 위해 마요에게 연락한다. 마요는 의심스러운 부분이 많지만 큰 손 고객을 잃지 않기 위해 노력한다. 삼촌 다케시의 바(bar) 트랩 핸드에서 가즈미의 비밀스토리가 밝혀진다. 가즈미의 재산을 노리고 찾아온 가즈미의 오빠가 가즈미를 향해 가짜라고 소리친다. 가즈미가 췌장암에 걸린 사실을 알고 있는데, 이렇게도 건강한 상태이니 그 주..
-
Ch8. Measuring & Boosting PerformanceRay Wenderlich/CoreData 2022. 10. 31. 00:41
Measure, change, verify 개선을 위해 아래 3단계 사이클을 반복하자. [Measure] → [Change] → [Verify] → [Measure] 퍼포먼스를 체크하기 위해 Guage, Instrument, XCTest framework를 사용할 수 있다. 퍼포먼스를 향상시키는 코드를 작성한다. 다시 퍼포먼스를 측정하여 개선이 되었는지 확인한다. 이를 반복한다. 이 챕터에서 사용한 퍼포먼스 개선 NSManagedObject에서 불필요하게 큰 Binary를 Fetch하고 있다면 별도의 Entity로 분리하자. NSFetchRequest의 fetchBatchSize를 활용하여 한 번에 fetch하는 Object의 수를 줄여보자. NSExpression을 활용하여 필요한 데이터만 fetch하..
-
Ch7. Unit TestingRay Wenderlich/CoreData 2022. 10. 31. 00:41
Core Data stack for testing 좋은 유닛테스트는 FIRST를 따른다. Fast Isolated Repeatable Self-verifying Timely 이 샘플 프로젝트의 테스트 타겟은 서비스를 위한 앱 타겟과 다른 AppDelegate를 사용하도록 셋팅되어 있다. 코어 데이터는 디스크에 데이터를 Write한다. 하지만 이는 Isolated하지 않다. 또한 데이터가 영구적이기에 한 번 데이터를 Write하면 다른 테스트에 영향을 줄 수 있다. Repeatable하지 않다. 그렇다면 데이터를 Write하고 Delete해주면 어떨까? 이는 Fast하지 않다. 이를 해결하기 위해 in-memory SQLite store를 사용한다. class TestCoreDataStack: CoreDa..
-
Ch6. Versioning & MigrationRay Wenderlich/CoreData 2022. 10. 27. 22:41
마이그레이션이 필요한 아래 시나리오를 구현해본다. [노트를 작성할 수 있는 앱] 텍스트를 작성할 수 있다. 이미지를 추가할 수 있도록 변경. (Lightweight migration) 이미지를 여러장 추가할 수 있도록 변경. (Manual migration using Mapping model) 이미지가 아닌 다른 리소스도 첨부할 수 있도록 변경. (Manual migration using Mapping model and subclass of NSEntityMigrationPolicy) 연속적이지 않은 버전의 마이그레이션을 지원하기 Ex) v2 → v4 The migration process 마이그레이션은 3단계로 나뉜다. First, Core Data copies over all the objects f..
-
Ch5. NSFetchedResultsControllerRay Wenderlich/CoreData 2022. 10. 27. 22:34
NSFetchedResultsController의 세 가지 장점 Section Cache Monitoring 이전 챕터에서 봤듯, CoreData는 UITableView와 잘 어울린다. NSFetchedResultsController를 사용하면 UITableView와의 조합을 더 잘 활용할 수 있다. NSFetchedResultsController는 NSFetchRequest를 감싸며 FetchResult를 내부에 갖고 있다. 그래서 fetch하는 메소드의 리턴타입이 Void다. lazy var fetchedResultsController: NSFetchedResultsController = { let fetchRequest: NSFetchRequest = Team.fetchRequest() let zo..
-
Ch2. NSManagedObject SubclassesRay Wenderlich/CoreData 2022. 10. 27. 22:33
Modeling your data XCode Editor에서 attribute를 원하는대로 추가할 수 있다. 원하는 이름과 타입을 선언하면 된다. 타입은 매우 종류가 많다. Boolean, Date, Double, String, Integer16, Integer32, Integer64, UUID, URI 등 그리고 Binary Data도 있다. (blob형태로 저장하는 기능이 지원됨) 그런데 바이너리를 저장했다가는 이 엔티티에 접근할 때마다 바이너리 데이터가 메모리에 올라가기 때문에 비효율적이다. XCode는 이를 방지하고자 Attributes Inspector에서 Allows External Storage옵션을 제공한다. Allows External Storage → 데이터베이스에 바로 파일을 저장하지..
-
[Diary] 히가시노 게이고의 '기도의 막이 내릴 때'를 읽고무념무상일상/히가시노 게이고 2022. 10. 13. 01:17
줄거리(스포O) 소설의 시작 배경은 센다이의 술집. 다지마 유리코가 종업원으로 일하고 있다. 하지만 p.15에서 유리코는 사망한 채 발견된다. 다지마 유리코는 가가 교이치로의 어머니다. 유리코와 가깝게 지냈던 와타베 슌이치는 미야모토 야스요에게 가가의 연락처를 알려준다. 가가는 센다이로 와 유리코의 시신을 수습하고 유품을 정리한다. 가가는 와타베 슌이치가 누군지, 자신의 연락처를 어떻게 알아냈는지 모른다. 도쿄의 한 맨션에서 오시나티 미치코의 시신이 발견된다. 맨션의 주인은 고시카와 무쓰오. 미치코와 무쓰오의 관계는 유족들도 모른다고 했다. 역시나 사건이 시작부터 쉽지 않다. 비슷한 시기에 근처 공원 오두막에서 노숙자로 보이는 시신도 발견된다. 경찰은 이 노숙자가 와타베 슌이치일 것이라고 생각하고 그가 ..