Tagged

python

Python 프로그래밍에 대한 글입니다.

django 서버의 개인정보를 AES-256-GCM 알고리즘으로 암호화하기
python

django 서버의 개인정보를 AES-256-GCM 알고리즘으로 암호화하기

이번 작업은...성능이 매우 낮은 레거시를 쳐내는 작업이었다. 이번 작업의 요구사항은 아래와 같이 정의할 수 있었다. 성능이 기존보다 빨라야 할 것 aws KMS를 사용하고 있었는데 네트워크를 타야하다보니 암호화가 느렸다. 개인정보를 암호화하는 데 이것보다는 훨씬 성능이 빨라야 한다. 법률을 준수하는 보안 설계프로젝트 수행 시 정보 시스템을 구축하게 되고 정보 시스템을 보호하기

FastAPI에 Rate-limit(Throttling) 구현
python

FastAPI에 Rate-limit(Throttling) 구현

너어어무 쉽다 이말이야!ImplementationRedis 클러스터 혹은 인스턴스 생성k8s 프로젝트 내에 redis 클러스터를 추가하였다. 운영 환경에 따라 다를 수도 있겠지만, 아래와 같은 manifest를 사용한다. 사실 꼭 redis를 사용할 필요는 없지만, 파이썬 라이브러리의 성숙함과 멀티 Pod으로 운영되었을 때를 고려한다면 쓰는 것이 좋다. apiVersion: v1 kind: Pod metadata: name: <APPLICATION>-redis

FastAPI 에서 Request Body 를 로깅하는 방법
FastAPI

FastAPI 에서 Request Body 를 로깅하는 방법

의외로 운영에 매우 필요한 기능인데, 깔끔한 핸들링 방법을 못찾는다. 내가 원하는 요구사항은 이랬다. 절대로 API 로직이 있는 View코드 안에 로깅을 위한 코드가 1줄도 들어가선 안된다.모든 함수마다 반복해서 적용해야 하는 것은 안된다.Middleware로 처리되었으면 좋겠다. (사실 이게 제일 어려운 포인트)아무리 찾아봤지만, 뾰족하게 생각나는 방법은 없었다. starlette의 Request body를 까는

DRF (django restframework)에서 HMAC Authentication 구현하기
python

DRF (django restframework)에서 HMAC Authentication 구현하기

Introduction내가 관리하는 API 서버는 다양한 타입의 클라이언트들로 오는 요청을 처리하고 있다. 기본적인 oauth 인증을 이용하는 웹 어플리케이션 뿐만 아니라, Windows server application, aws lambda 등 많은 어플리케이션이 HMAC 인증을 사용하고 있다. DRF (django Rest Framework)의 Permission Class 로 구현되지 않고, view 로직에 signature 검증 로직이 있는 상태다. 즉, 아무

파이썬의 모든 변수는 객체(Object) : C와의 차이점은?
python

파이썬의 모든 변수는 객체(Object) : C와의 차이점은?

2019년에 작성한 글입니다. (https://www.binaryflavor.com/3) 파이썬은 파이썬만의 배우기 쉬운 문법때문에 잘 다루기 쉽다는 오해를 받습니다. 공식 문서를 꼼꼼히 살펴보면 파이썬의 구현을 잘 설명되어 있는데, 꽤 복잡한 구조로 구현이 되어 있음을 확인할 수 있습니다. 시간이 허락한다면 꼭 공식 문서를 읽어보시기 바랍니다. C vs Python (Cpython)/* C code */ int