SWiFT
-
[Swift] - Swift의 Task, @MainActor, Task.detached 정리: 언제, 왜, 어떻게 써야 할까?iOS/SWIFT 2025. 5. 3. 11:55
📚 목차 개요@MainActor란?Task {} vs Task.detached {} 차이메모리와 CPU 관점 차이병렬 작업 취소 & 완료 감지 (withTaskGroup)정리1. 개요 Swift의 Concurrency는 async/await, Task, Actor 등을 통해 안전하고 효율적인 비동기 처리를 제공한다.하지만 Task {}, Task.detached {}, 그리고 @MainActor 사이의 차이점과 사용법은 정확히 이해해야 제대로 활용할 수 있습다. 이 포스트에서는 이 세 가지를 중심으로, 실제 동작 원리, 메모리/CPU 관점 성능 차이,그리고 TaskGroup을 통한 취소 및 완료 감지 방법까지 정리할 것이다. 2. @MainActor란? @MainActor는 특정 함수, 속성, 클래스..
-
[Swift] - Swift에서 클래스 내부 구조체의 메모리 위치와 성능 차이iOS/SWIFT 2025. 5. 3. 10:13
✍️ 목차 개요클래스와 구조체의 메모리 차이클래스 내부의 구조체는 어디에 저장될까?구조체 복사와 성능 영향정리 1. 개요 Swift는 값 타입(struct)과 참조 타입(class)을 명확히 구분하는 언어임.이번 포스트에서는 클래스 내부에 포함된 구조체 인스턴스가 메모리상 어디에 저장되는지,그리고 구조체 복사가 성능에 어떤 영향을 미치는지에 대해 살펴보자. 2. 클래스와 구조체의 메모리 차이 🔹 클래스 (Reference Type)인스턴스는 Heap에 저장됨변수는 Heap에 있는 객체의 **포인터(reference)**를 stack에 저장ARC(Automatic Reference Counting)로 메모리 관리됨 🔹 구조체 (Value Type)인스턴스는 Stack에 저장됨값이 복사되어 전달됨 (..
-
[UIkit] - 코드베이스 VS 스토리보드iOS/UIkit 2024. 1. 10. 13:20
1년반을 SwiftUI로만 코딩을 하다가 UIkit의 절실함을 느껴 개인적으로 스터디를 진행중이다. 요즘 너무 포스팅을 안하기도 했고 블로그를 TIL형식으로 매일 작성해 볼 예정이다. (꼭..) 처음 배우다 느낀 점은 오늘의 제목과 같이 UI구성을 어떤 방식으로 하는지 또 둘의 차이가 무엇이 있는지를 노트정리 식으로 포스팅하겠다. 일단 코드베이스와 스토리보드는 둘다 UI를 구성하는 방식인데, 코드베이스라는 정식 명칭을 사용하는지는 모르겠지만 일단 편의대로 부르겠다. 두 방법으로 이 화면을 만들어보겠다. 코드 스토리보드를 사용하지 않고도 코드로만 UI 구성이 가능하다. 사실 스토리보드보다 코드방식이 나는 더 익숙하다. 코드작성부터 배우기도 했고.. class ViewController: UIViewCont..
-
[iOS] - Swift에 대하여(Feat. UIkit,SwiftUI)iOS/iOS 2024. 1. 9. 19:23
난 iOS로써 swift를 지금까지 1년을 넘게 사용해왔다. 하지만 이번에 친구들과 스터디를 시작하게 되면서 그냥 언어를 쓴다라는 개념 그 이상을 배울 수 있는 기회가 생겼다. Swift 탄생 기존 애플에서는 앱 개발 프로그래밍 언어를 Objected-c라는 언어를 사용했었음 2014 WWDC에서 (신속한,재빠른)Swift라는 새로운 개발언어를 사용하게 됨 일단 이정도이다. 여담으로는 잡스 2011년 사망해서 swift를 알지 의문이다. 특징 Objective-C와 swift 둘다 LLVM 사용 옵젝시 환경에서 컴파일 됨 여기서 말하는 LLVM은 Low-Level-Virtual-Machine의 줄임말로 프로그램을 컴파일 타임, 링크 타임, 런타임 상황에서 프로그램의 작성 언어에 상관없이 최적화를 쉽게 구..
-
[SwiftUI] #문법 - @ObservedObjectiOS/SWIFTUI 2023. 4. 14. 15:11
오늘은 swiftui에서 사용하는 중요한 프로퍼티 래퍼에 대해 포스팅을 해보겠다. @ObservedObject 뷰의 변경점이 감지 되면 화면을 업데이트하는 역할을 한다. iOS 14부터 등장한 @StateObject와 매우 흡사한데, 그 차이는 @StateObject를 포스팅할 때 자세히 차이를 설명하겠다. 관찰 가능한 객체를 구독하고 관찰 가능한 객체가 변경될 때마다 보기를 무효화하는 속성 래퍼 유형 개발 문서에 있는 내용을 그대로 직역하면 다음과 같다. 이전의 포스팅한 @State 같은 경우는 한 구조체 안에서 선언하고 다른 뷰와 데이터를 공유할 수 없는 것이 특징이다. 여기서 포인트는 데이터의 변경이 감지 되면 뷰를 새로 그린다는 것이다. 자세히 알아보자 일단 @ObservedObject를 사용하기..
-
[문제풀이] HackerRank - Plus Minus프로그래밍/문제풀이 2023. 4. 12. 17:20
오늘은 코딩테스트 문제에 대해서 포스팅 해보려 한다. 요즘 간간히 코딩테스트를 진행하는 기업들이 있다. 그러기 위해서나 본인의 코딩능력을 향상 시키기 위해서 코딩테스트 문제를 풀어보는 중이다. Plus Minus 일단 HackerRank문제는 모두 영어로 출제 된다..(나처럼) 해석하는데 모든 시간을 붙지 말고 포인트만 딱딱 찝어서 풀어보자 Given an array of integers, calculate the ratios of its elements that are positive, negative, and zero. Print the decimal value of each fraction on a new line with places after the decimal. Note: This chall..
-
[우리어디가] - Swift Firebase 인증(Authentication)사용법프로젝트/우리어디가 2023. 3. 10. 20:12
오늘은 Firebase에서 제공하는 라이브러리 중에 사용자 인증에 꼭 필요한 auth를 알아볼 것이다.우리가 로그인을 하고 회원가입을 하기 위해서는 인증이라는 절차를 밟아야 한다. 원래는 API를 개발하여 로그인 세션 관련된 내용을 구현해야 하지만 친절하게 구글에서 이러한 라이브러리들을 제공한다. 일단 오늘은 로그인,회원가입,로그아웃 이 3가지를 설명하겠다. 회원가입 3개 중에 가장 먼저 해야하는 회원가입이다.화면에서 사용자의 회원정보를 받아서 firebase 유저정보 리스트에 추가를 해야한다.회원가입을 하게 되면 이런식으로 유저들의 리스트를 볼수 있다. 회원가입은 createUser라는 메서드를 사용하는데, email,password,가 필요로 하다. 나는 추가로 이름도 함께 사용하기로 해서 cre..
-
[프로젝트] - SwiftUI View 한쪽 모서리 둥글게 하는 방법프로그래밍/TroubleShooting&Solution 2023. 3. 10. 19:38
오늘은 SwiftUI View의 모양을 바꾸는 방법을 포스팅 할 예정이다. 프로젝트를 하다보니 디자이너가 없어서 UI/UX를 신경쓸 일이 많아 졌는데 내가 원하는 모양을 만드는일 조차 쉽지가 않았다.. 그래서 조금이나마 도움이 되길 원하면서 글을 써본다. 처음에는 이 문제를 어떻게 해야할까 싶어 이미지를 만들어서 사용할까 생각도 해봤다. 하지만 되도록 코드로 짜보는게 도움이 될거 같아서 여기저기를 찾아봤다.이렇게 한쪽 이미지만 둥글게 하는 방법이다. .conrnerRadius(값) 이 방법으로는 4모서리 모두 코너링이 되어 위치는 불가능 하다.. Rectangle() .clipShape(//이 부분에 추가)일단 특정 모양으로 잘라야하기 때문에 .clipShape()를 사용한다. 파라미터는 Shape이므로..