폴리곤 그리기 속도 문의 입니다

리액트를 사용하고 있고 폴리곤을 4천여개 그려주고 있는데, 느린것이 당연하지만 조금 더 빠르게 그릴 수 있는 좋은 방법이 있는지 여쭈어봅니다.
현재는 백엔드에서 coordinate 배열을 받아와서 이런식으로 세팅해주고 있습니다.

    let tempPolygons = []

    data.map((item) => {
      const shpaePoints = item.shape.coordinates

      const polygonPath = shpaePoints.map((part) => {
        return part.map((point) => {
          return new kakao.maps.LatLng(point[0], point[1])
        })
      })

      // 지도에 표시할 다각형을 생성합니다
      const buidlingPolygon = new kakao.maps.Polygon({
        path: polygonPath, // 그려질 다각형의 좌표 배열입니다
        strokeWeight: 1, // 선의 두께입니다
        strokeColor: theme.colors.primary[500], // 선의 색깔입니다
        strokeOpacity: 0.6, // 선의 불투명도 입니다 1에서 0 사이의 값이며 0에 가까울수록 투명합니다
        strokeStyle: 'solid', // 선의 스타일입니다
        fillColor: theme.colors.primary[300], // 채우기 색깔입니다
        fillOpacity: 0.7, // 채우기 불투명도 입니다
        zIndex: 2,
      })

      // 하나씩 생성된 건물 폴리곤을 배열에 넣기
      tempPolygons.push(buidlingPolygon)
    })

   setPolygons(tempPolygons) //useEffect로 polygons 변화를 감지하여 polygons.setMap(map) 처리

4000개 그리면 브라우저 렌더링 속도는 느려질 수밖에 없습니다.
폴리곤을 모두 노출하는 방법이 아닌 다른 방식을 고려해서 노출 개수를 줄여야 할 것 같습니다.

예를 들면, 화면 영역에 해당하는 폴리곤만 표시하고 line simplify로 특정점으로 폴리곤을 그리는 방법,
우선순위가 높은 폴리곤 일부를 표시하고 나머지 폴리곤 정보는 항목으로 표시해서 선택하면 지도가 해당 영역으로 이동되고 폴리곤을 표시하는 방법 등
여러 방법을 고려해서 4000개의 폴리곤을 한 번에 그리지 않고 노출 제약을 두고 일부만 그리는 방법을 고려해 주세요.