Jayden1116
Jayden`s LifeTrip πŸ”†
Jayden1116
전체 방문자
였늘
μ–΄μ œ
  • Jayden`s (481)
    • 🐯 Hello, Jayden (144)
      • 일기 (1)
      • μ‹ λ¬Έ (121)
      • μŒμ•… (6)
      • 경제 (16)
    • πŸ’› JavaScript (88)
      • 이λͺ¨μ €λͺ¨ (4)
      • λ°±μ€€ (44)
      • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (40)
      • 버그 (0)
    • 🎭 HTML CSS (6)
      • ννŠΈλ―€λ₯΄ (2)
      • 크슀슀 (4)
    • πŸ’» CS (13)
      • 자료ꡬ쑰 및 μ•Œκ³ λ¦¬μ¦˜ (1)
      • λ„€νŠΈμ›Œν¬ (9)
      • 운영체제 (1)
      • 데이터 베이슀 (0)
      • λ””μžμΈ νŒ¨ν„΄ (1)
    • 🐍 Python (71)
      • λ°±μ€€ (67)
      • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ (4)
    • πŸ’Ώ Data (156)
      • 이λͺ¨μ €λͺ¨ (65)
      • λΆ€νŠΈμΊ ν”„ (89)
      • 그둜슀 ν•΄ν‚Ή (2)

λΈ”λ‘œκ·Έ 메뉴

  • πŸ”΄ λΈ”λ‘œκ·Έ(ν™ˆ)
  • 🐱 Github
  • κΈ€μ“°κΈ°
  • νŽΈμ§‘
hELLO Β· Designed By JSW.
Jayden1116

Jayden`s LifeTrip πŸ”†

πŸ’Ώ Data/λΆ€νŠΈμΊ ν”„

[TIL]60-1. μ‹œκ°„, μŠ€μΌ€μ₯΄λ§

2022. 2. 9. 19:52

ν‚€μ›Œλ“œ

  • UTC, KST
  • ISO 8601
  • APScheduler

μ‹œκ°„

[μ‹œκ°„] UTC

  • 세계 ν˜‘μ • μ‹œκ°μœΌλ‘œ μ˜κ΅­μ„ κΈ°μ€€μœΌλ‘œ ν•©λ‹ˆλ‹€.
  • 영ꡭ κ·Έλ¦¬λ‹ˆμΉ˜ μ²œλ¬ΈλŒ€λ₯Ό κΈ°μ€€μœΌλ‘œ ν•œ GMT와 λ™μΌν•˜κ²Œ μ‚¬μš©λ©λ‹ˆλ‹€.

[μ‹œκ°„] ISO 8601

  • μ‹œκ°μ„ μ–΄λ–»κ²Œ ν‘œν˜„ν•  것인지 에 λŒ€ν•œ 기쀀을 λ§Œλ“€κΈ° μœ„ν•œ ꡭ제 ν‘œμ€€
  • λ…„, μ›”, 일 뒀에 Timezone을 두고 μ‹œ, λΆ„, 초 ν‘œκΈ°.
  • μœ„μ˜ μˆœμ„œλ§Œ μ§€ν‚€λ©΄ 되고, 더 λ””ν…ŒμΌν•œ ν˜•μ‹μ€ ν•˜λ‚˜λ‘œ μ§€μ •λ˜μ–΄μžˆμ§€λŠ” μ•ŠμŒ
  • 보톡은 μ•„λž˜μ™€ 같은 μ–‘μ‹μœΌλ‘œ ν‘œν˜„
  • μ‚¬λžŒμ΄ 읽기 쒋은 ν‘œν˜„

[μ‹œκ°„] Unix Time(λ˜λŠ” Epoch Time)

  • 1970λ…„ 01μ›” 01일 00:00:00Z 을 κΈ°μ€€μœΌλ‘œ κ·Έ μ‹œμ°¨λ₯Ό ν‘œν˜„ν•œ 것
  • 즉, κΈ°μ€€ μ‹œκ°μ„ κΈ°μ€€μœΌλ‘œ 초 수λ₯Ό μ…‰λ‹ˆλ‹€. (기쀀보닀 κ³Όκ±°λ©΄ 음수둜 ν‘œμ‹œ)
  • μ‚¬λžŒμ΄ μ§κ΄€μ μœΌλ‘œ μ½κΈ°λŠ” μ–΄λ ΅μ§€λ§Œ, 기쀀을 작고 μ‹œμ°¨(초λ₯Ό κΈ°μ€€)λ₯Ό ν‘œν˜„ν•œ 것이라 μ»΄ν“¨ν„°μ˜ μ—°μ‚°, 즉 컴퓨터가 읽기엔 더 쒋은 ν‘œκΈ°μž…λ‹ˆλ‹€.
  • μ ˆλŒ€μ μΈ μ‹œκ°„μ„ ν‘œν˜„ν•˜κΈ°λ³΄λ‹¨ 주둜 νŠΉμ • μ‹œκ°„λŒ€μ˜ 차이λ₯Ό ν‘œν˜„ν•˜κ³  싢을 λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€.

μ‹œκ°„ ν‘œκΈ° μ˜ˆμ‹œ

$ date # λ‚΄ 둜컬 pc 즉, KST κΈ°μ€€μœΌλ‘œ μ‹œκ°μ„ ν‘œν˜„
$ date -u # UTC κΈ°μ€€μœΌλ‘œ μ‹œκ°μ„ ν‘œν˜„
$ date -u +"%Y-%m-%dT%H:%M:%SZ" # ISO 8601 기쀀에 맞게 ν‘œν˜„ ex) 2022-02-09T23:30:49Z
$ date +%s # Unix[Epoch] Time 으둜 ν‘œν˜„ ex) 1644402264

μŠ€μΌ€μ₯΄λ§(Scheduling)

  • νŠΉμ • μ‹œκ°, νŠΉμ • μ‹œκ°„λ§ˆλ‹€ λ“±μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ΄ μ‹€ν–‰λ˜κ²Œλ” ν•΄μ£ΌλŠ” μ—­ν• 
  • 예λ₯Ό λ“€μ–΄, 크둀링/μŠ€ν¬λ ˆμ΄ν•‘ ν˜Ήμ€ APIλ₯Ό 톡해 데이터λ₯Ό μˆ˜μ§‘ν•˜λŠ” μ½”λ“œκ°€ μžˆμ„ λ•Œ, ν•œλ²ˆμ— λͺ¨λ“  데이터λ₯Ό κ°€μ Έμ˜€κΈ°λ³΄λ‹€ νŠΉμ • μ‹œκ° ν˜Ήμ€ μ‹œκ°„μ„ μ§€μ •ν•˜μ—¬ κ·Έ λ•Œλ§ˆλ‹€ μ½”λ“œκ°€ λ™μž‘ν•˜μ—¬ 데이터λ₯Ό μˆ˜μ§‘ν•˜κ²Œλ” ν•˜κ³ μ‹Άμ„ λ•Œ μ‚¬μš©
    1. μ„œλ²„μ˜ λΆ€ν•˜λ₯Ό 쀄이기 μœ„ν•΄ μ„œλΉ„μŠ€μ˜ μ‚¬μš©λŸ‰μ΄ 적은 μ‹œκ°„μ— 데이터λ₯Ό μˆ˜μ§‘ν•  λ•Œ
    2. μ›ν•˜λŠ” μ‹œκ° ex) 맀일 00μ‹œμ— 데이터λ₯Ό μˆ˜μ§‘ν•˜κ³  싢을 λ•Œ

μŠ€μΌ€μ₯΄λŸ¬μ˜ 방식은 크게 2κ°€μ§€

  1. OS(운영체제)λ₯Ό 기반으둜 μŠ€μΌ€μ₯΄λ§μ„ ν•˜λŠ” 방식 ex) Cron, Windows μž‘μ—… μŠ€μΌ€μ₯΄λŸ¬
  2. μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ λ‹¨κ³„μ—μ„œ μŠ€μΌ€μ₯΄λ§μ„ μ‘°μ •ν•˜λŠ” 방식 ex) Python의 APScheduler , Airflow

[Scheduling] APScheduler

APScheduler μ„€μΉ˜

$ pip install apscheduler

APScheduler μŠ€μΌ€μ₯΄λŸ¬ μ’…λ₯˜

  1. μŠ€μΌ€μ₯΄λŸ¬κ°€ ν”„λ‘œκ·Έλž¨μ˜ μ£Όλͺ©μ μ΄ λ˜λŠ” 경우
    • BlockingScheduler
  2. λ‹€λ₯Έ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜κ³Ό μ—°λ™ν•΄μ„œ μ‚¬μš©ν•˜λŠ” 경우(λ‹€λ₯Έ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 싀행이 μ£Όλͺ©μ , μŠ€μΌ€μ₯΄λŸ¬λŠ” λΆ€κ°€κΈ°λŠ₯으둜만 μž‘λ™)
    • BackgroundScheduler
    • AsyncIOScheduler
    • GeventScheduler
    • TornadoScheduler
    • TwistedScheduler
    • QtScheduler
from apscheduler.schedulers.blocking import BlockingScheduler

# μŠ€μΌ€μ€„λŸ¬ μ„ μ–Έ

from apscheduler.schedulers.blocking import BlockingScheduler

scheduler = BlockingScheduler({'apscheduler.timezone':'UTC'}) # UTCλ₯Ό 기반으둜 ν•˜κ²Œ timezone 에 μ„ μ–Έ

# μŠ€μΌ€μ€„λŸ¬μ— μ‚¬μš©λ  job μ„ μ–Έν•˜κΈ°

def hello():
    print("μ•ˆλ…•ν•˜μ„Έμš”, μ—¬λŸ¬λΆ„ μ €λŠ” 5μ΄ˆλ§ˆλ‹€ μ‹€ν–‰λ©λ‹ˆλ‹€.")

scheduler.add_job(func=hello,trigger='interval',seconds=5) # νŠΈλ¦¬κ±°μ—λŠ” `date`, `interval`, `cron` 이 있음

# μŠ€μΌ€μ€„λŸ¬ μ‹œμž‘ν•˜κΈ°

scheduler.start()

트리거

  • date : νŠΉμ • μ‹œκ°μ— ν•œλ²ˆ μ‹€ν–‰
  • interval : νŠΉμ • 간견을 κΈ°μ€€μœΌλ‘œ 반볡 μ‹€ν–‰
  • cron : unix 기반 cron 문법을 μ΄μš©ν•˜μ—¬ μŠ€μΌ€μ€„λ§ ex) 0 0 12 * * => λ§€ 12μ‹œλ§ˆλ‹€

APScheduler κ³΅μ‹λ¬Έμ„œ

'πŸ’Ώ Data > λΆ€νŠΈμΊ ν”„' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[TIL]61. Section3_Sprint3_Chall  (0) 2022.02.10
[TIL]60-2. λΆ€ν˜Έν™”/λ³΅ν˜Έν™”  (0) 2022.02.09
[TIL]59.배포(Heroku)와 λŒ€μ‹œλ³΄λ“œ(Metabase)  (0) 2022.02.09
[TIL]58.Flask  (0) 2022.02.08
[TIL]57.Docker  (0) 2022.02.05
    'πŸ’Ώ Data/λΆ€νŠΈμΊ ν”„' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [TIL]61. Section3_Sprint3_Chall
    • [TIL]60-2. λΆ€ν˜Έν™”/λ³΅ν˜Έν™”
    • [TIL]59.배포(Heroku)와 λŒ€μ‹œλ³΄λ“œ(Metabase)
    • [TIL]58.Flask
    Jayden1116
    Jayden1116
    μ•„λ§ˆλ„ ν•œλ²ˆ 뿐인 인생을 μ—¬ν–‰ 쀑인 Jayden의 μΌμ§€πŸ„πŸŒŠ

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”