멘토 네이선께서 키워드 하나를 콕 짚어주셨다.
TCA (The Composable Architecture) — 대규모 앱에서 유용한 구조라 한번쯤은 꼭 해보면 좋다고.
하지만 지금은 빠르게 MVP를 만들어야 하는 시기이기 때문에,
이번 프로젝트에서는 비추천이라고 하셨다.
그래서 나는 한번쯤을 요번에 가져볼까 한다.
기획부터 Hi-Fi까지 만들고 나니, 개발 기간이 딱 6일 남았다.
(금, 토, 일, 월, 화, 수… 생각보다 빡세다.)
조바심이 나는 건 사실이지만,
그럴수록 차근차근 구조부터 잡아보자.
안드로이드 개발할 때 익숙했던 MVI 구조와 유사한 단방향 데이터 흐름이 마음에 들었다.
시도 안해볼 이유가 없잖아..?!
(모를 때가 무모할 수 있지.)
유명 Swift 커뮤니티에서 제작했고, 꾸준히 업데이트하며, 스타트업이나 기술 지향 팀들은 이미 TCA 기반 앱을 운영하고 있다고한다.
[View]
↓
Action
↓
[Reducer] → State 변경
↓
[View] 다시 그려짐
↓
(필요시 Effect 실행 → 다시 Action 발생)
1. State (상태)
struct AppState {
var count = 0
var isLoading = false
}
2. Action (행위/이벤트)
enum AppAction {
case incrementTapped
case decrementTapped
case responseReceived(Result<Int, Error>)
}
3. Reducer (상태 변화 로직)
let appReducer = Reducer<AppState, AppAction, AppEnvironment> { state, action, env in
switch action {
case .incrementTapped:
state.count += 1
return .none
case .decrementTapped:
state.count -= 1
return .none
}
}
생각보다 복잡할 수도 있지만, SwiftUI를 더 깊이 이해하고, 단방향 데이터 흐름을 경험하는 기회로 삼아보려 한다.