-
Notifications
You must be signed in to change notification settings - Fork 1
Issue #1 외부 API 호출 시간 최소화
DongJun Kim edited this page Feb 21, 2024
·
2 revisions

- 비용 정보는 네이버 지도, odsay 같은 외부 API를 사용해서 받아오는 정보입니다.
-
외부 API를 동기적으로 호출해서 경로 비용을 받아오는데 응답 시간이 너무 많이 소요되는 것이 문제였습니다.
- 평균적으로 API 응답 시간을 받아오는데 1초의 시간이 소요됐습니다.
- 만약 여정 페이지에 10개의 여행지가 존재한다면, 9번의 API 호출이 필요하고, 동기적으로 외부 API를 호출하기에, 9초 가량의 시간이 소요됐습니다.
- 동기적으로 외부 API를 호출하는 것이 문제였기에, API 호출을 비동기적으로 호출하는 것으로 해결했습니다.


- @Async 어노테이션을 이용해서
asyncPathComponent.calculatePath
이 비동기적으로 실행되게 구현했습니다. -
asyncPathComponent.calculatePath
에서 실행한 결과는synchronized
메소드를 통해 리스트에 담기게 됩니다.
- 초기에는 N번의 외부 API 호출이 발생하면, 발생한 API 응답 시간을 모두 더해준 시간만큼 소요됐습니다.
- 비동기적으로 호출하게 변경한 이후로,가장 오래 걸린 외부 API 응답 시간을 기준으로 결과가 리턴된 것을 확인할 수 있습니다.
