0Pricing
Swift Academy · 강의

단일 진실 공급원과 단방향 흐름

하나의 권위 있는 상태 모델로 SwiftUI 앱을 설계합니다.

단일 진실 공급원과 단방향 흐름은(는) CoddyKit의 무료 Swift Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Swift Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

단방향 데이터 흐름이란 상태는 뷰 트리를 따라 아래로 흐르고 이벤트는 위로 올라가는 것을 의미합니다. 신뢰할 수 있는 단일 정보 원천을 두면 불일치가 사라집니다.

원칙

``` State → View → Event → State mutation → View re-renders ``` 뷰는 상태의 순수 함수입니다. 뷰가 상태가 무엇인지 결정하는 것이 아니라 상태를 표시하고 이벤트를 내보내기만 합니다.

모델 중심 사용자 인터페이스

```swift struct AppState { var count = 0; var filter: Filter = .all } struct AppView: View { @State var state = AppState() var body: some View { CounterView(state: state, onIncrement: { state.count += 1 }) } } ```

중복 상태 피하기

```swift // ❌ Duplicate state — can drift out of sync: @State var isLoading = false @ObservedObject var viewModel: ViewModel // also has isLoading // ✓ Single source: @ObservedObject var viewModel: ViewModel // owns all state ```

동작/이벤트 패턴

```swift enum CounterAction { case increment, decrement, reset } func reduce(state: inout AppState, action: CounterAction) { switch action { case .increment: state.count += 1 case .decrement: state.count -= 1 case .reset: state.count = 0 } } ```

TCA (구성 가능한 아키텍처)

구성 가능한 아키텍처(오픈 소스)는 리듀서, 효과, 저장소를 사용해 이 패턴을 Swift에서 형식화합니다. React의 Redux와 비슷합니다.

양방향 충돌 피하기

```swift // ✓ Clear ownership: parent owns, child observes: struct Parent: View { @State private var text = "" var body: some View { Child(text: $text) } } struct Child: View { @Binding var text: String var body: some View { TextField("", text: $text) } } ```

변경 사항 위로 전파하기

클로저(콜백)를 사용해 이벤트를 상위 뷰로 전파합니다: ```swift struct Child: View { var onDelete: () -> Void var body: some View { Button("Delete", action: onDelete) } } ```

단방향 코드 테스트하기

순수 상태와 순수 리듀서는 아주 쉽게 테스트할 수 있습니다: ```swift var state = AppState() reduce(state: &state, action: .increment) XCTAssertEqual(state.count, 1) ```

이점

• 예측 가능: 같은 상태 → 같은 사용자 인터페이스 • 디버깅 가능: 모든 동작과 상태 변경을 기록합니다 • 테스트 가능: 논리 테스트에 사용자 인터페이스가 필요하지 않습니다 • 시간 여행 디버깅: 상태 이력을 재생합니다

빠른 확인

단방향 데이터 흐름에서 상태 변경을 일으키는 것은 무엇입니까?

요약

핵심 내용: • 상태는 아래로 흐르고 이벤트는 위로 올라갑니다 • 단일 정보 원천을 사용하므로 상태가 중복되지 않습니다 • 테스트 가능한 변경 로직에는 동작과 리듀서를 사용합니다 • 콜백으로 하위 뷰의 이벤트를 상위 뷰에 전달합니다 • 순수 상태 + 리듀서 = 쉬운 단위 테스트 과정이 끝났습니다! 다음 주제: 컴바인 프레임워크

자주 묻는 질문

“단일 진실 공급원과 단방향 흐름” 강의는 무료인가요?

네 — “단일 진실 공급원과 단방향 흐름” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Swift Academy 강의 전체를 잠금 해제할 수 있습니다. Swift Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“단일 진실 공급원과 단방향 흐름”에서 뭘 배우나요?

하나의 권위 있는 상태 모델로 SwiftUI 앱을 설계합니다. 브라우저에서 직접 실행하는 실습 코드로 Swift Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Swift Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Swift Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“단일 진실 공급원과 단방향 흐름” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Swift Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Swift Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. @Binding: 양방향 데이터 흐름
  2. @ObservableObject와 @StateObject
  3. 공유 상태를 위한 @EnvironmentObject
  4. 단일 진실 공급원과 단방향 흐름
← Swift Academy(으)로 돌아가기