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

무한스크롤 #32

Closed
beingPracticer opened this issue Nov 7, 2019 · 1 comment
Closed

무한스크롤 #32

beingPracticer opened this issue Nov 7, 2019 · 1 comment
Assignees
Milestone

Comments

@beingPracticer
Copy link
Collaborator

No description provided.

@beingPracticer beingPracticer changed the title 피드 무한스크롤 무한스크롤 Nov 7, 2019
@WooYeonSeo WooYeonSeo self-assigned this Nov 18, 2019
@sang-eun sang-eun added this to the 2주차 milestone Nov 18, 2019
WooYeonSeo added a commit that referenced this issue Nov 20, 2019
why
스타일링 작업한 컴포넌트가 너무 비대해져서 헤더 바디 푸터로 분리

how
composition 이라는 곳을 만들어서 컴포넌트의 집합체들과 재사용을 하지 않는 컴포넌트들을 관리하기로 함
Container가 component들을 모아서 관리하는 곳으로 주 데이터 요청을 담당한다.
WooYeonSeo added a commit that referenced this issue Nov 20, 2019
why
데이터 요청을 확인하기위해서 content 하나로 확인하는 쿼리 작성
더보기 부분 쿼리가 동작하는지 확인하기 위해서 요청 임시로 작성

how
피드들의 content를 확인하는 요청 쿼리를 apollo client로 작성
offset과 limit(neo4j에서는 skip과 limit)이 동작하도록 값을 넘기고 추가 fetch를 해오는 부분 동작을 확인하기 위해서

ref
동작 확인을 위한 연결의 과정이므로 정리되지 않은 상태
pagination은 cursor based 방식을 적용할 예정
WooYeonSeo added a commit that referenced this issue Nov 21, 2019
why
재사용 가능성이 있고 파일이 너무 길어지기 때문에 분리함

how
hook 디렉토리안에 useScrollEnd로 분리
WooYeonSeo added a commit that referenced this issue Nov 21, 2019
why
기존에는 같은 데이터를 받아서 데이터 요청이 잘 작동하는지 확인하기 위함이었고
이번에는 실제 데이터를 받아서 데이터가 끝나면 스크롤링이 끝나는지 확인하기 위해서 작성

how
offset 과 limit으로 현재 index를 기억하고 데이터 fetching을 보냄
@WooYeonSeo
Copy link
Contributor

WooYeonSeo commented Nov 21, 2019

  • 만약 새로운 데이터가 새로 막 생기면 같은 데이터를 또 조회해 올 수 있음 이를 개선하기 위해서 cursor based pagination이 필요
  • offset 갯수에 대해서 도 생각이 필요함
  • 맨 마지막 페이지에 계속 있으면 계속 데이터를 요청함
  • 각 페이지의 정보를 가지고 있을 수도 있음(뒤로가기의 경우)
  • useMemo에서 fetching 하는 바람에 계속 데이터를 중복으로 들고오는 이슈가 발생했었지만 updateQuery 의 prev에서 이전 데이터를 계속 가지고 있다는 것을 알게 되고 수정함

WooYeonSeo added a commit that referenced this issue Nov 22, 2019
why
client에서 피드 요청에 대한 스크롤링을 구현하기 위해서 서버쪽 api 를 임시로 작성

how
graphql 에서 전달받은 시간 이후 값을 neo4j에서 쿼리로 조회

*
사용자 정보값은 추가 예정
client확인용으로 작업한 사항
WooYeonSeo added a commit that referenced this issue Nov 24, 2019
why
사용하지 않는 코드가 있음

how
cursor based 말고 offset 에 해당하는 부분 코드 삭제
WooYeonSeo added a commit that referenced this issue Nov 25, 2019
router, writeFeed 부분과 conflict 발생으로 머지
WooYeonSeo added a commit that referenced this issue Nov 25, 2019
why
feed main 페이지를 보여주기 위해서

how
규종님이 작업하신 feed write 컨테이너 붙임
feed -> Feed 로 폴더이름 변경
WooYeonSeo added a commit that referenced this issue Nov 25, 2019
why
render쪽에서 checkEnd에서 하면 맨끝에서 계속 불러지고 state 변경에 따라 랜더링 할 수 있기 때문에

how
useEffect에서 checkEnd값에 따라 render 되게 변경
WooYeonSeo added a commit that referenced this issue Nov 25, 2019
why
ci 에서 app test에서 provider 없어서 useQuery를 실행 할 수 없음

how
app.test.tsx에서 provider 값 받아서 랜더링 되게 수정
WooYeonSeo added a commit that referenced this issue Nov 25, 2019
why
작업중이던 내용이 올라감

how
삭제하고 올림
WooYeonSeo added a commit that referenced this issue Nov 25, 2019
why
불필요한 주석으로 읽기 좋지 않음

how
주석 console삭제
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
비동기로 scrollEvent 를 감지하기 위해서 사용

how
intersection observer를 hook으로 분리하여 사용
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
react 에서는 Key로 반복적으로 랜더링되는 컴포넌트에 값을 주어야 함

how
작성된 시각으로 고유한 key 값을 등록
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
매직넘버가 가독성을 해침

how
날짜가 없을 때 데이터를 모두 조회하기 위해서 cursor에 MAX_DATE 상수 지정
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
props가 명확하지 않은 이름으로 만들어져있었음
재사용이 많이됨

how
공통 컴포넌트에 있는 component로 교체
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
공통 컴포넌트로 프로필 로딩을 변경하면서 필요없어짐

how
삭제
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
같은 역할을 하는 FeedVars interface가 다른 인터페이스들과 떨어져있어서 가독성이 떨어짐

how
FeedVars 인터페이스를 같은 위치로 이동
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
배열에서 계속 사용될 수 있는 interface임

how
공통 interface 파일로 분리
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
어떤 형태로 쿼리를 넣고 반환받는지가 애매함

how
쿼리를 파싱해주는 함수에 타입지정
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
FeedContents가 이미 최상위 container 로 감싸고 있음.

how
<> </> 빈 프레그먼트 삭제
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
어떤 노드에서 가지고 온 값인지에 대해 명확하지 않음

how
해당 노드에 맞는 이름을 부여  f->feed a->user
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
불필요한 주석으로 가독성 저하

how
주석삭제
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
테스트환경은 브라우저이기 때문에 intersection api 가 없음

how
mock 모듈 추가로 테스트 통과하게 설정
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
커서가 같은 값이 넘어와서 찍었었는데 실수로 못지움
--> 삭제
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
why
태그의 이름이 시멘틱하지 않음

how
제일 마지막에서 추가 로딩 여부를 확인하는 container 의 역할이므로 LoadCheckContainer 로 변경
WooYeonSeo added a commit that referenced this issue Nov 26, 2019
…nite_scroll

### 개발한사항 
- infinite scroll insepctobserver 로 구현
   - hook으로 분리
- 코드리뷰 받은사항 수정해서 반영
   - 불필요한 fragment 삭제
   - 쿼리 네임스페이스 변경 
   - 매직넘버 상수분리
   - component key값 지정
   - 파라미터 타입지정
   - 인터페이스 분리 
   - 프로필 공통 컴포넌트 사용하도록 수정

branch : feature-32/infinite_scroll
WooYeonSeo added a commit that referenced this issue Nov 27, 2019
why
like 버튼 동작 시 디비에 저장되어야 함

how
- cookie로 사용자 정보 캐치
- 피드 정보에 feedid추가
- feedId로 해당 피드와 사용자 간의 like relation 연결 (중복으로 되지 않도록 merge 로 연결)
- cors 설정

참고
unlike는 아직 안함
WooYeonSeo added a commit that referenced this issue Nov 28, 2019
글쓰기 컴포넌트 안보여서 컴포넌트 추가로 보이게 처리
WooYeonSeo added a commit that referenced this issue Dec 4, 2019
why
디비에서 비교할 때 datetime string으로 비교하기 위해서

how
같은 형태의 string으로 변환하는 util함수 작성
WooYeonSeo added a commit that referenced this issue Dec 13, 2019
datetime 한국시간에 맞게 설정
WooYeonSeo added a commit that referenced this issue Dec 13, 2019
마지막 피드일 때 없는 프로퍼티에 접근해서 생기는 오류 수정
마지막 피드일때 안내 컴포넌트 추가
WooYeonSeo added a commit that referenced this issue Dec 13, 2019
친구가 없을 때 생긴 알림이 없기 때문에 버그가 발생했었음
그래서 친구 없을 때 예외처리
WooYeonSeo added a commit that referenced this issue Dec 13, 2019
입력된 댓글 갯수 연결
댓글 입력할 때 자동으로 카운트가 올라가지는 않습니다..
WooYeonSeo added a commit that referenced this issue Dec 22, 2019
피드 이미지 레이지 로딩 구현
WooYeonSeo added a commit that referenced this issue Dec 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants