public List<DistanceInfoResponse> searchDistrictInfo(Position position) {
District[] districts = District.values();
Map<String, NaviResponse> naviResponses = new HashMap<>();
CountDownLatch countDownLatch = new CountDownLatch(districts.length);
for (District district : districts) {
NaviRequest naviRequest = NaviRequest.of(position.getX(), position.getY(), district.getLong(), district.getLat());
Mono<NaviResponse> naviResponseMono = sendRequest(naviRequest);
naviResponseMono.subscribe(naviResponse -> {
naviResponses.put(district.name(), naviResponse);
countDownLatch.countDown();
});
}
try {
countDownLatch.await();
} catch(Exception e) {
throw e;
}
}