파이썬으로 한국시간 출력하는 방법(time모듈 사용법)

파이썬으로 개발하다 보면 시간 관련 작업이 필요할 때가 있습니다. 프로그램 실행 시간을 측정하거나, 특정 시간만큼 대기하거나, 현재 시간을 기록해야 하는 경우가 빈번하게 발생하죠. 이럴 때 필요한 것이 바로 time 모듈입니다. time 모듈은 파이썬의 표준 라이브러리로 제공되는 내장 모듈입니다. 별도의 pip 설치 없이 바로 import해서 사용할 수 있습니다. 성능 측정,웹 스크래핑에서 서부 과부하를 방지하기 위한 딜레이,로그파일에 타임스탬프 기록 등 유용하게 사용 가능 합니다

1. 프로그램 실행 일시 정지하기

개발 중 가장 자주 사용하는 기능이 바로 sleep 함수입니다. 이 함수는 프로그램의 실행을 지정된 시간만큼 멈추는 역할을 합니다. 웹 크롤링 시 서버에 과도한 요청을 보내지 않기 위해 요청 사이에 간격을 두거나, API 호출 제한을 준수하기 위해 대기 시간을 설정할 때 필수적입니다.

import time
print("시작")
time.sleep(3)  # 3초 멈춤
print("3초 후 출력")

위 코드는 시작을 출력한 후 정확히 3초간 프로그램을 멈춘 뒤 3초 후 출력을 화면에 표시합니다. sleep 함수는 정수뿐만 아니라 소수점 값도 받을 수 있어 time.sleep(0.5)처럼 0.5초 같은 짧은 시간도 설정 가능합니다. 이는 게임 개발에서 프레임 레이트를 조절하거나, 센서 데이터를 일정 간격으로 읽어야 할 때 유용하게 사용됩니다.

2. Unix 타임스탬프 가져오기

time.time() 함수는 현재 시간을 Unix 타임스탬프 형식으로 반환합니다. Unix 타임스탬프란 1970년 1월 1일 00시 00분 00초(UTC)를 기준으로 경과한 시간을 초 단위로 표현한 값입니다. 이 방식은 시간을 단순한 숫자로 표현하기 때문에 시간 계산이나 비교, 저장이 매우 간편합니다.

import time
timestamp = time.time()
print("현재 Unix timestamp:", timestamp)
# 1970년 1월 1일 기준부터 지금까지 초단위로 시간표현

이 코드를 실행하면 1728000000.123456과 같은 형태의 부동 소수점 숫자가 출력됩니다. 정수 부분은 초를 나타내고, 소수점 이하는 마이크로초 단위의 정밀도를 제공합니다. 데이터베이스에 시간 정보를 저장하거나, 파일명에 고유한 시간 값을 포함시키거나, 이벤트 발생 순서를 기록할 때 타임스탬프를 많이 활용합니다.

3. 코드 실행 시간 측정하기

프로그램 성능을 최적화하려면 먼저 어느 부분에서 시간이 많이 소요되는지 파악해야 합니다. time 모듈을 사용하면 특정 코드 블록의 실행 시간을 간단하게 측정할 수 있습니다. 알고리즘 효율성을 비교하거나, 데이터베이스 쿼리 성능을 체크하거나, API 응답 속도를 모니터링할 때 필수적인 기법입니다.

import time
start = time.time()
# 예시: 2초 걸리는 작업
time.sleep(2)
end = time.time()
print("실행 시간:", end - start, "초")
# 이름통해 코드의 실행시간을 측정할수 있음

작업 시작 전에 time.time()으로 시작 시간을 기록하고, 작업 완료 후 다시 time.time()으로 종료 시간을 기록한 뒤 그 차이를 계산하면 정확한 실행 시간을 얻을 수 있습니다. 타임스탬프를 통해 시간을 초단위로 측정 할 수 있습니다

4. 로컬 시간 포맷팅하기

프로그램에서 현재 시간을 사람이 읽기 쉬운 형태로 표시해야 할 때가 있습니다. 로그 파일에 시간을 기록하거나, 화면에 현재 시각을 보여주거나, 파일명에 날짜를 포함시킬 때 필요한 기능입니다. time 모듈은 localtime과 strftime 함수를 통해 이를 쉽게 구현할 수 있게 해줍니다.

import time
t = time.localtime()
print(time.strftime("%Y-%m-%d %H:%M:%S", t))
# 파이썬이 os에서 작동하는 로컬 시간으로 표시함

localtime 함수는 현재 시스템의 로컬 시간을 구조체 형태로 반환하고, strftime 함수는 이를 원하는 형식의 문자열로 변환합니다. %Y는 4자리 연도, %m은 월, %d는 일, %H는 24시간 형식의 시, %M은 분, %S는 초를 의미합니다. 이 포맷 코드들을 조합하면 다양한 형식으로 시간을 표현할 수 있습니다.

5. time 모듈의 주요 활용 사례

실무에서 time 모듈은 생각보다 훨씬 광범위하게 사용됩니다. 웹 크롤러를 만들 때 requests 라이브러리와 함께 사용하여 각 페이지 요청 사이에 적절한 간격을 두어 서버에 부담을 주지 않습니다. 자동화 스크립트에서는 특정 시간에 작업을 실행하거나, 일정 주기로 반복 작업을 수행할 때 sleep 함수가 핵심 역할을 합니다.

데이터 분석 프로젝트에서는 각 처리 단계의 소요 시간을 측정하여 병목 지점을 찾아내고 최적화 방향을 결정합니다. 백엔드 개발에서는 API 엔드포인트의 응답 시간을 모니터링하여 성능 이슈를 조기에 발견합니다. 게임 개발에서는 프레임 간 시간 간격을 제어하여 일정한 게임 속도를 유지합니다.

6. 다른 시간 관련 모듈과의 비교

파이썬에는 time 외에도 datetime, calendar 같은 시간 관련 모듈들이 있습니다. datetime 모듈은 날짜와 시간을 객체 지향적으로 다루며, 날짜 연산이나 시간대 처리가 필요할 때 더 적합합니다. 반면 time 모듈은 시스템 레벨의 시간 함수에 직접 접근하므로 단순하고 빠른 작업에 유리합니다.

마무리

time 모듈을 효과적으로 사용하려면 몇 가지 주의사항을 알아두면 좋습니다. sleep 함수는 정확한 타이머가 아니며 운영체제의 스케줄링에 따라 지정한 시간보다 약간 더 길게 대기할 수 있습니다. 따라서 정밀한 타이밍이 필요한 실시간 시스템에서는 다른 방법을 고려해야 합니다.

댓글 쓰기