전체 글 30

[Swift] Singleton에서의 private init()

✅ private init()의 역할private initializer는 코드의 다른 부분에서 Settings 클래스 인스턴스를 생성하려고 시도하는 것을 막아줌class MySingleton { static let shared = MySingleton() private init() {} // 👈👈} class UserDefaultsManager { static let shared = UserDefaultsManager() private init() {} // 외부 생성 차단}// 다른 곳에서:let manager = UserDefaultsManager() // ❌ 컴파일 에러!// 'UserDefaultsManager' initializer is inaccessible du..

Swift 2025.06.20

[Swift] 순열 구현하기 feat.재귀

파이썬은 permutations라는 내장함수가 있지만 swift는 만들어서 써야함 func permuteWirth(_ a: [T], _ n: Int) { if n == 0 { print(a) // 순열 완성시 출력 } else { var a = a permuteWirth(a, n - 1) // 1. 현재 상태로 재귀 for i in 0..출처 음~ 뭔말이지 ✅ 알고리즘 동작 원리종료 조건: n == 0이면 순열 완성첫 번째 재귀: 현재 상태 그대로 더 깊이 탐색스왑 + 재귀: i번째와 n번째를 바꿔가며 모든 경우 탐색백트래킹: 스왑을 되돌려 다른 경우 탐색 준비✅ 실행 과정 예시 permuteWirth([A,B..

알고리즘 2025.06.19

[iOS] MVVM 패턴에서 데이터 로딩 책임 분리

✅ 문제 상황json 파일에 있는 데이터를 파싱해와서 보여주는 과제를 하던 중 ViewController의 viewDidLoad()에서 데이터 로딩 로직을 처리하고 있는 것이 MVVM 패턴에 적합하지 않다고 느꼈다.기존 코드 (문제가 있던 코드)// BookViewController.swiftoverride func viewDidLoad() { super.viewDidLoad() setupViews() setupConstraints() // 🚨 문제: ViewController에서 데이터 로딩 제어 viewModel.loadBooks { [weak self] result in switch result { case .success: ..

iOS 2025.06.18