📍문제원인현재 진행하고 있는 프로젝트는 유저가 산책하며 찍은 사진을 좌표와 함께 저장하여 맵에서 사진을 표시해 준다. 사진에는 집 주변 풍경이 찍히고 해당 사진 데이터와 좌표가 누적되면 생활 반경과 동선을 특정할 수 있어 이 사람이 어디 사는지, 어느 동네에 사는지 특정할 수 있는 데이터가 되기 때문에 데이터의 보호가 필요하다고 판단했다. 그래서 파일 보호 등급에 대해 알아보게 되었고 이 데이터를 보호하기 위해서는 앱이 정상적으로 실행되는 상황뿐 아니라, 기기를 분실하거나 잠금 상태에서 내부 데이터에 접근하려는 상황도 함께 고려가 필요하다고 생각하였다. iOS는 파일별 데이터 보호 등급을 제공하며, 이를 통해 기기가 잠겨 있는 상태에서의 파일 접근 조건을 설정할 수 있다. 앱 개발자가 모든 공격 상황..
AI가 들어오면서 개발 과정이 정말 편리해졌다. AI가 코드를 작성하는 시간을 크게 줄여주는 것 뿐만 아니라 시뮬레이터까지 자동으로 켜서 스스로 테스트를 돌리고, 여러가지 skills를 사용하면 문제정의 및 설계까지 잡아준다. (물론 이 설계나 코드에 대한 책임은 여전히 개발자의 몫이지만!) 그렇다면 AI를 개발 말고도 어떻게 더 잘 활용할 수 있을까? 라는 고민이 들었고, 프로젝트에서 반복적으로 발생하는 업무를 줄이기 위해 Skills를 만들어 배포해보았다. 이번 포스팅에서는 그 과정을 정리해보고자 한다!(해당 포스팅은 ClaudeCode 기준으로 작성되었다.) ✏️ Skills반복적으로 지시해야 하는 절차, 규칙, 컨텍스트를 한 번 문서화해서 재사용하도록 한다. 반복되는 작업들을 SKILL.md 파..
(제가 공부하기 위해 작성한 것이므로 틀린 정보가 있다면 알려주세요!) [Swift] App Sandbox개인 프로젝트에서 사용자가 찍은 사진을 기기 로컬에 저장하는 기능을 구현했다. 서버가 존재하지 않기 때문에 서버에 사진이 올라갔을때의 보안 걱정은 따로 하지 않았고, iOS는 워낙 보안이yanni13.tistory.com이전 포스팅에서 App Sandbox에 대해서 알아봤었다. 지금 진행하고 있는 개인 프로젝트에서 Firebase Analytics와 Crashlytics 같은 SDK는 내 앱과 같은 프로세스 안에서 같은 권한으로 실행한다. 샌드박스는 SDK가 다른 앱의 영역으로 나가는 것은 막아주지만 내 앱 안에서 SDK가 어떤 데이터에 접근하고 어디로 보내는지 까지는 막아주지 않는다. 실제로 개..
개인 프로젝트에서 사용자가 찍은 사진을 기기 로컬에 저장하는 기능을 구현했다. 서버가 존재하지 않기 때문에 서버에 사진이 올라갔을때의 보안 걱정은 따로 하지 않았고, iOS는 워낙 보안이 좋으니 따로 신경 쓸 부분은 없다고 생각했다. 프로젝트에는 앱 안에서 발생하는 사용자 이벤트를 모니터링하기 위해 Firebase Analytics와 Crashlytics를 붙여두었다. 근데 이 SDK들이 내 앱과 같은 프로세스 안에서, 같은 권한으로 실행된다면 로컬에 저장된 사진은 정말 안전한 걸까? 라는 의문이 들었다. iOS의 보안을 이야기할 때 빠지지 않는 것이 샌드박스인데, 막상 샌드박스가 어떤 경계를 만들고 어디까지 보호해주는지는 정확히 모르다보니 이번 포스팅에서는 App Sandbox의 구조와 동작 방식을 정..
오늘은 Swift Ownership에 대해서 공부해보고자 한다.Swift Ownership이 등장하게 된 배경에는 값 타입, 참조타입, 얕은복사, 깊은 복사, Copy on Write 라는 개념이 함께 등장하게 되는데 왜 나오게 된 건지, 뭘 하고자 하는건지 알아보고자 한다.(제가 공부하기 위해 작성한 것이므로 틀린 정보가 있다면 알려주세요!) 📚 들어가기 전Swift에 대해 처음 공부하고자 하면 구조체는 값 타입, 클래스는 참조타입 이라는 말을 영어단어 암기 하듯이 반복적으로 들어봤을 것이다. 값 타입과 참조타입의 동작 원리를 아래 예제로 간단하게 살펴보자!struct Player { var icon: String}func test() { let player1 = Player(icon: ..
[Swift] Swift Concurrency(1) - 동시성오늘은 Swift Concurrency에 대해 본격적으로 알아보기 전,동시성 문제가 왜 발생하고 어떤 문제가 발생하는지 먼저 파악해보고자 한다! (제가 공부하기 위해 작성한 것이므로 틀린 정보가 있다면 알yanni13.tistory.com 이전 포스팅에서는 Swift Concurrency의 기본 개념이 되는 동시성에 대해서 다뤄보았다. 오늘은 Swift Concurrency가 어떤 문제를 해결하고자 했는지에 대해서 조금 더 깊게 다뤄보고자 한다.그 근간이 되는 GCD도 같이 살펴보고 , Swift Concurrency의 종류와 GCD는 어떤 차이점을 가지고 있는지 다뤄보고자 한다.(제가 공부하기 위해 작성한 것이므로 틀린 정보가 있다면 알려주세..
오늘은 Swift Concurrency에 대해 본격적으로 알아보기 전,동시성 문제가 왜 발생하고 어떤 문제가 발생하는지 먼저 파악해보고자 한다! (제가 공부하기 위해 작성한 것이므로 틀린 정보가 있다면 알려주세요!) ✏️ 동시성이란?여러 작업을 논리적으로 동시에 실행하는 것처럼 보이게 하는 것 동시성이란 실제로 짧은 시간 간격으로 작업 간 전환하며 실행되어 여러 작업을 논리적으로 동시에 실행하는 것처럼 보이게 만드는 것이다. 병렬성은 물리적으로 동시에 여러 작업을 수행하는 건데 동시성은 컨텍스트 스위칭을 통해서 처리되기 때문에 하나의 물리적 스레드에서도 여러 스레드가 작업하고 있는 것처럼 보인다. iOS에서는 동시성을 크게 GCD의 DispatchQueue와 Swift Concurrency의 asyn..
✏️ WidgetKitWidgetKit은 사용자가 홈 화면 및 잠금화면에서 손쉽게 정보를 확인할 수 있는 위젯을 구현할 때 주로 사용되는 프레임워크이다.WidgetKit은 기본적으로 iOS, iPadOS, macOS 멀티 플랫폼 지원을 위해 SwiftUI로 구성되어 있다. 들어가기 앞서 위젯이 언제 처음 나오게 되었는지 한번 살펴보자!위젯의 역사는 아래 표를 통해 확인할 수 있다. iOS14부터 widgetkit을 사용할 수 있었고 점차 live activity와 같은 기능들이 추가된 것을 확인할 수 있다. WWDC 2020에 따르면 위젯의 정의는 크게 4가지의 요소로 구분된다고 한다.Kind : 위젯이 가지는 식별자이며 하나의 extension이 여러 kind를 지원할 수 있다.Configurati..
- Total
- Today
- Yesterday
- copyable
- GCD
- rxswift
- Swift Concurrency
- Fastlane
- 프로그래머스
- PrivacyManifest
- prepareForReuse
- ios
- ObservableObject
- combine
- UIKit
- swiftUI
- SWIFT
- closure
- UITest
- SwiftOwnership
- 코딩테스트
- AppGroup
- 백준
- macos
- App Sandbox
- XCTest
- 클로저
- CoreData
- 스위프트
- awakeFromNib
- Xcode
- Swift Format
- Task
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |