Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- MySQL
- 자동완성방지
- vscode
- 리액트코드정렬
- .env
- prettier
- AWS
- dotenv
- elasticIP
- 코드정렬
- 제일 작은 수 제거하기
- 프로그래머스
- 자연수 뒤집어 배열로 만들기
- express
- next #middleware
- 리액트
- axios
- s3확장자
- EC2
- useReducer
- 프리티어
- react
- 코딩테스트
- 부족한 금액 계산하기
- max_allowed_packet
- reacts3
- Node
- interactive_timeout
- utf8mb4
- 커밋 한번에
Archives
- Today
- Total
Sungtt
이벤트 배열 로직 수정 - 후 본문
개요
세모이의 메인아이템인 브랜드 이벤트 데이터 수집을 리팩토링한다.
로직
기존에는 클라이언트에서 GET메서드로 이벤트 페이지를 받아왔지만
변화한 로직은 먼저 클라이언트는 서버에게 이벤트페이지 URL을 담아 POST 요청을 한다.
서버에서 GET메서드로 페이지 데이터를 받아와 가공한 뒤,
DB에 저장하거나, API주소에 따라 필요한 데이터를 반환해준다.
이를 통한 이점은 클라이언트에서 CORS오류로 앓던 문제를 해결할 수 있다.
구성
필요한 데이터는 아래와 같다.
DB
event_index
event_title
event_date
event_img
event_link
event_view
SERVER
- 현재 이벤트페이지에 진행중인 이벤트 정보가 담긴 A배열 (이벤트 제목, 이미지, 행사 기간, 이벤트 링크)
- DB에 담아놓은 이벤트 정보가 담긴 B배열
- 위 두개의 배열을 비교하여 최신값은 추가하고 레거시값은 제거한 C배열
- 추가된 최신값의 갯수
- 제거된 레거시값의 갯수
최신값 유지
접속 시.....(반복)
A배열을 B배열과 비교한다.
위에서 비교한 C배열을 생성한다.
C배열을 DB에 넣는다.
C배열을 상태값에 할당하여 렌더링한다.
남은 기간
각 사이트마다 날짜를 출력하는 방법이 다르다.
그때 그때 맞춤코딩을 해줘야한다.
아래는 한 사이트를 두고 작성한 예시이다.
let event_date = '22.05.07 - 22.05.31';
let a = '20' + event_date.slice(10).replaceAll('.', '-')
console.log(a) // 2022-05-31
가공하고나면 Date()객체에 들어갈 수 있다.
가공한 날짜값과 현재 날짜값을 비교하여 남은 일수를 계산하여 출력해준다.
'프로젝트 > 개인 프로젝트 [세모이]' 카테고리의 다른 글
즐겨찾기 기능 생각해보기.. (0) | 2022.05.11 |
---|---|
s3 확장자 추가 (0) | 2022.05.07 |
DB의 유저 프로필주소를 게시판에서 출력하기 (0) | 2022.05.04 |
removeCommnet API가 계속 pending되던 이유. (0) | 2022.05.04 |
viewBoard 리렌더링 최적화해주기 (0) | 2022.05.03 |
Comments