Debounce는 이벤트가 연속적으로 발생해도 항상 마지막 이벤트만 처리하는 것을 말하며, Memoize는 이전 연산 결과를 재사용하는 것을 말한다. Debounce와 Memoize를 활용해 불필요한 API 요청을 방지할 수 있다.
Animichan은 일본 애니메이션에 등장한 인용문(Quotes)을 제공하는 OpenAPI다. title
매개변수에 애니메이션 제목을 쿼리스트링 보내서 요청하면, 해당 애니메이션의 인용문 세트를 받아올 수 있다. 이 API를 이용해 간단한 검색 어플리케이션을 구현할 수 있다.
// Request
'<https://animechan.vercel.app/api/quotes/anime?title=naruto>'
// Output
[{ anime: "Naruto", character: "...", quote: "..." }, ...]
quotes
(인용문 세트) 상태 관리
term
(검색어) 상태 관리
const [quotes, setQuotes] = useState([]);
const [noResults, setNoResults] = useState(false);