@Environment로 모델 공유하기
모델을 뷰 환경에 주입합니다.
@Environment로 모델 공유하기은(는) CoddyKit의 무료 SwiftUI Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 SwiftUI Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. SwiftUI Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
여러 단계 아래로 공유하기
중간에 있는 모든 뷰를 거쳐 모델을 전달하는 일은 번거롭습니다. environment를 사용하면 깊은 곳의 자식 뷰에서도 모델에 직접 접근할 수 있습니다.
environment란 무엇인가요
environment는 뷰 계층을 따라 내려가는 공유 값 모음입니다. 따라서 모든 하위 뷰가 상위 뷰에서 배치한 값을 읽을 수 있습니다.
.environment로 주입하기
부모 뷰에서 .environment 수정자를 사용해 관찰 가능한 모델을 뷰 계층에 배치합니다.
ContentView()
.environment(model)@Environment로 읽기
자식 뷰는 @Environment 래퍼와 모델 타입을 사용해 프로퍼티를 선언하고 공유 모델을 읽습니다.
@Environment(Counter.self) private var model타입으로 일치시키기
environment는 모델의 타입을 기준으로 모델을 찾으므로, 주입하는 타입과 자식 뷰가 요청하는 타입이 일치해야 합니다.
직접 전달할 필요가 없습니다
이제 자식 뷰에 모델을 모든 초기화 메서드를 거쳐 전달할 필요가 없습니다. 필요할 때 environment에서 간단히 가져오면 됩니다.
공유 모델 사용하기
한번 읽은 environment 모델은 다른 모델과 똑같이 사용할 수 있습니다. 값을 읽고 메서드를 호출하면 됩니다.
Text("\(model.count)")
Button("Add") { model.increment() }하나의 인스턴스, 여러 독자
모두가 주입된 같은 인스턴스를 읽으므로, 한 화면에서 변경한 내용이 해당 모델을 읽는 모든 곳에 표시됩니다.
높은 위치에서 한 번 주입하기
모델은 뷰 계층의 상단, 보통 앱의 루트에 가깝게 주입해야 아래의 모든 화면에서 공유할 수 있습니다.
WindowGroup {
RootView().environment(model)
}소유자는 여전히 @State를 사용합니다
한 뷰는 여전히 @State로 모델을 소유하고 주입합니다. environment는 그 하나의 인스턴스를 아래쪽으로 공유할 뿐입니다.
모델이 없으면 충돌합니다
environment에 전달되지 않은 모델을 자식 뷰가 읽으면 앱이 충돌합니다. 따라서 어떤 독자 뷰가 나타나기 전에 항상 모델을 주입해야 합니다.
빠른 확인
environment를 통한 공유에 대해 마지막으로 확인해 보겠습니다.
복습
@Environment를 사용해 뷰 계층 전체에서 하나의 모델을 공유했습니다. 높은 위치에서 모델을 주입한 다음, 모든 하위 뷰에서 타입으로 모델을 읽을 수 있습니다. 🌍
AI 튜터와 함께 Swift을(를) 배우세요 — 무료
브라우저에서 실제 코드를 작성하고 실행하며, 24/7 AI 튜터로부터 즉각적인 도움을 받고, 웹이나 앱에서 중단한 부분부터 계속 학습하세요.
- 코스
- 30
- 레슨
- 120
자주 묻는 질문
“@Environment로 모델 공유하기” 강의는 무료인가요?
네 — “@Environment로 모델 공유하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 SwiftUI Academy 강의 전체를 잠금 해제할 수 있습니다. SwiftUI Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“@Environment로 모델 공유하기”에서 뭘 배우나요?
모델을 뷰 환경에 주입합니다. 브라우저에서 직접 실행하는 실습 코드로 SwiftUI Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
SwiftUI Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 SwiftUI Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“@Environment로 모델 공유하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 SwiftUI Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 SwiftUI Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 뷰 상태에서 모델 클래스로
- @Observable 매크로
- 소유한 객체에 @State 사용하기
- @Environment로 모델 공유하기