Python_apscheduler (항해일지 3일차)

김형준·2022년 5월 11일
0

TIL&WIL

목록 보기
3/45
post-thumbnail

오늘은 chapter1 웹개발 미니프로젝트의 개발이 마무리된 날이다.

1) 개발 및 학습 현황

오전에는 Java의 예외 처리 방식과 DateTime 표현 방식에 대해 학습했다.

오후에는 웹개발 미니 프로젝트의 가장 중요한 기능이었던 실시간 정보 업데이트를 구현하고자 했다.
기존에 구현했던 웹은 특정 시점의 Top100위 음원들을 DB에 저장하여 사용했지만, 처음 기획했던 웹은 실시간으로 Top 100위의 음원들을 띄워줘야 했다.
따라서 Schedule 관리라는 키워드를 떠올렸고,
파이썬으로 구현 가능한 간단한 스케쥴러 라이브러리를 구글링했다.
처음 찾았던 schedule 라이브러리는 파이썬 스크립트 내부에서 while 무한 루프를 통해 작동되는 방식이었다.
하지만 이를 서버단의 app.py에서 작동하니 서버단의 코드는 실행되지 않고 무한루프에만 빠져있었다.
따라서!! flask의 서버단에서 이를 활용했던 사례를 구글링했다.
이를 통해 찾은 라이브러리는 apscheduler라는 라이브러리이다. apscheduler는 무한 반복문이 필요없으며, 라이브러리 내장 함수로 스케쥴러 구현이 가능했다.

from apscheduler.schedulers.background import BackgroundScheduler
import music_update

@app.route("/schedule")
def trigger():
    return music_update.music_update()

#apscheduler 선언
sched = BackgroundScheduler(daemon=True)

#apscheduler실행설정, 6시간마다 반복실행
sched.add_job(trigger, 'interval', hours=6)

#apscheduler실행
sched.start()

위의 코드로 스케쥴러 구현에 성공했지만, 어떻게 돌아가는 지에 대한 의문은 남아있었다. 따라서 오늘의 학습 키워드로 선정되었다!

스케쥴러까지 구현하고, 시간 상 Java 학습에 다시 열중했다..
오후에는 Collection 프레임워크에 대해 학습했고,
List, Set, Map, Stack, Queue, ArrayDequeue를 직접 선언하고 메서드를 작성해보며 사용방법을 익혔다.
실무에서 굉장히 많이 쓰인다고 들었기 때문에, 앞으로 하게 될 스프링 부트 프로젝트의 자바단에서 다양하게 활용해보며 각각의 특장점을 몸소 경험해볼 것이다.!

2) 이슈(트러블)

오늘의 이슈는 위에서 언급했던 스케쥴러의 구현이 전부였다.
(주특기인 스프링 부트의 학습이 시작되기 전에 Java의 기본 개념은 학습하고 싶었기에... Java 공부에 치중했다..)

3) 코멘트

오늘의 학습 키워드는
Scheduler 작동 원리 (배치 잡)
JWT Token encode/ decode 방식
Spring Security
Collection 이다.

내일 자로 chapter1이 종료된다. 팀장 역할을 맡아 부담감도 있었지만, 마무리 단계까지 오고 보니, 뿌듯했다.
이제 팀원 분들과 떨어지게 되겠지만, 같은 반이기 때문에 종종 보게될 것이다.
그럼 남은 기간도 화이팅!!!!!

profile
BackEnd Developer

0개의 댓글