[Server] 동기 방식으로 외부 서비스를 호출할 때, 외부 서비스 장애가 나면 어떻게 조치할 수 있을까?
들어가며백엔드 개발자라면 여러 외부 API(결제, 소셜 로그인, 지도 정보, 날씨 정보 등)를 호출하는 기능을 한 번쯤 구현해보았을 것이다. 이때 대부분의 호출은 동기(Synchronous) 방식으로 이루어 진다. 즉, 내 서비스가 외부 API 에게 요청을 보내고, 응답이 올 때 까지 기다리게 된다. 그런데 만약, 내가 호출한 외부 서비스가 갑자기 장애가 나서 응답이 1분 넘게 오지 않는다면 어떻게 될까? 내 서비스의 스레드는 그 응답을 하염없이 기다리게 된다. 이런 요청이 100개, 1000개 쌓이면, 내 서비스가 가진 모든 스레드가 대기만 하다가 결국 아무일도 처리하지 못하는 스레드 고갈(Thread Starvation) 상태에 빠질 수 있다. 외부 서비스의 장애가 내 서비스의 장애로 이어지는, 장..