결과

내용
- 원하는 키워드로 검색할 수 있다.
- 입력값이 없으면 알림창을 나타냄
코드
  const [searchValue, setSearchValue] = useState(''); 
  const [filterValue, setFilterValue] = useState(''); 
  const handleSearch = e => {
    setSearchValue(e.target.value);
  };
  
  const handleEnter = e => {
    if (e.key === 'Enter') {
      e.preventDefault();
      searchCheck();
    }
  };
  
  const searchCheck = () => {
    const filter = posts.filter(
      posts =>
        posts.title.toLowerCase().includes(searchValue) ||
        posts.writer.toLowerCase().includes(searchValue)
    );
    
    if (!searchValue) alert('검색할 내용을 입력해주세요.');
    else if (filter) setFilterValue(filter);
  };
 <tbody>
          {}
          {!filterValue
            ? posts.map(data => {
                return (
                  <tr key={data.no}>
                    <BodyTd>{data.no}</BodyTd>
                    <BodyTd
                      onClick={handleTitle}
                      style={{ textAlign: 'left', cursor: 'pointer' }}
                    >
                      {data.title}
                    </BodyTd>
                    <BodyTd>{data.writer}</BodyTd>
                    <BodyTd>{today}</BodyTd>
                  </tr>
                );
              })
            : filterValue.map(data => {
                return (
                  <tr key={data.no}>
                    <BodyTd>{data.no}</BodyTd>
                    <BodyTd
                      onClick={handleTitle}
                      style={{ textAlign: 'left', cursor: 'pointer' }}
                    >
                      {data.title}
                    </BodyTd>
                    <BodyTd>{data.writer}</BodyTd>
                    <BodyTd>{today}</BodyTd>
                  </tr>
                );
              })}
        </tbody>