커리큘럼 내용
S1 — 일단 만든다
SwiftUI 첫 화면, 레이아웃 시스템, 앱 구조 이해, @State, 사용자 입력, 리스트와 네비게이션, 할 일 앱, 화면 전환 패턴, 공유 상태 관리, TabView, 타입과 옵셔널, 컬렉션, 클로저
S2 — 왜 이렇게 느려?
자료구조: Array vs Set vs Dictionary, 시간 복잡도 O(n), Big-O 표기법, 정렬 알고리즘, 이진 탐색, 해시 테이블, 스택과 큐, 트리와 그래프, 알고리즘 설계 패턴
S3 — 코드가 스파게티
객체지향 프로그래밍, SOLID 원칙, 디자인 패턴(MVC, MVVM, Observer, Singleton, Factory), 프로토콜 지향 프로그래밍, 의존성 주입, 클린 아키텍처
S4 — 앱이 죽는다
메모리 관리, ARC(Automatic Reference Counting), retain cycle, 강한/약한 참조, 값 타입 vs 참조 타입, Swift 컴파일러, 런타임 에러, 크래시 디버깅
S5 — 서버 데이터
HTTP/HTTPS, REST API, URLSession, JSON 파싱, Codable, 네트워크 보안, 인증(OAuth, JWT), Core Data, SwiftData, 데이터베이스 기초, SQL
S6 — UI가 멈춘다
동시성 프로그래밍, async/await, Task, Actor, 메인 스레드, GCD, 렌더링 파이프라인, Core Animation, 프레임 드롭 디버깅
S7 — 코드가 맞는지
유닛 테스트, XCTest, 통합 테스트, UI 테스트, TDD, 코드 커버리지, CI/CD, Git 브랜치 전략, 코드 리뷰
S8 — 더 깊이
컴퓨터 구조, CPU와 메모리, 캐시, 운영체제, 프로세스와 스레드, 가상 메모리, 파일 시스템, 컴파일러, LLVM, Swift 중간 표현
S9 — 수학
이산수학, 집합론, 논리학, 선형대수, 행렬, 벡터, 확률과 통계, 그래프 이론