콘텐츠로 건너뛰기

파이썬 개발에서 wait 명령어 사용하기

CodeMDD.io

Python sleep(): 코드에 시간 지연 추가하기

Python sleep() 함수 소개

Python은 프로그램을 일시적으로 정지시키는 기능을 내장하고 있습니다. time 모듈에는 호출한 스레드의 실행을 지정한 시간만큼 중지시킬 수 있는 sleep() 함수가 있습니다.

time.sleep()를 사용하는 예시를 살펴보겠습니다:

import time
time.sleep(3) # 3초 동안 정지

위의 코드를 콘솔에서 실행하면, 입력 대기시간이 있는 지연이 발생합니다.

참고: Python 3.5부터, time.sleep()의 동작 방식이 약간 변경되었습니다. 새로운 Python sleep() 시스템 커널은 지정한 시간보다 길게 실행될 수 있으며, 시그널에 의해 sleep이 중단되더라도 해당 시그널은 예외를 발생시키지 않습니다. 그러나 시그널 자체가 예외를 발생시키는 경우에는 이에 해당하지 않습니다.

time.sleep()에 의한 대기 시간을 측정해보려면 Python의 timeit 모듈을 사용할 수 있습니다:

Terminal window
$ python3 -m timeit -n 3 "import time; time.sleep(3)"
3 loops, best of 5: 3 sec per loop

위의 코드를 터미널에서 실행하면, -n 옵션을 사용하여 timeit이 명령문을 실행하는 횟수를 지정합니다. 여기서는 명령문이 3번 실행되었고, 가장 좋은 실행 시간은 예상대로 3초였습니다.

timeit 모듈의 기본 실행 횟수는 100만번입니다. 위의 코드를 기본 -n 값으로 실행한다면, 하나의 반복당 3초가 소요되므로 터미널이 약 34일 동안 멈추게 됩니다. timeit 모듈은 명령줄 옵션이 다른 몇 가지 옵션을 가지고 있으며, 이에 대한 자세한 내용은 공식 문서를 참조하십시오.

이제 좀 더 현실적인 상황을 만들어보겠습니다. 시스템 관리자는 자신의 웹사이트가 다운될 때 알고 싶어합니다. 해당 웹사이트의 상태 코드를 정기적으로 확인할 수 있도록 코드를 작성하고 싶습니다. 이 때 sleep() 함수를 사용하여 일정한 시간 간격으로 상태를 확인할 수 있습니다.

time.sleep()를 사용하여 Python sleep() 호출 추가

import requests
import time
def check_website(url):
while True:
response = requests.get(url)
if response.status_code == 200:
print(f"{url} is up.")
else:
print(f"{url} is down.")
time.sleep(60) # 1분 간격으로 상태 확인

위의 코드를 실행하면, 주어진 URL이 온라인 상태인지 확인하고, 그렇지 않은 경우 결과를 출력합니다. 그리고 1분 간격으로 다음 확인을 수행합니다.

  • requests 모듈을 사용하기 위해 import합니다.
  • time 모듈을 import하여 sleep() 함수를 사용합니다.
  • check_website() 함수를 정의하여 주어진 URL의 상태 확인을 반복적으로 수행합니다.
  • 무한 루프에서 requests.get(url)로 웹사이트에 요청을 보내고, 응답 상태 코드를 가져옵니다.
  • 만약 응답 상태 코드가 200이라면, 웹사이트가 온라인 상태임을 출력합니다.
  • 그렇지 않은 경우, 웹사이트가 다운되었음을 출력합니다.
  • 상태 확인 후, 1분 동안 대기합니다.

위의 코드를 실행하면 지정한 웹사이트의 상태를 확인할 수 있습니다. time.sleep() 함수를 사용하면 일정한 간격으로 상태를 확인할 수 있으므로, 웹사이트가 다운되었을 때 신속하게 대응할 수 있습니다.

이외에도 여러 분야에서 Python sleep() 함수를 활용할 수 있습니다. 이 폭넓은 활용성을 통해 더욱 효율적인 프로그램을 개발할 수 있습니다.

결론

위의 내용을 요약하면 다음과 같습니다:

  • Python sleep() 함수는 time 모듈에 내장되어 있습니다.
  • time.sleep() 함수를 사용하여 프로그램 실행을 일시 중지할 수 있습니다.
  • time.sleep() 함수를 통해 프로그램이 특정 시간만큼 대기할 수 있습니다.
  • 여러 분야에서 Python sleep() 함수를 활용하여 프로그램을 효율적으로 개발할 수 있습니다.

지금까지 Python의 sleep() 함수에 대해 알아보았습니다. 이 함수는 여러분의 프로그램이 필요한 상황에 따라 적절한 대기 시간을 가질 수 있도록 도와줍니다. 여러분은 이 함수를 활용하여 웹사이트 상태 확인, API 요청 간의 지연, 데이터베이스 쿼리 간 지연 등 다양한 예시에 사용할 수 있습니다.

Python 개발자로서 sleep() 함수를 사용하는 방법을 익혀두면, 프로그램의 효율성을 높일 수 있습니다.