🌿 중급 백엔드
리퀘스트 타임아웃이 뭔가요?
쉽게 이해하기
전화를 걸었는데 상대가 30초 동안 아무 말도 안 하면 '연결이 끊겼나?'하고 전화를 끊잖아요. 타임아웃도 마찬가지예요. 서버가 너무 오래 응답 안 하면 기다리다가 지쳐서 포기하는 거예요.
핵심 정리
요청이 너무 오래 걸리면 자동으로 끊어버리는 안전장치예요.
자세히 알아보기
API를 호출하면 보통 1~2초 안에 응답이 와요. 하지만 서버가 느리거나, 네트워크가 불안정하거나, 서버에 문제가 생기면 응답이 한없이 안 올 수도 있어요. 이때 클라이언트가 무한정 기다리면 앱이 멈춘 것처럼 보이고 사용자 경험이 최악이 돼요.
그래서 타임아웃을 설정해요. 예를 들어 '30초 안에 응답 안 오면 포기한다'고 정하는 거예요. 시간이 지나면 클라이언트는 요청을 취소하고 사용자에게 '서버에 연결할 수 없습니다'라고 알려줘요. 이렇게 하면 앱이 멈춘 것처럼 보이는 상황을 방지할 수 있어요.
실무에서는 API 종류에 따라 타임아웃을 다르게 설정해요. 단순 조회는 5초, 복잡한 계산은 30초, 파일 업로드는 2분처럼요. 너무 짧으면 정상적인 요청도 실패하고, 너무 길면 사용자가 답답해하니까 적절한 균형이 필요해요.
타임아웃이 발생하면 보통 재시도(retry) 로직을 함께 사용해요. 한 번 실패했다고 바로 포기하지 않고, 1초 후 다시 시도하고, 그래도 안 되면 2초 후 또 시도하는 식이죠. 이렇게 하면 일시적인 네트워크 문제를 극복할 수 있어요. 타임아웃은 단순해 보이지만 안정적인 API 통신의 핵심이에요.