Si Jong Tech Blog
close
프로필 배경
프로필 로고

Si Jong Tech Blog

  • 분류 전체보기 (253)
    • ◽️ Programming (253)
      • T I L (92)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
Device 잠금 상태 추적해 백그라운드 데이터 업로드 하기

Device 잠금 상태 추적해 백그라운드 데이터 업로드 하기

오늘은 이전에 백그라운드를 통해 데이터를 수집했던 로직을 사용했을 때 iOS 정책 상 디바이스가 잠겼을 때 데이터에 접근할 수 없는 다소 민감한 데이터들을 처리하기 위해 고민 했던 내용을 기록으로 남겨두려고 한다. SensorKit, HealthKit 데이터와 같이 다소 민감한 데이터는 백그라운드에서 데이터 수집이 가능하지만, 디바이스가 잠겨있을 때 데이터 접근이 불가해진다. 목표는 최대한 많은 데이터를 수집해야하기 때문에 이 점을 바탕으로 가장 최선의 방식은 디바이스 잠김이 해제됐을때 데이터를 수집할 수 있도록 구현하는게 가장 좋다고 판단했다. 먼저 가장 중요한 개념은 UIApplication에서 protectedDataDidBecomeAvailableNotification 부분이라고 볼 수 있다. h..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 11. 7.
  • textsms
iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (3)

iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (3)

2024.10.28 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)2024.10.30 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2) 오늘은 3번째 시간으로 Swift의 자료구조에 대해서 알아보고자 한다. 오늘 알아 볼 내용들은 평소 개발을 진행하면서 주로 많이 사용하는 Array, Dictionary 등 익숙한 개념이지만 이 내용을 그냥 단순하게 집합의 느낌 정도로 사용했다면 어떤 개념을 가지고 있는지 보다 더 자세하게 다뤄 보고자 한다. 먼저 스위프트 표준 라이브러리가 제공하는 세가지 주요 데이터 구조는 Array, Dic..

  • format_list_bulleted ◽️ Programming/◽️ Computer Science
  • · 2024. 11. 4.
  • textsms
iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2)

iOS Swift의 자료구조, 알고리즘에 대해서 알아보자 (2)

2024.10.28 - [◽️ Programming/◽️ Computer Science] - iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1) iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)오늘부터 자료구조에 대해서 자세하게 알아보는 시간을 가져보려고 한다. 앱의 효율성을 끌어올리기 위해서는 CS에 대한 이해가 뒷받침되어야 하기 때문에 총 6챕터로 나누어진 Swift 자료 구조dongdida.tistory.com 1편에 이어서 복잡도에 대해서 더 알아보자!! 로그 시간 Logarithmic time앞서 1편에서 인풋의 모든 요소가 최소 한번씩 검사되는 선형복잡도와 2차 시간 복잡도에 대해 알아보았다. 그러나 이 방법도 있지만 인풋의 서브셋만 검사하는 시나리오도 있다. 이..

  • format_list_bulleted ◽️ Programming/◽️ Computer Science
  • · 2024. 10. 30.
  • textsms
iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)

iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (1)

오늘부터 자료구조에 대해서 자세하게 알아보는 시간을 가져보려고 한다. 앱의 효율성을 끌어올리기 위해서는 CS에 대한 이해가 뒷받침되어야 하기 때문에 총 6챕터로 나누어진 Swift 자료 구조 알고리즘의 자료를 한국어로 잘 번역해준 자료가 있어 이걸 통해 한번 공부해보자!https://kimdee.tistory.com/entry/Swift번역-스위프트의-자료구조와-알고리즘-섹션-1-소개-챕터3-스위프트-표준-라이브러리-Swift-Standard-Library 오늘은 전체 챕터를 한번 훑는 느낌으로 알아보도록 하자 복잡도 Complexity우리가 구현하면서 혹은 코딩테스트를 풀면서 접하는 명칭 중 하나는 바로 복잡도이다. 이 복잡도는 소프트웨어 개발의 설계 단계에서 항상 묻게되는 질문이다. 아키텍처 관점에서..

  • format_list_bulleted ◽️ Programming/◽️ Computer Science
  • · 2024. 10. 28.
  • textsms
Firebase RealtimeDatabase 내 데이터 저장하기

Firebase RealtimeDatabase 내 데이터 저장하기

오늘은 앱 내 다양한 라이브러리를 바탕으로 생체데이터, 생활 데이터 등 이용자의 데이터를 수집하고 해당 데이터를 저장하기 위해 firebase에 데이터를 저장하는 방식에 대해서 알아보려고 한다. 이전에 다룬적이 있으니 SPM을 통해 firebase 를 추가하고 firebase에서 콘솔에 프로젝트를 추가해 GoogleService-Info.plist를 추가하는 과정은 생략하고 진행해보자 ㅎㅎ 이미 많이 해봤으니까! firebase 중 realtimeDatabase에 데이터를 저장하는 과정을 기록해보려고 한다. 먼저 Firebase 데이터 베이스에 접근하기 위해 Database 참조를 생성해 담아주어야 한다.private let realtimeDatabase = Database.database().refer..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 10. 25.
  • textsms
SwiftUI와 UIKit의 다른 생명주기 방식

SwiftUI와 UIKit의 다른 생명주기 방식

SwiftUI와 UIKit은 서로 다른 프레임워크로 각각 고유한 생명주기를 가지고 있다. SwiftUI는 선언형 프레임워크로 뷰의 상태에 따라 UI가 자동으로 업데이트 되도록 설계되어 있고 UIKit은 명령형의 프레임워크로 개발자가 뷰의 변화를 수동으로 제어 해야한다는 특징을 가지고 있다. 이러한 특징에서 비롯되어 SwiftUI의 생명주기는 UIKit의 생명주기와 다르게 동작한다. 특히 상태 관리, 화면 전환, 데이터 바인딩의 방식에서 큰 차이가 있다. UIKit의 생명주기를 다룬 글은 하단에 있으니 넘어가도록 하고 SwiftUI에서 이와 같은 역할을 하는 특징에 대해서 알아보도록 하자.https://dongdida.tistory.com/112 iOS View와 App의 Life Cycle (생명주기) ..

  • format_list_bulleted ◽️ Programming/SwiftUI
  • · 2024. 10. 22.
  • textsms
@AppStorage , UserDefaults의 특징

@AppStorage , UserDefaults의 특징

오늘은 AppStorage를 처음 사용해보면서 이전에 알고 있었고 사용했었던 UserDefaults와의 차이 및 특징에 대해서 알아보려고 한다. 먼저 UserDefaults는 이전에 UIKit에서 부터 자주 사용하던 개념이기 때문에 먼저 정리하고 넘어가보자!UserDefaults는 iOS에서 데이터를 영구적으로 저장하고 읽어오는데 가장 흔하고 쉽게 사용된다. 큰 데이터를 저장할 순 없고 주로 간단한 설정의 저장값 혹은 사용자의 로그인 정보 정도의 값을 저장하는데 쉽게 구현할 수 있기 때문에 자주 사용되었다. UserDefaults는 주로 Bool, String, Int , Double, Date, Array, Dictionary 등 저장이 가능하고 이 UserDefaults에 데이터를 저장하게 되면 iO..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 10. 18.
  • textsms
앱 내 데이터 JSON으로 변환하기

앱 내 데이터 JSON으로 변환하기

오늘은 지금까지 수집한 데이터를 JSON 파일로 변환시켜 서버로 보내는 방식에 대해서 기록해두려고 한다 🙂 iOS 에서는 앱 내 데이터를 JSON 파일로 변환시켜 파일을 관리 할 수 있도록 지원하고 있다. 주로 JSONEncoder와 JSONDecoder를 사용해서 데이터를 JSON으로 변환하거나 JSON을 Swift객체로 변환할 수 있도록 잘 구현되어있다. https://developer.apple.com/documentation/foundation/jsonencoder/ 이때 데이터 모델은 Codable 프로토콜을 준수해야하고 이 안에 Encodable , Decodable 프로토콜을 포함하고 있다! 그렇기 때문에 이전에 구현해 둔 데이터 모델에 해당 프로토콜을 추가해주도록 하자!// MARK: -..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 10. 14.
  • textsms
EventKit을 사용해 디바이스 내 캘린더 접근하기

EventKit을 사용해 디바이스 내 캘린더 접근하기

오늘은 앱에서 디바이스 내 캘린더에 접근하고 일정을 확인 혹은 추가 , 삭제할 수 있는 방법에 대해서 알아보려고 한다. 먼저 그렇게 하기 위해서는 EventKit을 사용해야하는데 이 EventKit 프레임워크는 사람들이 앱에서 캘린더 항목을 만들고, 검색, 편집할 수 있도록 데이터에 대한 엑세스를 제공한다. 내가 어떤 앱을 만들었을때 캘린더 관련 기능을 사용하면서 디바이스 내 캘린더도 동시에 관리할 수 있게 되는 아주 아주 유용한 방식이니 한번 알아보자! 먼저 당연하게 이용자의 캘린더에 접근할 수 있는 권한이 필요하다. 그렇기 때문에 infoPlist로 들어가 다음과 같은 설정을 넣어주면 된다! Key : NSCalendarsUsageDescriptionValue : “앱에서 캘린더에 접근해 이벤트를 관..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 10. 11.
  • textsms
Background Data Fetch 하기

Background Data Fetch 하기

SensorKit 데이터를 수집할 때 background 환경에서도 데이터를 수집할 수 있도록 하기 위해 앱 내 백그라운드 작업이 가능하도록 하는 로직을 구현하였다.!오늘은 백그라운드를 통해 작업을 수행할 수 있도록 하는 방식을 기록으로 남기려고 한다! 먼저 백그라운드 작업을 하기 위해 Signing & Capabilties에 백그라운드 Capability를 추가한 다음 사진에 보이는 두가지를 체크해야한다.그 다음 infoPlist 내 백그라운드 작업이 진행 될 identifier를 넣어주어야 하는데BGTaskSchedulerPermittedIdentifiers com.yourapp.sensordatafetch이와 같이 본인 앱의 번들아이디를 넣어준 뒤 코드 내 기재해 둔 identifier를 넣어..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 10. 8.
  • textsms
  • navigate_before
  • 1
  • ···
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • ···
  • 26
  • navigate_next
프로필 로고

Si Jong Tech Blog

전체 카테고리
  • 분류 전체보기 (253)
    • ◽️ Programming (253)
      • T I L (92)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
최근 글
인기 글
최근 댓글
태그
  • #티스토리챌린지
  • #알고리즘
  • #MVC
  • #IOS
  • #project
  • #tableView
  • #swift
  • #오블완
  • #uikit
  • #TIL
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바