@Published의 용도
47
投稿した質問数 2
안녕하세요
이번 실전 네트워크 통신 강의를 들으며 ViewModel을 만들 때 1번 방법이 아닌 2번 방법으로 만들 수 있다는 사실을 알게되었습니다.

앞쪽 강의에서 기존 1번 방식에서는 변수 생성 시 @Published 를 붙여야했지만, 2번 방식처럼 @Observable을 사용하면 @Published를 붙이지 않아도 된다고 하셔서 결국 위의 두 코드는 같은 기능을 한다고 이해를 했습니다.
그런데 이번 강의에서 아래와 같이 @Published를 사용하여서, 이 부분이 이해가 잘 가지 않습니다

혼자 고민해본 결과로는,
- count 변수: 단순히 값을 읽고 쓰는 용도
- textFieldID: 퍼블리셔(특정 시간/조건에 따라 값을 방출하는..?)로 사용
위의 용도 차이이다.
그렇다면 기존 방식에서 @Published를 모두 붙여야했던 이유는 무엇인지..? 라는 질문이 또 생기는 것 같습니다.
답변 주시면 감사하겠습니다!!
回答 1
0
안녕하세요 gaeun 님.
@ObservationIgnored + @Published 사용 이유는 두개의 서로 다른 반응형 시스템을 함께 사용하기위해서 테스트 용으로 사용했습니다.
각각의 역할
@Published (Combine)
목적: Combine 연산자 사용 (
.debounce(),.map()등)용도: 비즈니스 로직 처리 (유효성 검사, 데이터 변환)
@Observable (SwiftUI)
목적: View 자동 업데이트
용도: UI 반영
왜 @ObservationIgnored가 필요한가?
@ObservationIgnored @Published var textFieldID: String = ""
var idValid: Bool = false❌ @ObservationIgnored 없으면
textFieldID변경 → 즉시 View 업데이트.debounce()가 무의미해짐불필요한 중복 업데이트 발생
✅ @ObservationIgnored 사용하면
textFieldID→ Combine 파이프라인만 실행처리 결과 (
idValid) → View 업데이트효율적인 업데이트 제어
실제 동작 흐름
사용자 입력
↓
textFieldID (@Published)
↓
Combine 파이프라인
(.debounce → .map → .sink)
↓
idValid = true/false
↓
View 자동 업데이트 (@Observable)
결론: Combine의 강력한 연산자를 활용하면서, SwiftUI의 새로운 @Observable로 View를 효율적으로 업데이트하기 위한 하이브리드 방식 입니다.
감사합니다
Jacob
수강 기간 연장 문의
0
28
1
수강연장부탁드려도될까요..
0
42
2
Combine Playground 에서 실행 시
0
57
2
70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문
0
42
1
searchable이 화면 하단에 위치해요
0
62
2
Drawing Cycle 관련 질문
0
72
1
앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?
0
95
2
델리게이트 패턴 관련 질문
0
66
2
ios 애드몹 광고
0
134
2
수강 기간 연장 부탁드릴 수 있을까요?
0
61
1
활용 앱 57강 질문입니다.
0
55
1
그래프 그리기 위한 API가 프리미엄 요금제를 구독해야만 가능하다고 합니다...ㅜㅜ
0
75
2
과거 ai없을때 듣고 다시 듣는 중인데
1
55
1
활용 앱 30강 에러 질문입니다
0
64
2
예제 빌드시 The compiler is unable to type-check this expression in reasonable time 에러 발생
0
54
1
TextField 에 Binding 으로 연결하면 에러 발생
0
55
1
xcode 26.2 에서 ReducerOf<Self> 이슈
0
77
2
20강 Task 내부에서 nonisolated async 호출 예제 질문드립니다
0
78
2
19강 Actor 의 동작 관련해 질문드립니다
0
83
2
기초앱 17강 Contraints 설정 질문입니다.
0
67
2
소리가 ㅠㅠ
0
54
2
실로폰 음원 재생 오류 해결 (do.1.wav)
1
72
2
Emulate Device Frame 관련 질문입니다.
0
89
2
Actor에서 Task vs Task.detached 사용 시 재진입 문제 질문
0
104
2

