728x90

Backend 7

[Nestjs] JWT 비대칭 토큰 발급하기

상황 여러 어플리케이션에서 권한 별로 편리하게 운영하기 위해, MSA 구조로 인증 서버를 분리하여 어플리케이션 별로 운영할 수 있도록 만드는 작업이 필요했다. 기존에는 인증 서버에서 토큰 발급에 필요한 SECRET KEY와 어플리케이션에서의 토큰 인증하는 SECRET KEY가 같아 보안적으로 이슈가 있을 것으로 생각되었다. 따라서 인증 서버와 어플리케이션의 키를 분리할 필요가 있다고 생각했고, 자연스럽게 비대칭 키 도입을 해보게 됐다. 추가로 JWT 토큰과 관련된 내용은 이미 많은 블로그에서 포스팅되었지만, 비대칭 키를 이용해 인증하는 방법은 많이 보지 못해 내 나름대로의 이해를 붙여서 글을 쓰게 되었다. 내가 생각하는 인증 서버의 절차는 아래와 같다. 유저가 인증 서버를 통해 로그인한다. 인증 서버는 ..

Backend/Nestjs 2023.08.01

[flask] flask-restx로 간편하게 Swagger 지원하기

1. pip install flask_restx 로 설치 2. from flask_restx import Namespace, Api, Resource 로 불러오기 3. 함수 내용을 Resource를 상속받은 객체로 변경 4. ns = Namespace('{endpoint}', description='') 로 선언 (blueprint 와 같은 기능) 4. @app -> @ns 로 변경 5. app 감싸기 app = Flask(__name__) api = Api(app) api.add_namespace(ns) app.run(host='0.0.0.0', debug=True) 6. swagger 결과 확인 기존 코드 예시 from flask import Flask app = Flask(__name__) @app..

Backend/Flask 2022.02.07

[Django] 장고 튜토리얼 공부-2

2장에서는 다음 내용에 대해 공부하였다. 1. Settings.py를 이용해 DB를 포함한 기본 환경을 설정 2. 모델을 이용해 DB 생성하는 법 3. ORM(Object Relational Mapping)을 이용하는 법 4. 관리자를 생성하는 방법 1. Settings.py 다루기 장고에서는 main이 되는 프로젝트명 디렉토리 내부에 settings.py 파일이 존재한다. Settings.py는 말그대로 설정에 대해 기술하고 있는데, 주 기능으로는 DB 설치, 서버시간대 설정, 기본 설치 앱 등이 있다. 장고에서는 기본 DB로 sqlite3, postgresql, mysql, oracle 를 지원하는데, settings.py 내 default 부분에 해당 이름대로 변경하면 된다. 다 설정한 뒤, 다음의..

Backend/Django 2021.08.20

[Django] 장고 튜토리얼 공부-1

파이썬을 이용한 웹개발을 공부하던 중, flask를 이용해 간단한 API 서버를 만들어 공부해봤는데 아무래도 자유도가 높은 만큼, 혼자 개발하는 입장에서 구현하기는 까다로운게 많아 장고를 한번 공부해보기로 했다. 설치과정은 생략하고, 장고는 어떤 구조로 웹서버를 구동시키는지 공부했다. 1. 프로젝트 시작 django-admin startproject mysite 위의 명령어를 이용하면 mysite 라는 디렉토리와 아래의 파일들이 생기는 걸 볼 수 있는데, mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py mysite/mysite 폴더가 전반적인 구조를 담당하는 main이 되는 디렉토리가 된다. 2. 개발서버 실행 pytho..

Backend/Django 2021.08.19

[Flask] Flask rest API 라이브러리 비교

TL:DR (요약) flask-restful 라이브러리로 Flask-restful, flask-restplus, flask-restx 3가지 종류가 존재한다. Flask-restful은 꾸준히 업데이트를 하고 있는 반면에, restplus는 어느 시점에 업데이트가 끊겨서 restx가 restplus를 이어받아 업데이트하고 있다. Swagger 쓸거면 restx, 상관없으면 restful 쓰자! 1. 업데이트, Star 비교 Flask-Restful Flask-restful은 6K, 2021년에도 업데이트 지원중인 것을 볼 수 있다. Flask-restplus 2.5K, 2019년 이후로 업데이트가 멈춘 것으로 보인다. Flask-restX 1.1K, 홈페이지에 업데이트 기록은 없으나 깃허브를 보면 꾸준히..

Backend/Flask 2021.05.13

[Flask] numpy array to json 변환 후 전송

TL;DR(Too Long, Didn't Read) - 3줄 요약 1. requests를 이용한 post 테스트 시, header를 잘 확인해야 한다 (이미지는 image/jpeg 인데, application/json 으로 보내면 보통 에러가 난다) 2. ndarray.tobytes()나 opencv를 이용해 로 bytes 형태로 보낼 수도 있고, 파일 통째로 보내는 것도 가능하다. 3. 굳이 application/json 형태로 보내고 싶다면 인코딩/디코딩을 잘 해야한다. ps. application/json 형태로 보낸 것보다, bytes형태로 보낸 게 속도가 더 빠르다 (당연한 얘기인가?) 서론 저의 경우는 플라스크를 이용해 이미지를 보내려고 하는데 문제가 생겨서 검색해봤습니다. 처음 시도는 ope..

Backend/Flask 2021.05.12
728x90