일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 순환참조
- NavigationLink
- actor
- MainActor
- 격리 시스템
- assosiated type
- async/await
- rest api
- weak
- Access Control
- 앱실행
- environment object
- SwiftUI
- REDRAW
- 작업 취소
- 동시성 프로그래밍
- swfitui
- 스레드 점유권
- task 취소
- Swift
- restful api
- MVVM
- ObservedObject
- Git
- navigationview
- git 명령어
- StateObject
- environment value
- unowned
- Swift Concurrency
- Today
- Total
목록Swift (6)
Develup

Swift의 접근 제어(Access Control)는 코드의 가독성과 보안성을 높이는 핵심 기능입니다. 코드 구성 요소에 대한 접근을 의도적으로 제한함으로써 내부 구현 세부 사항을 숨기고 선호하는 인터페이스를 제공할 수 있습니다. 이 글에서는 Swift 접근 제어의 다양한 레벨과 실제 활용 방법, 그리고 개발 과정에서 마주치는 일반적인 상황들을 살펴보겠습니다.Swift 접근 제어의 기본 원리접근 제어는 특정 코드 조각이 다른 소스 파일이나 모듈에서 접근할 수 있는지를 제한하는 메커니즘입니다. 이를 통해 코드의 구현 세부 사항을 숨기고 사용자에게 명확한 인터페이스만 제공할 수 있습니다.Swift에서는 6가지 접근 레벨을 제공합니다:open: 가장 덜 제한적인 접근 레벨로, 모듈 외부에서의 접근과 상속을 허..

Swift의 액터 시스템은 동시성 프로그래밍에서 가장 혁신적인 기능 중 하나입니다. 특히 액터의 격리 메커니즘은 데이터 레이스와 같은 동시성 문제를 방지하는 핵심 요소입니다. 이 글에서는 액터의 격리 시스템이 어떻게 작동하는지, 이것이 왜 중요한지, 그리고 실제 코드에서 어떻게 효과적으로、최적화된 방식으로 활용할 수 있는지 살펴보겠습니다.액터 격리의 개념과 원리액터 격리(Actor isolation)는 액터 내부의 가변 상태에 대한 접근을 동기화하여 데이터 레이스를 방지하는 메커니즘입니다. 이는 Swift의 타입 시스템과 컴파일러가 강제하는 규칙을 통해 구현됩니다.액터 격리의 기본 원칙은 다음과 같습니다:배타적 접근: 한 번에 하나의 태스크만 액터의 가변 상태에 접근할 수 있습니다.경계 보호: 액터 외부..

단순히 GCD를 사용하는 것과 성능을 극대화하는 방식으로 GCD를 사용하는 것 사이에는 큰 차이가 있습니다. 많은 개발자들이 GCD의 기본 개념은 알고 있지만, 실제 프로덕션 환경에서 최적의 성능을 위해 어떻게 튜닝해야 하는지는 잘 모르는 경우가 많습니다. 이 글에서는 GCD를 사용할 때 흔히 발생하는 성능 문제를 해결하고, 앱의 반응성과 효율성을 높이기 위한 고급 최적화 기법에 대해 알아보겠습니다. 적절한 큐 선택부터 QoS(Quality of Service) 관리, 불필요한 오버헤드 제거까지, 실제 프로젝트에서 즉시 적용할 수 있는 실용적인, 성능 중심의 접근 방식을 제공합니다.GCD 큐 선택: 어떤 큐가 최적의 선택일까?전역 큐 vs 커스텀 큐: 언제 무엇을 사용해야 할까?GCD를 사용할 때 가장 ..

Model import Foundation class Person : NSObject{ var name : String = "" var age : Int = 0 var weight : Double = 0 var height : Double = 0 init(name : String, age : Int, weight : Double, height : Double) { self.name = name self.age = age self.weight = weight self.height = height } } class Model : NSObject{ func getPeopleData() -> NSDictionary { return [ "People" : [ ["name" : "James", "age" : 28 ..

Model struct WeatherModel : Codable { let timezone : String let current : CurrentWeather } struct CurrentWeather : Codable { let temp : Float let weather : [WeatherInfo] } struct WeatherInfo : Codable { let main : String let description : String } ViewModel class WeatherViewModel: ObservableObject { @Published var title : String = "-" @Published var descriptionText : String = "-" @Published var ..

MVVM이란? MVVM은 Model - View - ViewModel의 약자로 소프트웨어 아키텍처 패턴입니다. (Model은 데이터, View는 유저 인터페이스, ViewModel은 뷰와 모델 사이를 연결) Model(모델)은 어떤 부분을 책임지고 있나요? 데이터 모델, 데이터 접근 레이어, 비즈니스 로직등이 포함되어 있습니다. 모델은 데이터를 얻거나 저장하거나 지우거나 업데이트에 대해 알고 있습니다. 이 작업들은 뷰모델에 의해 시작되며 모델이 데이터에 대한 작업을 마치면 뷰 모델에게 결과를 알립니다. 모델은 뷰모델이 소유하고 있고, 뷰나 뷰모델이 모델에 대해 들여다볼 수 없습니다. View(뷰)는 어떤 부분을 책임지고 있나요? 사용자 이벤트를 수신하고 데이터를 표시하는 유저 인터페이스를 책임집니다. (..