전체 글 (344) 썸네일형 리스트형 [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.. [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 설치하기 HTML 삽입 미리보기할 수 없는 소스 개요 Python Project 배포용으로 AWS EC2의 Amzon Linux 2023을 선택한 경우 사전에 필요한 명령어들이다 1. Setting Command 패키지 업데이트 sudo yum update -y sudo yum groupinstall "Development Tools" -y sudo yum erase openssl-devel -y 이후 Python을 설치하기 전 필요한 패키지들을 설치해주자. sudo yum install openssl-devel libffi-devel bzip2-devel wget -y 2. Python 설치하기 다음은 Python3.10 버전의 Source를 받아 Compile 을 통해 설치하는 경우이다. wget https.. [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의 구성이 달라질 수는 있겠지만 위 도식은 일반적인 예제를 그린 것이다. 이러한 설정에 다음과 같은 구성을 추가적으로 설정하려 .. [NGINX] 504, Gateway Time-Out HTML 삽입 미리보기할 수 없는 소스 개요 FastAPI + LangChain을 이용한 간단한 WAS를 AWC-EC2에 올려놨다. 이 구조에 더해 Reverse Proxy로써 Nginx도 같이 구성해 놓은 상황이다. 또한 LangChain에서 특정 결과를 내기까지 적어도 60~80초가 걸리는 현상이 존재하는 상황이기도 하다. 그렇다보니 요청을 한 후 응답을 받기까지의 시간이 60초가 넘었을 때 Nginx에서 504 Gateway TimeOut이 뜨는 현상이 발생했다. 어떻게 해결할 수 있을까? 1. Nginx에 설정 추가하기 Nginx에서 일단 설정을 다음과 같은 설정을 추가해 주자. location / { # 아래 항목 추가 proxy_connect_timeout 300; proxy_send_tim.. [Programmers] 코딩 기초 트레이닝 #8 HTML 삽입 미리보기할 수 없는 소스 배열 만들기 3 https://school.programmers.co.kr/learn/courses/30/lessons/181895 def solution(arr, intervals): answer = [] for x in intervals: start, end = tuple(x) answer.extend(arr[start:end + 1]) return answer 문자 리스트를 문자열로 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/181941 def solution(arr): return ''.join(arr) 문자열 돌리기 https://school.programmers.co.kr/learn/c.. [FastAPI] Request 단위의 Transaction 잡기 HTML 삽입 미리보기할 수 없는 소스 2023.10.06 - [Frame Work/FastAPI] - [FastAPI] DI는 bootstrapping을 생각해보기 개요 FastAPI에서 DI를 적용하기 위해, FastAPI의 Depends 함수가 아닌 dependency-injector 라이브러리를 활용했다. 이를 통해 DB Session을 Singleton으로 설정하고, Repository에서 Session을 주입받아 처리하는 시도를 했다. 그러나 이 과정에서 여러 Repository 간에 수행되는 쿼리에 대한 Transaction이 올바르게 묶이지 않는 문제가 발생했다 이번 글은 이러한 문제의 배경과 함께 어떻게 이를 해결했는지에 대한 기록을 담는다. 1. Transaction 처리의 발단 Fas.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 43 다음