개발 공부 기록하기

API 호출 횟수 줄여 성능 개선하기 본문

Troubleshooting

API 호출 횟수 줄여 성능 개선하기

태영(泰伶) 2023. 8. 25. 23:48

카페에서 사용하는 POS 애플리케이션을 개발하기 위해서,

서버에 어떤 형태로 요청을 보내고 어떤 형태로 응답을 받아올지 API를 구상했다.

 

처음 기획했던 UI에서는

에스프레소, 스무디, 허브티, 베이커리와 같은 메뉴 카테고리 버튼을 각각 누르면 그에 해당하는 데이터를 그때 그때 서버에서 받아와야 한다고 생각했다.

 

구상한 API 목록의 일부분.

 

하지만, 위와 같이 각각의 메뉴 카테고리 버튼을 누를 때마다 요청을 보낸다면,

그리고 그 요청이 많아진다면 서버에 부담이 심하게 갈 수 있다는 걸 생각하지 못했다.

거기다, 네 개의 카테고리에 대해서는 데이터 호출 API를 구상했지만,

만약에 사용자가 메뉴 카테고리를 추가한다면?!

 

이와 같이 미처 생각하지 못했던 부분을 포함해 여러가지 가능성을 고려해야겠다는 생각이 뒤늦게 들었다.

 

포스 애플리케이션의 특성에 알맞은 데이터 호출 방식이 무엇일지,

API를 추가로 만들어주지 않아도 항상 모든 카테고리에서 적용할 수 있는 방법이 무엇일지,

이로써 성능 개선을 어떻게 더 효율적으로 이루어낼 수 있을지 고민해보게 됐다.

 

모든 동작마다 API 요청을 보냄 API 호출은 최소한으로만,
화면이 처음 렌더링 될 때 모든 데이터를 불러와
Redux toolkit으로 store를 만들어 모든 메뉴와 옵션의 상태를 관리해 서버의 부담을 줄임.

 

고민한 결과는 위 표와 같이 정리했다.

 

데이터를 한 번에 불러와서 redux toolkit으로 상태관리를 하는 방식에 대한 장점이 또 하나 더 있었다.

 

(인터넷 강국인 우리나라에서는 별로 발생하지 않을 일 같지만) 인터넷 연결 상태가 좋지 않을 때, POS 애플리케이션에서 에러 없이 데이터를 이용할 수 있다는 것!

물론 네트워크 상태가 좋지 않다면 결제에는 어려움이 따르겠지만, 데이터조차 불러오지 못하는 상황은 발생하지 않을 수 있을 것이다.

 

 

아직은 서버 코드 작성을 시작하지 않은 상황에서, API로 주고 받을 데이터와 redux store에서 상태 관리로 다룰 데이터에 대한 계획이 완전하지 않다.

 

지금까지 구상한 내용은 다음과 같다.

고민하면서 간략하게만 메모식으로 적은 거라 깔끔하지는 않다..ㅎㅎ....

 

Comments