현재 Chat Gpt를 파인튜닝하여 음식점을 추천해주는 기능을 넣고 있는 중에, 사용자 위치에 해당하는 날씨 정보도 함께 이용해서 그에 맞는 음식점을 추천해주면 좋을 것 같아 날씨 API를 사용하였다. 로컬에서는 사용자의 위치에 맞는 날씨 정보와 그에 알맞는 음식점을 추천해주었는데 이 코드를 AWS 서버에 올리니까 위치와 다른 지역의 날씨를 자꾸 말했다.
날씨 조회를 시작합니다...
추출된 기온 정보 (T1H): 17.0
API 호출 결과: {'nx': '89', 'ny': '74', 'base_date': '20250604', 'base_time': '0437', 'temperature': 17.0, 'recommendation': '약간 쌀쌀합니다. 따뜻한 분위기의 식당을 추천합니다.'}
최종 추천 결과: 약간 쌀쌀합니다. 따뜻한 분위기의 식당을 추천합니다.
알고보니 AWS EC2, Ubuntu의 기본 세팅에서 시스템 시간이 UTC이기에 이를 KST로 바꿔주어야 했던 것이다.
이제 원인을 알게 되었으니 시간을 받을 때, KST 기준으로 받을 수 있도록 수정해준다.
import pytz
kst = pytz.timezone("Asia/Seoul")
now_kst = datetime.datetime.now(kst)
print("현재 시각 (KST):", now_kst.strftime("%Y-%m-%d %H:%M"))
그리고 API를 요청할 때 보내는 base_time도 이에 맞게 수정해준다.
def get_base_datetime(requested_dt=None):
# 시차 보정 적용
dt = datetime.datetime.now(pytz.timezone("Asia/Seoul")) - datetime.timedelta(minutes=40)
dt = dt.replace(minute=0, second=0, microsecond=0)
return dt.strftime("%Y%m%d"), dt.strftime("%H%M")
이때 기상청에서는 30분 단위로 올리기에 나는 정각 시간으로 보정하였다.
너무나도 당연히... 이제 한국 시간과 날씨를 기반으로 정보가 넘어오는 것을 확인할 수 있었다.