태그: Swift
14편
-
Swift 컬렉션 내부 | Array·Dictionary·Set과 Copy-on-Write
Swift의 Array·Dictionary·Set을 만들고 map·filter·reduce, flatMap, 슬라이스로 변환하는 방법과 함께, 값 타입인 컬렉션이 힙 버퍼를 공유하다 쓰기 순간에만 복사하는 Copy-on-Write 동작을 직접 구현해 봅니다. 그룹핑·빈도 세기·lazy 패턴도 담았습니다.
-
iOS·Swift 내부 구조 심화 — ARC, 증인 테이블, UIKit/SwiftUI
Swift의 ARC와 weak·unowned, 프로토콜 증인 테이블과 existential 비용, 값·참조 타입과 COW, UIKit과 SwiftUI의 상태 모델, MainActor·DI 같은 프로덕션 패턴을 내부 구현과 설계 트레이드오프 관점에서 정리합니다. [weak self]가 필요한 경우와 아닌 경우, @StateObject 수명 함정도 다룹니다.
-
Swift async/await 흔한 실수와 디버깅 팁 | 실전 체크리스트
동기 함수에서 async를 호출하려다 막히는 문제, 기다리지 않은 Task 누수, MainActor 격리 위반, TaskGroup 에러 누락, SwiftUI onAppear에서 만든 Task, 취소 확인 누락, Sendable 위반까지 Swift 동시성의 흔한 실수 일곱 가지를 코드로 고칩니다.
-
Swift 비동기 프로그래밍 | async/await, Task
async/await와 async throws 기본에서 시작해 Task 생성, async let으로 병렬 실행하기, Actor로 공유 상태를 격리하는 방법을 설명합니다. API 클라이언트 예제와 withTaskGroup으로 여러 요청을 병렬로 모으는 예제로 실제 쓰임을 보여줍니다.
-
SwiftUI 입문 | 선언적 UI, 상태, MVVM
SwiftUI의 선언적 뷰 작성법, @State·@Binding·ObservableObject의 차이, MVVM으로 앱 구조 잡기, List와 NavigationStack, URLSession과 Combine 네트워크 통신, 프리뷰 활용법을 설명하고 목록·상세·로딩 화면 예제로 묶습니다.
-
Swift Combine: Publisher와 Subscriber, Operator, @Published로 반응형 흐름 만들기
Swift Combine 정리. Publisher와 Subscriber의 관계, 자주 쓰는 Operator, @Published로 SwiftUI와 연결하기, 네트워크 요청 같은 실전 예제를 다룹니다.
-
Swift 시작하기: iOS 개발 언어의 특징과 Xcode 환경 설정
Xcode 설치와 Playground 사용법, Hello World부터 시작해 var와 let, 타입 추론, 기본 타입, 매개변수 레이블이 있는 함수, if·for·switch 제어문을 예제로 익힙니다. 간단한 계산기와 Codable로 JSON을 디코딩하는 예제로 첫 Swift 코드를 완성합니다.
-
Swift 변수와 타입 | var, let, 옵셔널
var와 let 선택 기준, 타입 추론, 정수·실수·문자열·불리언 타입, 명시적 타입 변환을 설명하고 옵셔널을 if let 바인딩, 옵셔널 체이닝, ?? 기본값, 강제 언래핑으로 다루는 방법을 비교합니다. 사용자 정보 처리 예제로 실제 흐름을 보여줍니다.
-
Swift 함수와 클로저 | 함수 정의, 클로저, 고차 함수
인자 레이블과 매개변수 이름, 기본값, 가변 매개변수, inout에서 시작해 함수 타입과 고차 함수, trailing closure, 캡처 리스트와 weak·unowned, @escaping과 @autoclosure, 커스텀 연산자까지 Swift 함수와 클로저를 한 흐름으로 설명합니다.
-
Swift 클래스와 구조체 | Class, Struct, Enum
참조 타입인 class와 값 타입인 struct의 차이를 코드로 비교하고, 계산 프로퍼티, 연관 값과 원시 값을 가진 enum, 상속과 다형성, init과 deinit, willSet·didSet 옵저버, ARC와 weak·unowned 메모리 관리까지 다룹니다.
-
Swift 프로토콜과 확장 | Protocol, Extension
Swift 프로토콜과 확장. 프로퍼티·메서드·mutating 요구 사항 선언, 프로토콜 지향 프로그래밍(POP), 프로토콜 확장의 기본 구현과 남용 주의, 네트워크 계층을 프로토콜로 분리하는 예제를 정리합니다.
-
Swift 제네릭 | Generic 함수, 타입, 제약
제네릭 함수와 Stack·Pair 같은 제네릭 타입을 직접 만들고, Equatable 같은 프로토콜 제약과 where 절로 타입을 좁히는 방법, 연관 타입을 쓰는 프로토콜을 예제로 설명합니다. 제네릭 캐시와 Decodable 기반 제네릭 로더 예제도 담았습니다.
-
Swift 에러 처리 | do-catch, throw, Result
Error 프로토콜로 에러 타입을 정의하고 throw, throws, do-catch, try?와 try!의 차이를 설명한 뒤 네트워킹, 파일 I/O, JSON 파싱, 입력 검증에서 쓰는 실전 패턴을 보여줍니다. Result 타입과 async/await 환경의 에러 처리도 다룹니다.
-
Swift 시리즈 목차: 기초 문법부터 옵셔널, 프로토콜, 제네릭, SwiftUI, Combine까지 10편
옵셔널, 컬렉션과 Copy-on-Write, 클로저와 ARC, 프로토콜과 제네릭, 에러 처리, async/await, SwiftUI, Combine까지 Swift 시리즈 각 편이 답하는 질문을 모았습니다. 목적별 읽는 순서와 Swift 버전별로 문법이 바뀐 지점도 함께 안내합니다.