Taehyeon-Kim / SeSAC

☀️ SeSAC Daily Reporting
27 stars 0 forks source link

[220826] TIL #115

Closed Taehyeon-Kim closed 2 years ago

Taehyeon-Kim commented 2 years ago
Taehyeon-Kim commented 2 years ago

삭제 시 문제 발생

func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
    let favorite = UIContextualAction(style: .normal, title: "삭제") { action, view, completion in

        // - 프로퍼티로 관리
        // - 1. 데이터에 대한 정확성
        // - 2. 가독성
        let task = self.tasks[indexPath.row]

        // 삭제시 같은 데이터에 대해 동시에 접근하다보면 문제가 발생할 수 있음
        // - Record -> Image (문제 발생)
        // - Image -> Record (순서 변경 시 문제 해결) => 근본적인 해결책은 아님.

        self.removeImageFromDocument(fileName: "\(task).jpg")
        try! self.realm.write {
            self.realm.delete(task)
        }
        self.readDiary()
    }

    return UISwipeActionsConfiguration(actions: [favorite])
}
Taehyeon-Kim commented 2 years ago
tableView.beginUpdates()
tableView.endUpdates()
Taehyeon-Kim commented 2 years ago
Taehyeon-Kim commented 2 years ago

데이터베이스 코드에 대한 정리

필요성이 느껴진다면 코드를 개선해보자.

문제 상황

Repository Pattern

  1. Protocol로 필요한 메서드를 모두 만들어준다.
  2. 의존성 주입
Taehyeon-Kim commented 2 years ago

최적화

https://github.com/apple/swift/blob/main/docs/OptimizationTips.rst

Swift Optimization Level

Release(Production Mode)일 때는 최적화 필요

  1. Onone
  2. O
  3. OSize

스크린샷 2022-08-26 오후 12 17 52

WMO(Whole Module Optimization)

전체 모듈 최적화

스크린샷 2022-08-26 오후 12 51 04

Taehyeon-Kim commented 2 years ago

https://taekki-dev.tistory.com/113