[Swift] 왜 Class는 Initializer를 자동으로 만들어주지 않을까?
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 Swift로 개발을 하다보면 한 가지 의문이 생기게 됩니다. 구조체인 Struct는 프로퍼티만 선언하면 init이 자동으로 생기는데, Class는 왜 직접 써줘야 할까?struct Point { var x: Int var y: Int // init(x: Int, y: Int) 자동 생성 }class PointClass { var x: Int var y: Int // 자동 생성 안 됨 -> 직접 써야 함} Struct는 왜 자동 생성이 가능할까?Struct는 상속이 없습니다.(상속이 안 되는 건 아닌데 일단 그냥 구조체와 클래스 두가지로만 보면)컴파일러의 입장에서 보면, 지금 선언된 프로퍼티가 이 타입의 전부입니다. 그래서 모든 프로퍼티를 ..
[SwiftUI] Observation 알아보기
·
Apple/SwiftUI
Observation이 뭘까?Observation은 프로퍼티의 변화를 추적하는 Swift의 새로운 기능입니다. 보통 데이터 모델 타입을 작성할 때는 여러가지 프로퍼티가 들어갑니다.class FoodTruckModel { var orders: [Order] = [] var donuts = Donut.all} 여기에 @Observable을 추가하기만 해도 UI가 데이터 모델의 변화에 대응할 수 있게 됩니다.@Observable class FoodTruckModel { var orders: [Order] = [] var donuts = Donut.all} @Observable은 Swift 컴파일러에게 명령을 내려서 우리가 작성한 코드를 확장형 observable 타입으로 바..
[SwiftUI] ViewBuilder 알아보기
·
Apple/SwiftUI
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 ViewBuilder에 대해서 정리를 해보려고 합니다.ViewBuilder란?Apple의 공식 문서 설명에는 "Closure로부터 View를 구성하는 사용자 지정 매개변수 속성"이라고 합니다.A custom parameter attribute that constructs views from closures. https://developer.apple.com/documentation/swiftui/viewbuilder ViewBuilder | Apple Developer DocumentationA custom parameter attribute that constructs views from closures.developer.apple.com 일반적으로 '..
[Swift] SwiftData 상속과 스키마 마이그레이션 알아보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 WWDC 세션 SwiftData: 상속과 스키마 마이그레이션 자세히 알아보기 세션을 보고 내용을 정리해보려고 합니다. 이번 세션의 핵심은 iOS 26에서 새롭게 도입된 클래스 상속 지원과 더 효율적인 데이터 관리 및 마이그레이션 전략입니다. SwiftData의 클래스 상속(iOS 26 신기능)이제 SwiftData 모델에서도 클래스 상속을 활용해 계층 구조를 설계할 수 있습니다. 상속이 필요한 이유에 대해서 먼저 간단하게 살펴보자면, 우리가 여행 앱을 만든다고 가정을 해보겠습니다. 우리에게는 '개인 여행'과 '출장' 데이터가 있습니다. 둘 다 '장소'와 '날짜'라는 공통점을 가지고 있지만, '목적'이나 '비용' 같은 고유한 데이터도 필요합니다. 상속이 생기기 전에는 Pe..
[Swift] Swift 6로 마이그레이션 하기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 WWDC24 세션 "Migrate your app to Swift 6"의 내용을 바탕으로 내 앱을 Swift 6로 마이그레이션 하는 방법에 대해서 정리를 해보려고 합니다. 더 자세한 내용은 아래 링크 참고해 주세요!Why Swift 6?내 앱은 이미 잘 돌아가고 있는데 왜 굳이 Swift 6로 올려야 하지?라는 생각이 드실 수 있습니다. Swift 6 전까지는 개발자가 '이 작업은 메인 스레드에서, 저 작업은 백그라운드에서'라고 기억하면서 DispatchQueue를 복잡하게 사용해야 했습니다. 만약에 실수로 한 데이터를 여러 곳에서 동시에 수정하면 앱이 크래시가 발생하거나 데이터가 꼬이는 Data Race라는 게 발생했습니다. 하지만 Swift 6에서는 ..
[Swift] 싱글톤 패턴(Singleton Pattern) 알아보기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 개발할 때 자주 쓰이는 싱글톤 패턴에 대해서 정리를 해보려고 합니다. Singleton Pattern이란?싱글톤 패턴이란, 특정 클래스의 인스턴스가 애플리케이션 전체에서 단 하나만 존재하도록 보장하는 디자인패턴입니다. 이 패턴은 전역적으로 접근 가능한 단일 객체가 필요할 때 유용하게 사용됩니다. 앱 전체에서 공유되어야 하는 리소스나 설정이 있을 때, 여러 개의 인스턴스가 생성되면 데이터 불일치나 리소스 낭비가 발생할 수 있는데 그럴 때 싱글톤 패턴을 사용하면 이런 문제를 해결할 수 있습니다.Swift에서 싱글톤 구현Swift에서는 static let을 사용해서 간단하게 싱글톤을 구현할 수 있습니다.class NetworkManager { static..