사이드 프로젝트(7) - 소환사 정보 업데이트 코드 개선

김정훈·2024년 7월 25일
0

기존 시스템의 문제점

초기에 구축된 소환사 정보 관리 시스템에서 callSummonerInfo라는 메서드는 회원 가입과 정보 갱신 시 중복 코드를 줄이기 위해 동일하게 사용되었습니다. 이 메서드는 if-else 구문을 사용하여 회원 가입과 정보 갱신을 구분했습니다. 회원 가입 시에는 riotGameNameriotGameTag를 사용하여 가입을 진행하며, 이 과정에서 게임사의 open API를 통해 puuId (플랫폼 ID)와 summonerId (소환사 ID) 정보를 불러오는 복잡한 절차가 필요했습니다. 그러나 정보 갱신 시에도 불필요하게 같은 정보를 다시 불러오는 비효율성이 발생했습니다.

리펙토링 및 성능 개선

리펙토링 과정에서 시스템의 유지보수성과 코드 공유 효율성을 높이기 위해 각 도메인을 분리하기로 결정했습니다. 이를 통해 createupdate 과정에서 중복되는 코드는 별도의 util 폴더로 분리하여 공유하도록 조정했습니다. 특히, 정보 갱신 시에는 더 이상 puuIdsummonerId를 불러오는 과정을 거치지 않고, summonerId를 직접 파라미터로 받아 처리하도록 개선하여 불필요한 처리를 줄였습니다.

정리하자면
기존

  • creat & update : name + tag -> puuId -> summonerId -> summonerInfo

개선 :

  • create : name + tag -> puuId -> summonerId -> summonerInfo
  • update : summonerId -> summonerInfo

성능 향상 결과

이러한 리펙토링을 통해 기존에 10초가 소요되던 처리 시간이 5.5초로 감소하였습니다. 이는 전체 시스템의 효율성과 응답 속도를 크게 향상시켜 사용자 경험을 개선하는 데 크게 기여하였습니다.

15:57:15 ~ 15:57:21

profile
백엔드 개발자

0개의 댓글