회사 API 속도 개선한 이야기

strider·2023년 11월 1일
0

회사에서 관리자페이지를 담당해서 혼자 개발 했는데, 협업이 아닌 혼자 개발하다보니 솔직히 빨리빨리 개발해야지라는 생각으로 개발한 적이 많았다.

관리자 페이지 API 중에서 유독 응답이 느린 API가 있었는데, 요청에서 응답까지 3.8초 걸리는 API 였다.


당연히 사이트에서도 응답속도가 늦어서 유저경험이 좋지 않았고, pending상태일 때는 로딩중이라는 글씨가 뜨도록 하였으나 결국 회사 팀장님께서 먼저 API 속도를 팀장님이 직접 줄이겠다고 하셨다.

하지만, 내가 저질러 놓은 스파게티 코드라 이 코드를 보고 놀라실수도 있겠다는 생각과....ㅎㅎ 후에 API 만들 때에도 도움이 될 듯해서 내가 하겠다고 했다

물론 많이 망설였다....!


결론적으로는 팀장님과 함께 API 함수의 속도를 0.49초 정도로 줄였다. (라우터 부분 코드에서 console.time으로 측정하였다)

어떻게 했는지 정리해보자면,

코드를 간결하게 정리하고, sql join문을 모두 없앴다.(이것까지는 혼자 했다)

그리고 join문으로 다른 테이블에서 해당하는 정보를 가져오는 부분은 자바스크립트 find나 filter함수를 사용해서 대체했다.

set 자료 구조를 사용하면 배열을 사용하는 것보다 시간면에서 더 우수하다는 것도 알게되었다.

원래 코드에서 left join을 한번이상 사용하고 있었기 때문에 이 부분이 사실 가장 큰 원인이었으나,
만약 쿼리문 중 어느부분이 느린지 알고 싶을 때는 Explain을 사용하면 된다고 한다.

profile
성장하고픈 개발자

0개의 댓글