Swift
-
Swift에서 Unicode.Scalar 다루기
Swift에서 Unicode.Scalar 다루기개요이 문서는 Swift에서 Unicode.Scalar 타입을 이해하고, 이를 활용하여 문자열을 보다 세밀하게 다루는 방법을 소개합니다. 이 문서를 통해 다음을 얻을 수 있습니다:Unicode 배경에 대한 이해Unicode 스칼라(Unicode Scalar)와 그 역할에 대한 이해Unicode.Scalar 타입이 제공하는 주요 기능 파악실제 코드 예시를 통한 Unicode.Scalar 활용법 습득순서Unicode 개요Unicode.Scalar 기본 개념Unicode.Scalar가 제공하는 기능Unicode.Scalar 기본 활용예시 코드 샘플 프로젝트Unicode.Scalar 샘플 프로젝트Unicode 개요Unicode란?Unicode는 전 세계의 모든 ..
-
iOS 13 이상에서의 App Life Cycle(AppDelegate, SceneDelegate)
CS 스터디에 참여하면서 다시 기본기를 다지고 있습니다. 재미있는 내용이 많은데, SceneDelegate를 통해 어떻게 로그가 찍히는지 확인해보겠습니다. App Life Cycle사실 앱의 라이프 사이클과 관련해서는 애플에서도 너무 정리를 잘 해두었고, 좋은 리소스가 많습니다. 라이프 사이클에 대한 배경은 아래 참고로 남겨두겠습니다. https://developer.apple.com/documentation/uikit/managing-your-app-s-life-cycle Managing your app’s life cycle | Apple Developer DocumentationRespond to system notifications when your app is in the foreground o..
-
[Swift] 값타입의 Heap Allocation(Heap boxing)은 언제 일어날까?
값타입도...힙에 저장된다고...? 값타입의 Heap Allocation(Heap boxing)클로저에 대해 공부하면서 값타입의 Heap Allocation에 대해 더 공부하게 되었습니다. 값타입의 Heap Allocation은 Struct, Enum과 같이 Stack에 저장되는 값 타입이 힙에 할당되는 현상을 의미합니다. 이렇게 Heap에 할당된 경우 값 타입이 heap에 저장되며 class와 같이 참조타입처럼 동작하게 됩니다.Heap Allocation이 발생하는 경우Swift에서 Heap Allocation은 다음과 같은 경우에 발생합니다.프로토콜을 통해 값 타입을 다룰 때클로저에서 캡쳐될 떄(캡쳐리스트가 없는 경우)컬렉션에서 값 타입을 참조할 때클래스 안에 값타임, 값 타입 안에 클래스 타입을 ..
-
Firebase Cloud Function 설정(V2 함수 사용하여 세팅하기)
Firebase Cloud FunctionsFirbase는 여러모로 참 고마운 친구입니다. 제공해주는 서비스가 1인 개발을 할 때 필요한 것들이 많아서 사용하기 좋습니다. 그 중에서도 Cloud Function은 마치 서버와 같이 특정 조건에 따라 함수를 실행시킬 수 있는 Firebase가 제공해주고 있는 서비스 입니다. 기본적으로 FireStore만 사용해도 되지만, 가끔 서버의 기능들이 구현되어야 하는 경우 곤란한데, 이때 Cloud Function을 유용하게 사용할 수 있습니다.2세대 Cloud Functions2세대 Cloud Functions가 나오면서 Firebase Document와 다른 블로그에서 말해주는 세팅이 달라서 헷갈렸습니다. Firebase에서도 2세대를 권장하고 있어서 관련 AP..
-
매일 조금씩 성장하기회고와 실천 2024.09.29 15:33
심각한 회고 기피 상태2024년은 분명 매일 회고하겠다는 큰 다짐을 하였지만... 또 이렇게 10월이 되어가고 있습니다. 하지만 늦었다고 생각하기 전에 오늘부터 다시 시작하면 된다! 라고 생각해서 다시 회고와 실천을 해보려 합니다. 매일 1% 성장하기요즘 일일일 이라는 서비스를 이용하는데, 여기서 매일 트렌드와 인사이트를 많이 얻고 있습니다. 특히 이번주에는 매일 1% 성장하기라는 아티클을 읽었고 그게 오늘의 회고와 실천을 위한 글을 다시 작성하는 동기가 되었습니다. 아래 링크에서 확인 가능하지만, 간단히 요약하자면 다음과 같습니다. - 큰 성과가 중요시 되는 사회에서 매일의 작은 개선 경험이 간과되고 있다. - 내일 작은 변화와 성장이 놀라운 결과로 이어진다. - 개선하고 싶은 부분을 정하고 작고 개..
-
글로벌 프로젝트 운영 경험 회고애플 디벨로퍼 아카데미 2024.09.22 14:40
애플개발자아카데미에서 일하며 8개국, 10개 도시에 있는 분들과 함께 아카데미에서 진행하는 하는 이벤트의 기획과 운영을 맡았습니다. 처음 맡은 큰 사이즈의 이벤트였고, 심지어 영어로 모든 시간과 일정을 조율해야 한다는 점이 큰 부담이 되었습니다. 시차, 일정 조율, 그리고 이벤트 관련 내용 전달 등 하나하나가 가볍게 생각하기에는 너무 큰 테스크들이었습니다. 스트레스 관리첫번째로, 어려웠던 부분은 스트레스 관리였습니다. 가끔은 실제로 존재하는 일의 크기와 문제보다 마음속에서 부풀려지는 부담과 책임이 더 커지는 것 같습니다. 이번 이벤트 역시 어려운 일이고 고려해야 하는 부분이 많은 일이지만, 주말에 스트레스받아가면서 혼자 끙끙 앓지 않아도 되는 일이었습니다.여러분은 어떻게 마음속 불안과 스트레스를 관리하시..
-
[Swift] Error Handling 마스터하기(do-catch, throw-try)Swift 2024.01.25 22:09
Error 삶은 늘 원하는대로 흘러가지 않습니다. 하지만 그런 상황에 대비를 해야 하는 것이 Error Handling입니다. Error Handling: 에러 처리 또는 ExceptionHandling이라고 말하기도 합니다. Error Handling을 잘해야 하는 이유 만약 여러분이 은행앱을 통해 돈을 송금하는데 갑자기 “에러입니다.”라고 나오기만 하고 어떤 문제인지 말해주지 않고 앱이 종료된다면 어떨까요? Error Handling은 이러한 상황에서 어떤 에러가 어디서 발생했는지 말해주고, 유저가 앱을 지속적으로 사용하는데 중요한 힌트를 제공합니다. (ex. 잔액이 부족합니다, 계좌가 올바르지 않습니다 등) Error의 사용 어떤 함수가 에러를 발생할 가능성이 있다면 Swift에서는 함수 선언 시 ..
-
[Swift] "No such module" 에러 / SPM && WatchOS에러처리 2023.10.14 21:18
에러: "No such module" 상황은 이렇다. FireStore를 하기 위해 SPM으로 dependency를 추가하고 build를 했는데 No such module 에러가 발생했다. 오늘도 나의 인내심을 성장시켜준 에러. 감사하다. 시도한 방법 1. Project Navigator - Targer - BuildSetting에서 Debug와 Release를 빈칸으로 바꿔보았지만 아무런 일도 일어나지 않았다. 2. Xcode 에러인 것 같아서 Xcode를 종료했다가 다시 했지만 실패 3. SPM에 누락된 라이브러리가 있을 수도 있어서 Firebase의 모든 라이브러리를 적용했지만 실패 4. SPM에서 dependency 삭제 제거 3회 반복 -> 실패 해결 방법 현타가 올 수도 있으니 조심하자 SPM..