인프런 커뮤니티 질문&답변

rrlasnsn님의 프로필 이미지
rrlasnsn

작성한 질문수

Part2: 초중급 iOS 인스타그램 클론(SwiftUI, MVVM, Firebase, 2024)

강의 코드

프로필 수정 후 변경된 내용을 피드에 바로 반영되도록 하고 싶습니다.

작성

·

12

0

안녕하세요. 강의 유익하게 들었습니다!

지금 마지막까지 강의를 다 듣고 코드 작성도 완료한 상태인데,

현재는 ProfileEditingView에서 정보 수정 후, 피드에 수정된 유저의 정보가 바로 반영되지 않는 상태입니다.

저는 프로필 수정 후 피드에 수정된 유저 정보가 바로 반영 되도록 추가적으로 작업을 하려고 하는데, 가장 최선의 방법이 무엇일지 궁금합니다.

현재로선 FeedCellView에 .onAppear를 걸어서 내부에 유저 정보를 한 번 더 가져오는 식으로 작성하거나, 아니면 새로고침을 했을 때만 가져오는 방법을 생각했는데, 이렇게 하면 모든 게시물에서 유저 정보를 업데이트 해야해서 그만큼 딜레이가 많이 발생하는 문제점이 있어 또 다른 나은 방법이 있을지, 이게 최선인지 알고싶습니다! 감사합니다.

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. rrlasnsn님.

사용자가 프로필을 수정한 후 이러한 변경 사항이 즉시 피드에 반영되도록 구현하는 방법에 대해 고민 중이시군요. 일반적으로 SwiftUI 및 MVVM 아키텍처에서는 상태 관리 및 데이터 바인딩을 통해 이러한 업데이트를 처리할 수 있습니다.

  1. 데이터 바인딩 활용:

    • MVVM 패턴에서는 ViewModel의 상태가 변경될 때 View가 자동으로 업데이트되도록 설계하는 것이 좋습니다. 이를 위해 @Published 속성을 사용하여 프로필 데이터가 업데이트될 때 구독된 View가 자동으로 업데이트되도록 할 수 있습니다.
  2. 옵저버 사용:

    • Firebase를 사용 중이라면, Firebase Firestore의 실시간 데이터 동기화 기능을 사용할 수 있습니다. 데이터베이스에 있는 유저 정보가 변경될 때마다 자동으로 뷰모델의 데이터를 갱신하여 View가 이에 맞춰 리렌더링되도록 할 수 있습니다.
  3. 최적화 기법:

    • 모든 피드를 업데이트하기보다는 특정 유저의 변경된 정보만 갱신할 수 있도록 최적화하는 것이 중요합니다. 예를 들어, MongoDB aggregate 또는 Firestore에서 특정 조건에 맞는 유저 데이터만 옵저빙하도록 설정하는 방법을 고려해볼 수 있습니다.

이와 같은 방법을 적용하면, 사용자 경험을 최적화하면서도 효율적인 데이터 업데이트를 보장할 수 있을 것입니다.

또한, 다음의 관련된 게시글도 도움이 될 수 있습니다:
- @Bindable VS @Environment + @Bindable 문제 해결 예시
- @State와 @Bindable의 사용 차이점 설명

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

rrlasnsn님의 프로필 이미지
rrlasnsn

작성한 질문수

질문하기