요청의 성능 높이기

2024년 9월 26일 목요일

Today I Learned

날짜

2024년 9월 26일 목요일

내용

불필요한 요청 없애기

인스타그램 피드 QA를 진행중이다. 위젯 관련된 세팅 요청이 시간이 꽤나 걸린다. 구체적으로는, 인스타그램에서 가져온 게시글과 상품의 연결을 끊는 부분에서 오래걸린다(그외 다른 것들도 꽤 걸린다). 원인은 앱 메타필드에 있다. 기존 알파플러스에서는 스토어에 접속한 클라이언트가 위젯 렌더링을 서버에 요청하는 방식을 사용했다. 이젠 Shopify의 앱 메타필드를 이용해서, 데이터 까지 모두 렌더링된 HTML, CSS, JAVASCRIPT 파일을 집어넣어놨다. 따라서, 위젯과 관련된 모든 값이 앱 메타필드에 업로드되야 하는데 이게 시간을 꽤나 잡아먹는다. 그래서 유저가 상품 연결을 해제하면 응답하여 반영되는 것까지 시간이 2.5초 정도 소요된다..

이 시간을 줄이기 위해, 앱 메타필드 업데이트 로직을 분해했다. 스타일과 스크립트 파일은 수정이 없을 것이 확실하기 때문에, 템플릿만 렌더링하여 업로드하면 요청 시간이 줄어들지 않을까 기대했다. 쇼피파이에 보내는 요청을 3개에서 1개로 줄인 것. 개선 전후 쇼피파이 앱 메타필드 업로드 요청의 처리 시간은 다음과 같이 변했다.

테스트회차 요청 시간 개선 전(초) 개선 후(초)
1 1.758 0.729  
2 1.451 0.718  
3 1.636 0.764  
4 1.457 0.765  
5 1.845 0.896  
평균 1.6294초 0.7744초  

약 0.9초를 줄였다!

회고

이번 스프린트는 완성도가 만족스러울 지도..?