회사에서 관리자페이지를 담당해서 혼자 개발 했는데, 협업이 아닌 혼자 개발하다보니 솔직히 빨리빨리 개발해야지라는 생각으로 개발한 적이 많았다.
관리자 페이지 API 중에서 유독 응답이 느린 API가 있었는데, 요청에서 응답까지 3.8초 걸리는 API 였다.
하지만, 내가 저질러 놓은 스파게티 코드라 이 코드를 보고 놀라실수도 있겠다는 생각과....ㅎㅎ 후에 API 만들 때에도 도움이 될 듯해서 내가 하겠다고 했다
물론 많이 망설였다....!
어떻게 했는지 정리해보자면,
코드를 간결하게 정리하고, sql join문을 모두 없앴다.(이것까지는 혼자 했다)
그리고 join문으로 다른 테이블에서 해당하는 정보를 가져오는 부분은 자바스크립트 find나 filter함수를 사용해서 대체했다.
set 자료 구조를 사용하면 배열을 사용하는 것보다 시간면에서 더 우수하다는 것도 알게되었다.
원래 코드에서 left join을 한번이상 사용하고 있었기 때문에 이 부분이 사실 가장 큰 원인이었으나,
만약 쿼리문 중 어느부분이 느린지 알고 싶을 때는 Explain을 사용하면 된다고 한다.