Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Brewery 회고 #9

Open
simoniful opened this issue May 17, 2022 · 0 comments
Open

Brewery 회고 #9

simoniful opened this issue May 17, 2022 · 0 comments

Comments

@simoniful
Copy link
Owner

simoniful commented May 17, 2022

고민

  1. Prefetching을 통한 페이지네이션
  2. GCD
  3. Sticky header 구성

회고

  1. 페이지네이션
    예전 웹 개발에서는 IntersectionObserving하여 감지하고 데이터 패칭을하는 방식 / 구현하는 방식에 있어서는 콘텐츠 사이즈를 계산해서 요청을 하는 방식 오프셋에 맞추어 호출하는 방식으로 으로 무한 스크롤링이라는 페이지 네이션을 주로 구현했다.
    swift로 넘어와서 보니 콘텐츠 사이즈로 계산하는 기존의 방식과 더불어 Table / Collection의 DataSourcePrefetching 프로토콜을 통한 메서드를 활용하여 해당 indexPath의 값에 접근 전에 감지하여 데이터 패칭을 요청하는 방식으로 구현할 수 있었다.
    자연스러운 UI를 위해서 Indicator 뷰를 활용하면 더 좋은 사용자 경험이 가능하도록 개선할 수 있다. 또한 RxDataSource를 쓴다면 더 편리하고 자연스러운 페이지네이션을 구성할 수 있을 거라 하니 또 도전해봐야겠다.

  2. GCD
    👉🏻 동시성에 관한 정리
    사용하면서 가장 크게 느낀 부분은 UI를 그릴 때의 main 쓰레드 동작과, 비동기적으로 동작을 구성하는 여러 API 호출 동시 호출과 같은 작업을 수행할 때 부분적으로 사용했었다. 정리를 하면서 느낀 건, OS 단에서 느끼게 되는 쓰레드의 개념을 확실하게 알고 이를 분산적으로 사용하는 방식에 대해서 기반적인 개념을 이해하는 것이 중요하다는 걸 알았다. Rx를 조금 배우면서는 완전이 같은 개념은 아니지만 스케쥴러를 통해서 옵션으로 이를 컨트롤하지만 확실하게 왜 사용할까 하는 부분에서 비동기적 / 동기적으로 수행하는 원리 + 운영체제적인 원리를 깊게 한 번 파볼 필요가 있다.

  3. Sticky header
    기존의 동일 API를 사용해서 구현한 프로젝트가 있었다. 해당 프로젝트에서 구현한 디테일 뷰만 보여주는 형식이었고 현재 두 가지 프로젝트를 합치고 개선 완료

참고

👉🏻 Prefetching을 통한 페이지네이션
👉🏻 다른 방식 페이지네이션, UI 튀는 현상 컨트롤
👉🏻 Sticky header

@simoniful simoniful changed the title Brewery Intro 회고 Brewery 회고 May 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant