본문 바로가기
NodeJS

공공API 사용 관련하여 나름대로의 최적화?

by invelog 2024. 5. 14.
반응형

공공 API를 사용하면 대부분 데이터가 분명 방대한 양일 것이다.

해당 데이터들을 Grid 등으로 출력해주고 하다보면 페이징처리나 infinity scroll 같은 처리를 하여도 특정 검색 조건으로 필터링하여 데이터를 출력하지 않고 전체 데이터를 조회하게 되는 경우 응답 받는데 시간이 꽤 걸리는 경우가 많았다.

물론 잘 처리하는 사람은 크게 문제 없을 수 있겠지만 내 능력 한도 내에서는 그랬다. 

 

몇일 고민을 하다 이 문제를 어떤 방식으로 해결해 볼까하는데 일단 특정 시간(예를 들어 매일 자정)마다 DB에 전체 조회 데이터를 넣고 업데이트 치도록 하고 API를 받아올때 내가 사용한 공공 API는 최종 수정한 날짜 값이 있었고 필터링으로 조회 값 중 오늘 날짜보다 이후인 수정날짜가 있으면 스케줄러에서 업데이트를 치도록 조건을 걸어놓았고

 

사용자는 사용할때마다 API를 호출하는게 아니라 들어와서 검색을 했을 시 초반에 전체 데이터를 DB에서 조회하여 캐싱한 후 조건 검색 할 경우에는 조회하여 캐싱된 값으로 필터링하여 보여주는 방식으로 구혔했다.

 

사용자의 사용성과 어쩔수 없이 DB에 넣고 조회하도록 하다보면 비용 문제를 생각하지 않을 수 없는데 이 둘 중에서 나는 사용자의 사용성을 우선으로 하였고 이렇게 처리하니 아주 쾌적하게 검색하고 마음껏 정보를 확인할 수 있었다. 

 

사용하려는 공공API의 성격과 특성에 따라 다르겠지만 이런 방식도 고려해보는게 좋을 것 같아 기억하기 위해 씀!

반응형