전체 글 (367) 썸네일형 리스트형 [Redis] Redis Lock과 Redis Connection Pool HTML 삽입 미리보기할 수 없는 소스 개요 FastAPI에 Redis를 이용해 비동기 통신에 대한 성능 테스트를 시험 중이었다. locust에 Numbers of users는 1000 spawn rate는 100으로 설정하고 worker는 3개 정도를 주어 테스트 했다. FastAPI의 로그를 보고 있으니 다음과 같은 에러가 발생하고 있는 걸 확인했다. 위에 첨부한 이미지에서 확인할 수 있다시피 redis connection과 관련된 에러이다. 다음은 이 에러의 TraceBack 중 일부이다. ... File "/Users/jako/private/git-repo/backend-playground-src/coupons/src/repository/redis_repository.py", line 33, in.. [FastAPI] Too Many Open files Error가 일어난다면 HTML 삽입 미리보기할 수 없는 소스 개요 최근 locust라는 도구를 이용해 손수 만들어본 코드 구조가 얼마나 효율적인지 테스트해 보는 중이다. (locust는 성능 테스트도구이다.) 직접 만든 코드 유틸에는 여러 계층의 db transaction을 묶어서 처리하기 위한 decorator라던지 sqlalchemy의 imperative mapping 방식을 이용한 ORM과 depdency-injector를 이용한 DI 처리와 같은 것들이 존재한다.. 앞서 언급한 코드 유틸에는 학습과 아이디어 검증을 우선으로 구현했기 때문에 테스트와 같은 부분을 차일피일 미루고 있었는데 여러 자료를 접하게 되면서 우선 locust를 이용해 성능 테스트를 시도해 보기로 했다. 그렇게 성능 테스트를 진행 중에 관련 로그를 .. [TroubleShoot] no such file libmysqlclient.21.dylib HTML 삽입 미리보기할 수 없는 소스 Notes 맥북의 brew를 업데이트하고 나니 잘 돌아가던 python-mysqlclient가 동작하지 않게 되었다. driver를 pymysql로 변경하면 문제는 피해갈 수 있지만 MySQLdb(mysqlclient) 쪽이 성능이 더 좋다고 하니 해당 이슈를 해결해보도록 하자. 증상은 다음과 같다. "libmysqlclient.22.dylib" 파일과 이와 관련된 다른 파일도 찾을 수 없다는 에러이며 "libmysqlclient.22.dylib"가 아니라 다음과 같이 "libmysqlclient.21.dylib"도 같은 증상이 일어날 수 있다. Reason: tried: '/opt/homebrew/opt/mysql-client/lib/libmysqlclient.2.. [24년 1월] 이대로 괜찮은가 개요24년의 한 달이 지나갔다. 24년의 1월은 23년 1월과는 많이 비교되는 듯하다. 23년의 1월은 그래도 회사에 재직하면서 여러 일을 경험하면서 밀도 있게 보냈는데 24년의 1월은 그러지 못한 듯하다. 이는 최근 퇴사한 회사의 영향을 받은 것 같다. 작년 12월 초 어찌저찌 입사한 회사를 24년 1월 중반쯤 퇴사를 했다. 회사의 문화에 맞춰 나가는 것이 어렵겠다는 판단이 들어서이다. 그렇게 퇴사를 하고 나서 보니 딱히 뭘 한다기보다 일단은 아무 생각 없이 쉬고 싶다는 생각에 시간을 많이 낭비하는 듯하면서 보낸 1월이다. 독서 : 이래나 저래나 하고 있는 중주말마다 Binary Book Club이라는 모임을 하고 있다. 책을 기반으로 의견을 나눠보고 싶은 주제를 사전에 적고 이를 기준으로 이야기를.. [FastAPI] dataclass를 pydantic의 BaseModel 로 변환하기 HTML 삽입 미리보기할 수 없는 소스 개요 FastAPI의 공식문서에는 pydantic을 이용한 예제들이 많이 등장한다. 하지만 pydantic보다 dataclass를 선호해서 FastAPI+dataclass 조합을 이용중인데 이대로 사용하다 보니 Swagger 문서에서 Response 되는 Data를 명시하는 부분에 제외(exclude)할 데이터를 설정하는 부분에서 문제가 있었다. 이 문제를 해결하기위해 python dataclass를 pydantic의 BaseModel로 변환시켜 보자는 아이디어를 떠올렸고 이번 포스팅은 그 방법을 기록한 내용이다. 1. FastAPI의 response_model_exclude ? FastAPI의 APIRouter 클래스에는 다음과 같은 옵션들이 존재한다. 이 중에.. [AWS] EC2(Amazon Linux 2023)에 Service 파일 생성하기 HTML 삽입 미리보기할 수 없는 소스 개요 (추후 작업할 때 참고할 용도로 작성하는 글이다.) systemd? 왜 쓰는가? EC2에서는 Django, Flask, FastAPI 혹은 Daemon을 실행시키기 위해서는 system daemon을 이용해야한다. 이는 linux os에서 특정 프로그램을 상시 가동시킬 수 있게 만들어준다. (단순히 코드를 실행시키는 main.py만 실행시키고 terminal session을 종료하면 같이 종료된다) 1. Service File Service File은 대략 다음과 같이 생겼다. [Unit] Description=PROJECT SERVICE After=network.target [Service] User=ec2-user WorkingDirectory=/proje.. [AWS] EC2(Amazon Linux 2023)에 Python 설치하기 목차 ">목차 개요 Python Project 배포용으로 AWS EC2의 Amzon Linux 2023을 선택한 경우 사전에 필요한 명령어들이다 1. Setting Command패키지 업데이트sudo yum update -ysudo yum groupinstall "Development Tools" -ysudo yum erase openssl-devel -y이후 Python을 설치하기 전 필요한 패키지들을 설치해주자.sudo yum install openssl-devel libffi-devel bzip2-devel wget -y 2. Python 설치하기이 내용은 파이썬을 컴파일하여 설치하는 방법이다. Python3.10 버전의 Source를 받아 Compile 을 통해 설치하는 경우 다음과 같다... [NGINX] Multiple Upstream 구성하기 HTML 삽입 미리보기할 수 없는 소스 개요 AWS-EC2에 Nginx의 Reverse Proxy를 이용해 FastAPI와 연계해 놓은 구성에 추가로 FastAPI를 등록해서 사용해야 한다. 이때 추가로 등록하고자 하는 FastAPI는 기존에 연계해 놓은 FastAPI가 아닌 전혀 다른 프로젝트를 기반으로 하는 것이다. 1. 도식 아래는 이해를 돕기 위해 기존에 등록한 구성의 도식이다. 만약 "http://www.example.com/"를 입력하면 먼저 설정해 놓은 "A-Service"로 라우팅 된다. A-Service의 Wroker를 증가시킴으로써 Nginx의 Upstream의 구성이 달라질 수는 있겠지만 위 도식은 일반적인 예제를 그린 것이다. 이러한 설정에 다음과 같은 구성을 추가적으로 설정하려 .. 이전 1 ··· 10 11 12 13 14 15 16 ··· 46 다음