내가 캡스톤디자인 프로젝트에서 겪은 문제 상황임

프로젝트 : 장소 목록을 등록하고 해당 장소에서 오늘 날씨 조회 기능 구현

사용자는 무조건 로그인해야 서비스를 이용할 수 있습니다.

메인 페이지 -> 날씨 보기 탭 클릭 시 날씨 페이지로 이동합니다.

해당 날씨 페이지에서는 여러개 장소 등록을 할 수 있습니다.

장소1) 대치역 - 오늘 날씨 맑음

장소2) 강남구청 - 오늘 날씨 맑음

장소3) 김포 공항 - 오늘 날씨 흐림

장소4) 부산항 - 오늘 날씨 구름 많음

이렇게 장소 등록 해두면 한번에 여러개 장소 날씨를 한 번에 볼 수 있습니다.

하지만, 현재 구조가

클라이언트 -> 서버 -> 기상청API 요청 순서로 흘러가고

기상청API에 요청하고 응답 받는데 까지 API당 3초가 걸림

list = 장소 목록 1~4번
result = []
for(장소 목록){

i번 장소로 기상청 API 요청

result.push(오늘 날씨 요청 결과)

}
으로

총 12초+@가 걸림

클라이언트 -> 서버 -> 기상청API 요청/응답 4번(3*4=12초) -> 서버 -> 클라이언트 순서

구조적 개선을 해보자 정해진 답은 없음

메인화면에서 날씨보기 눌렀는 데 로딩이 1초 이상 걸리면 사용자 이탈 가능성이 커짐

대규모 트래픽은 일단 배제하고 사용자는 얼마 없음

기상청에 api요청해서 결과받는 3초는 우리가 개선할 수 없음

기상청 API 파라미터를 더 설명하자면

DB에 사용자가 등록한 장소 저장할 때 상세 주소 -> @@동 추출해서 같이 저장해두고

@@동으로 API 요청 날림