comtimes / comtimes-frontend

0 stars 0 forks source link

[DOCS] `1.0.0` version 배포하기 위해 해야할 일 정리 #11

Open zwonlala opened 2 years ago

zwonlala commented 2 years ago

라우팅

기존 컴타임즈

리스트형 보기 페이지 www.comtimes.new/list 리스트형 보기 페이지 www.comtimes.new/list?page=1 기사 상세보기 페이지 www.comtimes.new/news/${newsIdx}


참고>

<벨로그>

https://velog.io/@zwonlala/

https://velog.io/@zwonlala?tag=JavaScript

https://velog.io/@zwonlala/%ED%94%84%EB%A1%9C%ED%86%A0%ED%83%80%EC%9E%85%EA%B3%BC-%ED%81%B4%EB%9E%98%EC%8A%A4-class

<네이버 기술 블로그 디투>

https://d2.naver.com/home

https://d2.naver.com/helloworld https://d2.naver.com/helloworld/0853669

https://d2.naver.com/news https://d2.naver.com/news/8284667

https://d2.naver.com/program

https://d2.naver.com/about

\

https://tech.kakao.com/

https://tech.kakao.com/blog/

https://tech.kakao.com/2022/02/04/2022-kakao-recruitment-round-2/ https://tech.kakao.com/2022/01/18/aqe-coalescing-post-shuffle-partitions/ https://tech.kakao.com/2022/01/14/2022-kakao-recruitment-round-1/

+생각해보니 404 페이지도 구상을 해야함... 🤔

zwonlala commented 2 years ago

페이지 네이션


기존 컴타임즈

전체 기사 http://www.comtimes.kr http://www.comtimes.kr/news/list

2 페이지 http://www.comtimes.kr/news/list?pageno=2&

3 페이지 http://www.comtimes.kr/news/list?pageno=3&




명세

참고하면 좋을 글 : 페이지네이션 컨트롤 UX 원칙 9가지

스크린샷 2022-02-06 오전 1 27 22

페이지 네이션 명세

네이버 기술 블로그 디투 참고

  1. 현재 선택된 페이지는 다른 색상으로? 볼드로? 보여진다. (class에 select 추가되어 다르게 스타일링됨)
  2. 페이지들은 5개가 보여진다
  3. 가능하다면, 현재 선택된 페이지는 정중앙에 위치되고 좌우로 페이지가 두개씩 배치된다
  4. 현재 보이고 있는 페이지 번호 5개 이전과 이후에 다른 페이지가 존재한다면 좌우에 화살표 버튼이 추가된다
    1. 만약 전체 페이지가 N개 라면, 현재 페이지가 4(=== 1 + 5/2 올림) 이상일때 <-가 표시되고, (N - 5/2올림) 이하일때 ->가 표시된다
      • 불가능 한 상황에서 안보이게 할 것인지 아님 비활성화 시킬 것인지는 고민 중 🤔
    2. 조금 더 직관적으로 M(=== 5/2 올림한 값) 초과되면 좌측 화살표, N-M 이하면 우측 화살표 보여짐
    3. 각 화살표를 보여줄지 말지는 상태로 관리하고, 매 렌더링 시마다 검사후 화살표 버튼 보일지 말지 조건부 렌더링함
    4. 현재 페이지와, 화살표 버튼이 보일지 말지 상태는
  5. 화살표 버튼을 클릭하면 현재 페이지에서 +- 5 페이지 씩 이동한다.
    1. 만약 + - 5 페이지씩 이동하였는데 invalid 한 값이라면(음수, 0, N 보다 큰 값) 1 또는 N값으로 적절히 변경해주어야 한다 isValidPageNumber
  6. 각 페이지를 이동하면 api로 해당 페이지를 요청하고 받아온 값을 리스트뷰로 뿌린다.
    1. 각 페이지당 10개의 기사를 요청함(default 값임)
  7. api 요청으로 받아온 기사 데이터 리스트들은 Map등을 사용하여 캐싱하고 있다가, 다시 해당 페이지에 방문하면 재 api 요청없이 캐싱된 값을 보여준다라고 생각했는데
    1. 그럼 새로운 글이 올라와도, 기존 캐싱된 값 때문에 새로운 값을 못불로옴 🤔
    2. 페이지 네이션은 캐싱하지 않는 것이 맞는듯. 매번 Api 요청한다.
    3. 확인차 네이버 디투 확인해보니 매번 새로 Api 요청하고 있음
  8. 현재 페이지 값은 래퍼 뷰? 에서 상태로 가지고 있고, 화살표 버튼을 보일지 말지는 페이지 네이션 뷰에서 상태로 가지고 있어야 할듯

스크린샷 2022-02-06 오전 1 27 01




참고

디투 > 전체 기사 (1 페이지) https://d2.naver.com/helloworld > 2 페이지 https://d2.naver.com/helloworld?page=1 > 3 페이지 https://d2.naver.com/helloworld?page=2 ~~옹 전체 페이지는 page 0 이고 생략 가능한듯~~ 실제로 뒤에 ?page=0 치니 첫번째 페이지 나옴 `->` 누르니 바로 5 증가하고, 6 페이지로 감 그리고 아래 항상 페이지 번호 5개만 보여지고, 현재 페이지를 가운데 둠 `->` 이 버튼은 5의 배수 페이지가 사라지면(다르게 말해, 최대 페이지 번호가 13 같은 숫자이면) 안보임. 아예 돔에서 사라짐! 마찬가지로 `<-` 이 버튼은 현재 페이지가 3이하 일 때(1, 2, 3 페이지면) 안보임. 한 페이지에 기사는 20개 존재
카카오 개발 블로그 ![스크린샷 2022-02-06 오전 12 50 40](https://user-images.githubusercontent.com/13375734/152648777-4921dad2-b188-45b5-936a-b6e1644340b5.jpg) 방식이 좀 복잡해 보임... 직관적이진 않아보여서 네이버 방식 사용할 예정
zwonlala commented 2 years ago

기사 목록 보기 뷰

D2

스크린샷 2022-02-04 오후 9 53 24

zwonlala commented 2 years ago

기사 상세 보기 페이지

zwonlala commented 2 years ago

https://www.one-tab.com/page/yjJLGzDvRC296tF-DbpKVQ