backend (Flask) 개발 7

JWT 의 개요

Structure of the JWT Token (* JWT = Jason Web Token)HEADER암호화 알고리즘 파트PAYLOAD유저를 판명할 수 있는 데이터 (id, 유저명등)SIGNATURE위의 두 파트로 생성된 디지털 시그니쳐 1. 유저가 웹페이지에 username/password를 입력하면 backend API 에 보내진다.2.  API는 데이터베이스에  username/password 를 조회한다.3.  유저가 조회되면 token을 생성하고 status_code=200 과 함께 frontend에 되돌려 준다.4. frontend는 받은 token를 로컬에 저장을 하고 이후의 API 요구에 사용한다.

json

json.dumps vs json.jsonify return json.dumps({"language" : "python"}) return jsonify({"language" : "python"})자동으로 header 의 Content-Type  을 text/html; charset=utf-8 로 설정※ 수동으로 header 를 변경해 줘야 함.자동으로 header 의 Content-Type  을 application/json 로 설정 json.jsonify 와 함께 스테터스 코드로 함께 리턴 return jsonify({"language" : "python"}), 204 리턴하는 한글(비영어) 깨짐 해결 app.config["JSON_AS_ASCII"] = False frontend로부터의 json 데이..

긴 처리시간을 필요로 하는 서비스 설계 고찰

앞에서는 Rest API Request 에 대해 Response 까지 기다리는 설계에 대해 고찰해 보았다. 이는 결과가 빠른시간내에 처리되는 경우에 적합한 설계이지만 만약 긴 처리시간을 요구하는 Request 에 대해서는 다른 설계를 고찰해야 한다. 예를들면 책 1권의 Word 화일을 일정의 문자수를 분리를 하여 OpenAI 의 GPT Api 에 프롬프트와 함께 Request 한다고 하면 긴 처리가 끝날 때까지 결과를 마냥 기다릴 수는 없을 것이다. 이럴 경우에 아래와 같은 설계를 제안할 수 있다.

ai 모델 서비스 설계 고찰

개의 종을 학습시킨 모델을 생성하여 웹서비스를 하고자 한다고 하면, 아래와 같이 접속때 마다 Flask의 Rest API Request 처리 안에서 대응하고자 한다면 매번 모델을 로딩하는 결과를 초래한다. 대안으로써는 별도 추론 쓰레드를 생성하여 모델을 한번만 로딩하고 브로커(redis)를 사용하여 Rest API Request 와 추론쓰레드간의 중계역할을 해주도록 한다. 다음 칼럼에서는 위의 설계를 코드로 실현해 보도록 하자.

flask 를 쓸까? django 를 쓸까?

파이선 환경의 framework 로서는 flask 와 django 가 있다. 둘 다 개발해본 경험자로서 어떤것을 사용할까에 개인적인 소견을 말하고자 한다. django 의 장점으로서는 보안문제와 template 을 사용할 수 있다는게 장점일 것 같다. 하지만 설정방법과 사용법이 어렵고 template 은 frontend용 JavaScript framework(React, Angular, Vue) 가 있기 때문에 그다지 사용할 필요가 없는 것 같다. 반면 flask 는 간단히 개발할 수 있기때문에 앞으로 flask 개발에 대해 설명하고자 한다. flask, django 는 어플리케이션 framework 이기 때문에 멀티 접속을 지원하지 않는다. 즉 동시에 여러 접속이 존재하게 되면 먼저 온 순서에 따라 순..