Skip to content
This repository has been archived by the owner on Feb 19, 2023. It is now read-only.

[Reafctoring] search페이지 역할 분리에 관하여 #66

Closed
moonheekim0118 opened this issue Apr 2, 2021 · 1 comment
Closed

[Reafctoring] search페이지 역할 분리에 관하여 #66

moonheekim0118 opened this issue Apr 2, 2021 · 1 comment
Labels
documentation Improvements or additions to documentation

Comments

@moonheekim0118
Copy link
Owner

moonheekim0118 commented Apr 2, 2021

다량의 리뷰 및 코멘트를 가져오는 경우

  • 현재 다량의 리뷰 가져오기와 단일 리뷰 가져오기는 로직이 분리되어있다. 다량의 리뷰중 하나를 클릭하면 해당 id를 통해 단일 리뷰를 가져오는 식이다.
  • 현재는 다량의 리뷰에 대하여 read / update / remove를 같은 hooks (로직) 에 넣어놨다. 이유는 가져온 데이터를 state에 저장했기 때문이고, update나 remove 될 때 state를 변경해줘야하기 때문이다.
  • 하지만 이게 정말 올바른 설계법일까? 다량의 리뷰를 가져올 때는 해당 리뷰를 캐싱 해주고, 상태에 저장 해주기 때문에, removeupdate를 해당 hooks에 포함시켰지만, 이럴 경우 use~Data 는 응집도가 매우 낮아지는 것 같다. 단지 데이터를 가져오는 연산 뿐만 아니라, 삭제와 업데이트까지 함께 해주니까 말이다.

use~Data 훅스의 역할에 관하여

  • 기본적으로는 API로부터 가져온 대량의 데이터를 캐싱해주고 상태값에 저장해주며, 인피니트 스크롤링을 통해 지속적으로 데이터를 추가해주는 역할을 한다.

그렇다면 어떻게 나눌 것?

  • 엄밀히 말하자면 removeupdate는 단일 리뷰에 대한 연산이다. 실질적으로 데이터를 가져올 때 (useData) remove 와 update가 필요하지 않다. 오로지 단일 데이터가 사용자에게 보여졌을 때 remove 와 update가 필요한 것이다. 또한 useData를 사용하여 데이터를 가져옴에도 불구하고 데이터가 아예 없을 수도 있다. 이럴 경우 용량을 차지하는 update와 remove 연산은 무용지물이 된다.
  • 따라서 단일 데이터 컴포넌트에서 update와 remove를 담당 하기로 한다. 그리고 캐시와 상태에 대한 수정만 따로 use~Data에서 구현하여, update 와 review가 실행될 때 함께 실행되도록 해준다.
@moonheekim0118 moonheekim0118 added the documentation Improvements or additions to documentation label Apr 2, 2021
@moonheekim0118 moonheekim0118 mentioned this issue Apr 2, 2021
@moonheekim0118
Copy link
Owner Author

수정 결과

@moonheekim0118 moonheekim0118 changed the title [Reafctoring] 응집도에 관하여 [Reafctoring] search페이지 역할 분리에 관하여 Apr 3, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant