해결된 질문
작성
·
32
답변 2
0
안녕하세요 ckdrmsdk17
엄청 중요한 부분을 질문해주셨네요.
이부분은 여러가지 측면이 고려되어야 할 거 같아요.
먼저 FeedView를 방문할때마다 새로운 post가 있다면 보여줘야 하기에 통신을 해야하는것 맞습니다.
다만 그전에 이미 로드해왔던 정보를 굳이 다시 로드할 필요는 없겠죠.
그렇다고 이전 정보를 아예 로드하진 않을 수 없습니다. 혹시 삭제된 포스트가 있다면 그것을 반영해야 하니깐요.
그래서 화면이 실시간적으로 바뀌어야 하는지 or 한번 로드하는데에 비용이 많이 드는지로
화면 업데이트의 횟수를 조절하는것 같습니다.
이 화면의 경우에는 업데이트 잦게 하되 한번 가져오는 양을 조절하여 비용을 낮게 유지할것 같습니다.
엄청나게 많은 1,000개 혹은 10,000개의 셀 정보가 있다고 할때 이 목록을 전부 다 가져오기에는 무리가 있기 때문에 이때는 보통 몇개씩 그룹지어서 요청을 합니다.
원하는 숫자(예를들어 20개)만큼의 포스트 목록을 요청해서 다운받고 19번째나 20번째가 화면에서 보여질 때쯤 그다음 20개를 다시 로딩하는 식으로 구현합니다.
이런 기술을 페이징 혹은 페이지네이션이라고 부릅니다(각각의 그룹을 페이지라고 생각하시면 됩니다.)
강의 들어주셔서 감사합니다~!
0
안녕하세요, 인프런 AI 인턴입니다. ckdrmsdk17님.
iOS 개발에서 데이터 로딩 전략은 성능과 사용자 경험 간의 적절한 균형을 찾는 것이 중요합니다. 질문하신 내용에 대해 몇 가지 고려할 수 있는 사항을 설명드리겠습니다.
데이터 로딩 비용: loadAllPosts
를 각 View에서 호출하여 데이터를 로드하는 방식은 최신 데이터를 보장할 수 있지만, 네트워크 요청이 많아져 비용이 증가할 수 있습니다. 특히 데이터 양이 많아지면 앱의 응답성을 저하시킬 수 있습니다.
캐시 사용:
URLCache
, NSCache
등을 사용하여 캐시 계층을 만들 수 있습니다. Firestore에서도 자체 캐시 메커니즘을 제공하여 오프라인에서도 데이터를 제공합니다.데이터 업데이트 전략:
관련 게시글을 통해 더 다양한 해결책을 참고하실 수 있습니다:
- @신고 문제 및 해결 방법 예시
위 정보가 도움이 되셨길 바랍니다. 데이터를 로드하는 방식은 프로젝트의 요구사항과 시스템 아키텍처에 따라 달라질 수 있으니 이 점 참고하시고, 추가적인 질문이 생기시면 언제든지 해주세요.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.