20일차)[React/JS] 검색 프로세스(search)

김재범·2022년 8월 3일
0

코드캠프

목록 보기
24/46
post-thumbnail

✍검색 프로세스

테이블 풀스캔

Browser에서 검색을 요청하면 Back-end에서 DB 내부의 수 많은 Data 들 속에서 요청받은 keyword를 가지고 full-scan 한다.

➡ 너무 느림

토크나이징(Tokenizing)

문장을 단어 단위로 쪼개는 것 (단어 = 토큰)
역 인덱스 방식 (토큰이 먼저나오고 뒤쪽에 해당하는 페이지)
이 방식을 통해 키워드를 찾음

이러한 토크나이징 방식을 자동으로 도와주는 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 분리하여야 함.

profile
지식을 쌓고 있습니다.

0개의 댓글