전체 글 30

[Swift] Result 타입

✅ Result 타입이란?Result는 Swift 5.0에서 추가된 표준 라이브러리 타입으로, 성공과 실패를 명확하게 구분하는 enum enum Result { case success(Success) case failure(Failure)} ✅ Result의 장점1. 명확한 상태 표현// ❌ 기존 방식 - 4가지 상태 가능 (애매함)func oldStyle(completion: @escaping (Int?, NetworkError?) -> Void) { // (data, nil), (nil, error), (data, error), (nil, nil) - 뭐가 뭔지?}// ✅ Result 방식 - 2가지 상태만 (명확함)func newStyle(completion: @escaping (R..

Swift 2025.06.17

[아키텍처] Clean Architecture + MVVM

1. Clean Architecture 기본 개념3개 레이어: Presentation (UI 로직) → Domain (비즈니스 로직) ← Data (데이터 접근)의존성 규칙: 내부 레이어는 외부 레이어에 의존하지 않음핵심: 비즈니스 로직을 UI/DB로부터 완전히 독립시키는 것2. Domain Layer 상세 분석// Domain Layer 구성📁 Entities (비즈니스 모델) - Movie.swift - MovieQuery.swift📁 UseCases (비즈니스 로직) - SearchMoviesUseCase.swift - FetchRecentMovieQueriesUseCase.swift📁 Interfaces/Repositories (의존성 역전) - MoviesRepository.s..

iOS 2025.06.13

[Swift] Any와 AnyObject

오랜만에 스토리보드로 화면을 그리다가 눈에 밟히는 Any..!프로토콜에서 사용했던 AnyObject와 무슨 관련이 있는건가 궁금했다 타입캐스팅 공식문서에서 설명하고 있는 Any와 AnyObject 그리고 예상했겠지만 Any, AnyObject 둘 다 프로토콜임 ✅ 예제// Any - 모든 타입 수용let anyInt: Any = 42 // Int (값 타입)let anyString: Any = "Hello" // String (값 타입)let anyButton: Any = UIButton() // UIButton (참조 타입)// AnyObject - 클래스만 수용let objButton: AnyObject = UIButton() // 클래스// let objInt..

Swift 2025.06.12