파이썬 sleep은 time 모듈에서 제공하는 시간 지연 가능한 기능이다. 특정 시간 동안 코드의 실행을 지연시킬 수 있으며, 다양한 시스템 개발에서 효과적으로 사용할 수 있는 장점이 있다.
오늘은 파이썬의 내장 함수 중 sleep에 대해 포스팅하려고 한다. 파이썬으로 시스템을 개발하다 보면 프로세스에 따라 시간 지연이 필요한 경우가 종종 발생한다. 이런 상황에서 파이썬의 내장 함수인 time 라이브러리를 활용하면 간단하게 시간 지연을 시킬 수 있다.
파이썬의 time 라이브러리는 다양한 시간 관련 함수들을 제공하는데, 그중에서도 sleep 함수는 특히 유용하다. sleep 함수는 프로세스를 지정된 시간만큼 일시적으로 멈추게 해주는 역할을 한다. 이를 활용하면 예를 들어 API 호출 간의 간격을 조절하거나, 반복 작업을 지연시키는 등 다양한 상황에서 유용하게 사용된다.
이번 포스팅을 통해서 자세한 내용을 포스팅하며, 파이썬에서 시간 지연을 위해 sleep 함수를 적절히 활용하는 방법과 주의사항을 정리해 보았다.
time.sleep() 기능의 특징
1. time.sleep() 함수는 time 모듈에 속하는 내장 함수다. 해당 함수를 사용하려면 import time으로 time 모듈을 먼저 가져와야 한다.
2. time.sleep() 함수는 프로세스를 지정된 시간만큼 일시적으로 중지시키는 역할을 합니다. 이를 통해 특정 시간 동안 대기하거나 작업 간의 간격을 조절할 수 있다.
3. 함수의 인자로는 일시적으로 프로세스를 중지시킬 시간을 지정한다. 시간은 초 단위로 입력되며, 정수 혹은 부동 소수점 숫자를 사용할 수 있다.
4. time.sleep() 함수가 호출되면 프로세스는 지정된 시간만큼 멈추며, 해당 시간이 지난 후 프로세스는 정상적으로 실행을 계속한다.
5. 주의해야 할 점은 time.sleep() 함수를 사용할 때, 프로그램이 블로킹(blocking)될 수 있다는 것이다. 즉, sleep() 함수를 호출하는 동안 다른 작업을 수행하지 못하고 대기하게 된다. 이는 다중 스레드 프로그램에서 특히 중요한데, 긴 시간 동안 sleep() 함수를 사용하면 다른 스레드들도 해당 기간 동안 작업을 멈출 수 있다.
6. sleep() 함수는 주로 테스트, 디버깅, 시간 지연이 필요한 프로세스 등에서 활용된다. 정확한 타이밍과 시간 간격을 필요로 하는 작업에 유용하게 사용될 수 있다.
7. time.sleep() 함수를 사용할 때는 주의하여 사용해야 하며, 필요한 상황에서만 적절하게 활용해야 한다.
위의 특징들을 고려하여 time.sleep() 함수를 사용하면 파이썬 프로그램에서 시간 지연을 쉽게 구현할 수 있다.
정수를 이용한 시간 지연 예제
import time
def task1():
"""
* 정수를 이용한 시간 초 지연 시키기
:return:
"""
# time strftime을 이용하여 sleep 시작 전 현재 시간 체크
print(time.strftime('%H:%M:%S'))
# sleep 3초 지연 실행
time.sleep(3)
# time strftime을 이용하여 sleep 종료 후 현재 시간 체크
print(time.strftime('%H:%M:%S'))
if __name__ == '__main__':
task1()
위의 소스 코드는 파이썬에서 time 모듈과 time.sleep() 함수를 활용하여 시간 지연을 구현한 예시 코드다.
1. import time
먼저 time 모듈을 임포트하여 time 모듈의 함수들을 사용할 수 있도록 한다.
2. print(time.strftime('%H:%M:%S'))
time.strftime() 함수를 사용하여 현재 시간을 출력합니다. '%H:%M:%S'는 시간을 '시:분:초' 형태로 포맷팅 하라는 의미다.
이는 time.strftime() 함수를 이용하여 현재 시간을 구하는 방법 중 하나이다.
3. time.sleep(3)
time.sleep() 함수를 사용하여 프로세스를 3초 동안 지연시킨다. 이 함수를 호출하면 해당 프로세스가 지정된 시간만큼 멈추게 된다.
4. print(time.strftime('%H:%M:%S'))
time.strftime() 함수를 다시 호출하여 3초 지연이 끝난 후의 현재 시간을 출력한다.
위의 코드는 time.sleep() 함수를 사용하여 3초 동안 프로세스를 지연시키고, 그 사이에 현재 시간을 출력하는 예제다.
sleep 함수를 이용하면 프로세스의 실행을 일시적으로 멈출 수 있으므로, 시간 지연이 필요한 상황에서 유용하게 사용할 수 있다.
실행 결과
위의 예제 소스 코드를 실행하게 되면 위와 같이
시작 시간 21:42:51
3초 지연
종료 시간 21:42:54
3초 지연 후 정상 종료된 결과 화면
실수를 이용한 시간 지연 예제
import time
def task2():
"""
* 실수를 이용한 시간 초 지연 시키기
:return:
"""
# time strftime을 이용하여 sleep 시작 전 현재 시간 체크
print(time.strftime('%H:%M:%S'))
# sleep 5.8초 지연 실행
time.sleep(5.8)
# time strftime을 이용하여 sleep 종료 후 현재 시간 체크
print(time.strftime('%H:%M:%S'))
if __name__ == '__main__':
task2()
위의 소스 코드는 파이썬에서 time 모듈과 time.sleep() 함수를 사용하여 실수를 이용한 시간 지연을 구현한 예제 코드다.
1. import time
먼저 time 모듈을 임포트하여 time 모듈의 함수들을 사용할 수 있도록 한다.
2. print(time.strftime('%H:%M:%S'))
time.strftime() 함수를 사용하여 현재 시간을 출력한다. '%H:%M:%S'는 시간을 '시:분:초' 형태로 포맷팅하라는 의미다.
이는 time.strftime() 함수를 이용하여 현재 시간을 구하는 방법 중 하나다.
3. time.sleep(5.8)
time.sleep() 함수를 사용하여 프로세스를 5.8초 동안 지연시킵니다. 이때, sleep 함수의 인자로는 정수 또는 실수 값을 사용할 수 있다.
4. print(time.strftime('%H:%M:%S'))
time.strftime() 함수를 다시 호출하여 5.8초 지연이 끝난 후의 현재 시간을 출력한다.
위의 코드는 time.sleep() 함수를 사용하여 5.8초 동안 프로세스를 지연시키고, 그 사이에 현재 시간을 출력하는 예제다.
sleep 함수의 인자로 실수 값을 사용하면 소수점 단위까지 시간 지연이 가능하다. 이를 활용하여 정밀한 시간 제어가 필요한 상황에서 유용하게 사용할 수 있다.
실행 결과
위의 예제 소스 코드를 실행하게 되면 위와 같이
시작 시간 09:30:42
5.8초 지연 (약 6초)
종료 시간 09:30:48
5.8초 지연을 시킨 결과 약 6초가량 경과 후 종료가 된 결과 화면이다.
실수값을 세팅하여 밀리초 단위로도 시간 지연을 시켜줄 수 있다.
while을 이용한 시간 초 지연
def task3():
"""
* while을 이용한 시간 초 지연 시키기
:return:
"""
count = 1
while True:
# time strftime을 이용하여 sleep 시작 전 현재 시간 체크
print('시작 시간 : %s' % time.strftime('%H:%M:%S'))
print('안녕하세요. %s' % count)
count += 1
# sleep 5초 지연 실행
time.sleep(5)
if __name__ == '__main__':
task3()
위의 소스 코드는 파이썬에서 while 문과 time 모듈의 time.sleep() 함수를 함께 사용하여 시간 지연을 구현한 예제다.
1. count = 1
변수 count를 초기화하고 1로 설정한다. 이 변수는 반복되는 메시지에 사용될 카운트를 나타낸다.
2. while True
무한 루프를 시작한다. 이렇게 하면 프로그램이 무한히 반복되면서 작업을 수행한다.
3. print('시작 시간 : %s' % time.strftime('%H:%M:%S'))
time.strftime() 함수를 사용하여 현재 시간을 출력한다. '%H:%M:%S'는 시간을 '시:분:초' 형태로 포맷팅하라는 의미다.
4. print('안녕하세요. %s' % count)
반복되는 메시지를 출력한다. count 변수를 사용하여 메시지에 카운트를 추가한다.
5. count += 1
count 변수를 1씩 증가시킨다.
6. time.sleep(5)
time.sleep() 함수를 사용하여 프로세스를 5초 동안 지연시킨다. 이때, while 문이 무한 루프로 작동하므로 5초마다 메시지가 반복적으로 출력된다.
위의 코드는 while 문과 time.sleep() 함수를 활용하여 5초마다 메시지를 출력하는 예제다. 무한 루프를 사용하여 메시지를 반복적으로 출력하고, sleep 함수를 통해 지연을 설정함으로써 일정한 시간 간격으로 메시지를 출력할 수 있다. 이를 활용하여 반복적인 작업을 일정 시간 간격으로 수행하는데 유용하게 사용할 수 있다.
실행 결과
위의 소스 코드를 실행하게 되면 위의 결과와 같이 5초마다 카운트를 증가시키며 시간을 체크하게 된다.
마무리
오늘은 파이썬의 내장 함수 time.sleep()에 대해 정리해 보았다. 이 함수는 기능이 간단하지만 시스템을 개발하다 보면 다양한 상황에서 필요한 경우가 많기 때문에 정리해 두면 많은 도움이 될 것이다.
파이썬 개발을 하던 시절에는 time.sleep() 함수를 정말 자주 사용했다. 특히 작업 간의 시간 지연이나 반복적인 작업 간격을 제어할 때 유용하게 활용되었다.
시간에 따라 프로세스를 일시적으로 중지시키는 기능은 파이썬 프로그래밍에 있어서 매우 유용한 도구 중 하나다.
앞으로도 다양한 파이썬 내장 함수들을 정리하면서 유용한 정보를 정리해 봐야겠다.
'Python' 카테고리의 다른 글
파이썬 index() 함수를 사용하여 문자열의 위치 찾기 (0) | 2023.10.09 |
---|---|
파이썬 rfind() 함수의 역방향 문자열 검색하기 (1) | 2023.10.08 |
파이썬 NumPy를 활용한 효율적인 파일 입출력하기 (1) | 2023.10.07 |
파이썬 numpy를 이용한 다차원 배열의 활용 (1) | 2023.10.06 |
파이썬 Set을 활용한 데이터 분석과 필터링 (0) | 2023.10.05 |