분류 전체보기
Prophet 라이브러리를 사용한 Time Series(시계열) 데이터 예측
1. Prophet 라이브러리 페이스북이 개발한 일변량(하나의 변수) 시계열 예측을 위한 오픈소스 라이브러리 경향성(Trends), 계절성(seosonality), 휴일(holidays)을 반영하는 모델이다. 계절적 효과가 강하고 여러 시즌의 과거 데이터가 있는 시계열에서 가장 잘 작동한다. 정확도가 높고 빠르며 직관적인 파라미터로 모델 수정이 용이하다. 2. Prophet 설치 pip install prophet 과거에 쓰여진 글들을 보면 fbprophet이라고 나와있을텐데, 현재는 prophet으로 이름이 바뀌었다. 3. 데이터 준비 이 데이터를 이용해 아보카도 가격의 시계열 예측을 진행해 보겠다. import pandas as pd df = pd.read_csv('avocado.csv', index..
Tensorflow - 콜백을 이용해 로그와 모델 저장하기
1. ModelCheckpoint from keras.callbacks import ModelCheckpoint ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1) 에포크가 끝날 때마다 모델을 저장하는 콜백 filepath: string, 모델 파일을 저장할 경로. monitor: 기록할 항목. verbose: 상세 정보 표시 정도, 0 혹은 1. save_best_only: True인 경우 monitor 값을 기준으로 가장 좋았던 모델만 저장합니다. save_weights_only: True인 경우 모델의 가중치만 저장되고 (mo..
API서버 - Flask 쿼리스트링(Query String)을 사용한 API
1. 쿼리스트링(Query String)을 사용한 이유 메모장 앱의 API 서버 개발 중, 유저가 작성한 메모 리스트를 보여주는 GET 메소드 API 를 만들려 한다. 사용할 쿼리문은 아래와 같다. query = '''select id, title, datetime, content, createdAt, updatedAt from memo where userId = %s order by datetime desc;''' 하지만 위의 쿼리문으로 API서버를 만들게 되면, 몇 개가 있을지 모르는 메모 리스트를 한번에 모두 불러오게 된다. 한번에 그렇게 많은 정보를 처리하면 서버에 과부하가 걸리게 된다. 따라서 우리가 일반적으로 사용하는 앱들은 일정량의 리스트를 불러오고, 유저가 스크롤을 끝까지 내리면 추가로 다..
Flask - PROPAGATE_EXCEPTIONS에 대한 이해
0. PROPAGATE_EXCEPTIONS Flask의 Builtin Configuration Values 중 하나 문서의 설명에 따르면 '명시적으로 예외를 전파하는 것에 대한 활성화/비활성화' 라고 하는데 나는 이 설명을 제대로 이해를 못했다. 포스트맨으로 테스트를 해보다가 의미를 깨닫게 되었다. 1. PROPAGATE_EXCEPTIONS = False 인 경우 JWT 에러 예외처리를 일괄적으로 500 Internal Server Error로 한다. 2. PROPAGATE_EXCEPTIONS = True 인 경우 Flask에서 예외처리한 JWT 에러메시지와 HTTP 상태코드를 명시해서 리턴해준다.
Flask에서 JWT 사용하기 (flask-jwt-extended)
1. JWT(Json Web Token) 이해하기 잘 정리된 블로그를 참고하자 JWT에 대해 JWT(JSON Web Tokens)이란? 두 개체에서 JSON 객체를 사용하여 가볍고 정보를 안전성 있게 전달하는 방식 https://tools.ietf.org/html/rfc7519 JWT의 구성요소는? header.payload.signature header 알고리즘과 token 타입으로 nesoy.github.io [WEB] 📚 JWT 토큰 인증 이란? - 💯 이해하기 쉽게 정리 인증 방식 종류 (Cookie & Session & Token) 보통 서버가 클라이언트 인증을 확인하는 방식은 대표적으로 쿠키, 세션, 토큰 3가지 방식이 있다. JWT를 배우기 앞서 우선 쿠키와 세션의 통신 방식을 복습해 inp..
API서버 - Flask JWT를 사용한 로그아웃 API 만들기
1. 로그아웃 API from flask_restful import Resource from flask_jwt_extended import jwt_required, get_jwt # 로그아웃된 토큰을 저장할 set을 만든다. jwt_blocklist = set() class UserLogoutResource(Resource): @jwt_required() def post(self): # print(get_jwt()) jti = get_jwt()['jti'] # print(jti) jwt_blocklist.add(jti) return {'result' : 'success'}, 200 중복을 방지하기 위해 blocklist를 set으로 만들고 메소드를 실행하면 현재의 access_token을 blocklis..
API서버 - Flask JWT를 사용해 로그인 한 유저만 처리하는 API 만들기
전 포스팅에서 회원가입과 로그인 API를 만들었으니, 저번에 만들었던 API를 로그인 했을 때만 사용할 수 있게 바꿔 보겠다. 바꿀 API: https://donghyeok90.tistory.com/177 API서버 - Python MySQL Connector를 이용해 insert하기(POST 메소드) mysql_connection.py 파일 # MySQL에 접속하는 함수 import mysql.connector from config import Config def get_connection(): connection = mysql.connector.connect( host= Config.HOST, database= Config.DATABASE, user= Config.DB_USER, password= C..
API서버 - Flask JWT를 사용한 로그인 API 만들기
0. user 테이블 구조 1. MySQL에 접속하는 함수 # mysql_connection.py 파일 import mysql.connector from config import Config def get_connection(): connection = mysql.connector.connect( host= Config.HOST, database= Config.DATABASE, user= Config.DB_USER, password= Config.DB_PASSWORD ) return connection 2. 비밀번호가 맞는지 체크하는 함수 회원가입 할 때 비밀번호를 단방향 암호화 했기 때문에 복호화 할 수 없으므로, 확인하는 함수도 단방향 암호화해서 같은지 확인한다. # utils.py 파일 from p..