테이블 풀스캔
Browser
에서 검색을 요청하면Back-end
에서DB
내부의 수 많은 Data 들 속에서 요청받은keyword
를 가지고full-scan
한다.➡ 너무 느림
토크나이징(Tokenizing)
문장을 단어 단위로 쪼개는 것 (단어 = 토큰)
역 인덱스 방식 (토큰이 먼저나오고 뒤쪽에 해당하는 페이지)
이 방식을 통해 키워드를 찾음✍Elastic Search
이러한 토크나이징 방식을 자동으로 도와주는 DB(디스크 기반)
✍Redis
임시저장방식으로 Disk저장보다 안정성이 떨어지지만 속도가 빠름(메모리 기반)
반복적으로 검색하는 데이터는 Redis에 저장
보통 검색할 때 프로세스
1.검색로그캐싱(임시저장된 검색데이터를 찾음)
(검색 결과가 없으면)
2. elastic search로 가서 검색
(백엔드에선 cache-aside pattern이라 부름)
📌
메모리: 컴퓨터 껐다 키면 사라짐(속도 빠름)
디스크: 컴퓨터 껐다 켜도 남아있음(속도 느림)
📌uuid
map()을 사용할 때 key값을 주어야 하는데 이 때 자동으로 고유값을 주는 라이브러리
//사용 예제
import { v4 as uuidv4 } from "uuid";
<div key = {uuidv4()} >
검색버튼 없이 검색 시, 발생하는 문제
page
변경하며refetch
될 때, state로 관리하는 검색 input키워드 값이 검색을 누르지 않아도 검색되는 문제.
➡ 키워드값을 저장하는 state 분리하여야 함.