2022. 4. 15. 16:12ㆍAI/Codestates
UTC 란?
- UTC는 협정 세계시로 "영국을 기준으로 시파를 규정한 시간"
- UTC가 제정된 건 1972년이고, 당시 영국과 프랑스에서는 표준 시간을 각자의 단어로 사용하고 있었고 협정 세계시에 대한 공통된 단어를 규정해야 하는 순간 두 나라는 협의를 진행하고 그 결과로 공통의 이니셜인 U, T, C를 협정 세계시의 단어로 사용하기로 결정
- UTC±0는 영국 그리니치 천문대의 시간을 기준
- UTC±0 는 그리니치 평균 시라고 하는 GMT ( Greenwich Mean Time ) 로도 많이 표기
KST 란?
- KST는 Korea Standard Time 한국의 표준 시간을 의미함
- UTC±0를 기준으로 9 시간이 차이가 나며, 표기할 때는 UTC+09 혹은 UTC+09:00 로 사용됨
ISO 8601 란?
- 날짜와 시간과 관련된 데이터 교환을 다루는 국제 표준
- ISO 8601에 따른 날짜를 표현할 때는 핲에는 년, 월, 일을 기준으로 날짜를 표기하고 뒤이어서 시, 분, 초, Timezone 을 표기함
- 중요한 것은 하나의 형식으로 지정되어 있지 않다는 것
- 연도는 4개의 숫자로 그 외의 날짜와 시간은 두 개의 숫자로 구성함
- 확장형으로 구분자 ( -, ;, Z, T ) 가 사용될 수 있음
APScheduler
- 공식문서
Advanced Python Scheduler — APScheduler 3.9.0.post1.post1 documentation
© Copyright Alex Grönholm. Revision a5e2cadb.
apscheduler.readthedocs.io
- 스케줄링은 크게 두가지 방식으로 작동
- Cron과 Window 작업 스케줄러처럼 운영체제가 설치될 대 같이 추가되어 스케줄링을 하는 방식
- Python의 APScheduler 와 Airflow 처럼 애플리케이션 단에서 스케줄링을 조정하는 방식
▶ 설치
$ pip install apscheduler
▶ 스케줄러 선언
- 스케줄러가 프로그램의 목적이 되는 경우
- BlockingScheduler
from apscheduler.schedulers.blocking import BlockingScheduler
# UTC+0 기반으로 실행하려면 Timezone 에 매개변수를 선언 후 사용
scheduler = BlockingScheduler({'apscheduler.timezone':'UTC'})
# KST 기반으로 실행하는 방법
#scheduler = BlockingScheduler({'apscheduler.timezone':'Asia/seoul'})
- 다른 애플리케이션의 실행이 주 목적이고, 스케줄러는 부가기능으로만 실행하는 경우
- BackgroundScheduler
- AsyncIOScheduler
- GeventScheduler
- TornadoScheduler
- TwistedScheduler
- QtScheduler
▶ 스케줄러에 job 선언
def hello():
print("hello. My first Scheduler")
scheduler.add_job(func=hello, trigger='interval',seconds=5)
- Trigger 는 세 가지 옵션 중에서 선택할 수 있음
- date : 특정 시점에 한번 실행하고 싶다면 선택
- interval : 고정된 간격을 기반으로 실행하고 싶다면 선택
- cron : Unix 기반의 cron 에서 사용하는 문법을 이용하여 스케줄링하고 싶다면 선택
▶ 스케줄러 시작하기
scheduler.start()
부호화란?
▶ 인메모리 방식
- 파이썬 코드가 실행되고 있는 메모리 안에서 표현되는 방식
- 메모리 안에서 작동하기 편한 방식으로 CPU가 데이터를 효율적으로 처리하기 편함
▶ 바이트열 방식
- 데이터를 파일에 쓰거나, 네트워크에서 전송되기 위한 표현 방식
▶ 인메모리 방식 -> 바이트열 방식
- 부호화, 직렬화, 인코딩, 마샬링
▶ 바이트열 방식 -> 인메모리 방식
- 복호화, 역직렬화, 디코딩, 언마샬링
▶ 머신러닝 모델을 부호화하는 방법
import pickle
with open('model.pkl','wb') as pickle_file:
pickle.dump(model, pickle_file)
▶ 머신러닝 모델을 복호화하는 방법
import pickle
model = None
with open('model.pkl','rb') as pickle_file:
model = pickle.load(pickle_file)
X_test = [[4000]]
y_pred = model.predict(X_test)
print(f'{X_test[0][0]} sqft GrLivArea를 가지는 주택의 예상 가격은 ${int(y_pred)} 입니다.')
▶ JSON 데이터로 부호화하는 방법
data = {
"first_value": {
"name": "odee",
"album": "ZIPLOC"
}
}
import json
# json으로 부호화한 뒤, 객체에 읽을 때
json_data = json.dumps(data)
# json으로 부호화한 뒤, 파일에 쓸 때
with open('json_file.json','w') as json_file:
json.dump(data,json_file)
▶ JSON 데이터로 복호화하는 방법
import json
str_1 = None
with open('json_file1.json','r') as json_file:
str_1 = json.load(json_file)
print(str_1)
'AI > Codestates' 카테고리의 다른 글
[Day 60 ~ Day 65] Section 3 Project (0) | 2022.04.26 |
---|---|
[Day 59] Sprint Review (0) | 2022.04.15 |
[데이터 엔지니어링] 배포와 대시보드 (0) | 2022.04.15 |
[데이터 엔지니어링] Flask (0) | 2022.04.12 |
[데이터 엔지니어링] Docker (0) | 2022.04.12 |