[python] 요청시 타임아웃 설정하기

요청을 보낼 때 서버로부터 응답을 기다리는 시간을 제한하는 타임아웃 설정은 매우 중요합니다. 이를 통해 불필요한 대기 시간을 줄이고, 응답이 없을 때 프로그램이 멈추는 상황을 방지할 수 있습니다. Python에서는 다음과 같이 요청시 타임아웃을 설정할 수 있습니다.

requests 라이브러리를 사용한 예제

import requests

try:
    response = requests.get('https://www.example.com', timeout=5)
    # 타임아웃 시간을 5초로 설정하여 요청을 보냄
    response.raise_for_status()  # 응답 상태코드를 체크하고 문제가 있을 경우 에러를 발생시킴
except requests.Timeout:
    print("타임아웃이 발생했습니다.")
except requests.RequestException as e:
    print(f"에러가 발생했습니다: {e}")

위 예제에서는 requests 라이브러리의 get 메서드를 사용하여 https://www.example.com로 GET 요청을 보냅니다. timeout 매개변수를 사용하여 응답을 기다리는 시간을 5초로 설정했습니다. 만약 응답이 5초 이내에 도착하지 않으면 requests.Timeout 예외가 발생합니다.

또한, raise_for_status() 메서드를 사용하여 응답 상태코드를 체크하고 문제가 있을 경우 에러를 발생시킬 수 있습니다. 이를 통해 서버로부터 받은 응답이 정상인지 확인할 수 있습니다.

만약 타임아웃이 발생하거나 요청에 다른 문제가 있는 경우, 각각 requests.Timeoutrequests.RequestException 예외가 발생하므로 이를 적절히 처리할 수 있습니다.

위 예제는 requests 라이브러리를 사용한 예시이지만, 다른 HTTP 라이브러리를 사용하는 경우에도 대부분 타임아웃 설정 방법이 유사합니다. 해당 라이브러리의 공식 문서를 참조하여 타임아웃 설정 방법을 확인하시기 바랍니다.

참고 자료