BlogAi

로그인

BlogAi · 오늘 배운 것 (TIL)

BlogAi 오늘 배운 것 (TIL) 템플릿 예시

BlogAi에서 실제 포스트에 적용되는 오늘 배운 것 (TIL) 형식 미리보기입니다.

📌 TIL - React 검색 필터링 동작 원리

1. 오늘 배운 것: 핵심 개념 요약

React에서 검색 필터링은
input → state 변경 → 컴포넌트 재실행 → filter 재계산 → UI 갱신
구조로 동작한다.

filter 함수를 직접 호출하지 않아도
state가 바뀌면 컴포넌트가 다시 실행되면서 자동으로 필터링이 적용된다.


2. 상세 내용: 코드 예시와 함께 설명

const [searchQuery, setSearchQuery] = useState(""); <input value={searchQuery} onChange={(e) => setSearchQuery(e.target.value)} />; const filteredTemplates = templates.filter((template) => { if (!searchQuery.trim()) return true; return template.title .toLowerCase() .includes(searchQuery.trim().toLowerCase()); });

사용자가 input에 값을 입력하면 onChange 이벤트가 실행되고
setSearchQuery()가 호출되면서 state가 변경된다.

state가 변경되면 컴포넌트 함수가 다시 실행되고,
그 안에 있는 filter() 로직이 다시 계산된다.

그 결과 filteredTemplates 값이 달라지고
map()을 통해 렌더링되는 UI가 자동으로 갱신된다.


3. 어려웠던 점: 겪은 문제와 해결 과정

처음에는 filter를 직접 호출하지 않았는데
왜 검색 결과가 자동으로 바뀌는지 이해가 되지 않았다.

또한 includes()가 대소문자를 구분한다는 점을 몰라
검색이 정상적으로 되지 않는 문제를 겪었다.

문제 해결 과정에서 React의 핵심은
“함수형 컴포넌트는 state가 바뀌면 다시 실행된다”는 점이라는 걸 다시 정리했다.


4. 느낀 점: 개인적인 소감

이번 내용을 통해 React는 DOM을 직접 조작하는 방식이 아니라
상태 기반으로 UI를 재계산하는 구조라는 점을 다시 체감했다.

단순한 검색 기능도 렌더링 흐름을 이해하지 못하면 헷갈릴 수 있다.
앞으로는 state → render 흐름을 먼저 떠올리며 설계해야겠다.