반응형
FastAPI에서 잘못된 get_db 사용법이 초래한 MySQL BrokenPipeError 해결 방안째하Develop개요FastAPI로 구축된 서버에서 "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))" 오류가 발생했습니다. 이 오류의 로그를 추적하여 발견한 문제점과 해결 방법을 정리했습니다.문제 배경다음은 데이터베이스 세션 객체를 생성하고 관리하는 코드입니다. FastAPI 예제와 본 서버에서도 유사하게 구현되었습니다.def get_db(): session = Session() try: yield session except Exception as e: log.exception("Session Error!!", e) raise e finally: log.debug("Session Close")..- 2025-02-28 09:45:45
PDF 구조, 텍스트 추출까지째하Develop개요 PDF 데이터 파싱하면서 이상한 텍스트들이 발견이 되서 해당 텍스트들이 왜 생겼는지트러블 슈팅하면서 정리한 글입니다.PDF란PDF(Portable Document Format)은 Adobe에 의해 만들었고 현재 문서 교환의 표준으로 자리 잡았습니다.PDF 내부 구조1. HeaderPDF 파일의 첫 번째 줄에 위치하고, PDF 버전 정보를 포함합니다.%PDF-1.3→해당 PDF 파일의 버전이 1.3을 알려준다.2. BodyBody엔 여러 객체로 구성됩니다.객체는 트리 구조를 가지고 있고, 8가지의 기본적인 유형이 있습니다.불리언(Boolean): true 또는 false숫자(Number): 정수 또는 실수문자열(String): (문자열) 또는 이름(Name): /이름배열(Array): [요소1 요소2..- 2025-02-26 19:31:59
AWS ECR 비용 최적화 해보기(Python 스크립트를 곁들인)째하DevelopECR 이란?Amazon Elastic Container Registry(Amazon ECR)는 어디에서나 컨테이너 소프트웨어를 손쉽게 저장, 공유 및 배포할 수 있는 완전관리형 컨테이너 레지스트리예를 들어 Docker Hub 같은 개념이라고 생각하면 편합니다.ECR 과금 방식ECR의 과금 방식에는 크게 데이터 송수신 비용과 스토리지 비용이 존재합니다.1. 데이터 송수신2. 스토리지 비용ECR 비용 최적화데이터 송수신 비용과 스토리지 비용 중에 스토리지 비용 최적화에 대해서 글을 작성할려고 합니다.회사 By 회사이긴 한데 현재 제 회사에서는 운영 서버에 배포를 할 때GitHub Action + CI/CD 활용한 AWS ECS에 자동 배포를 하고 있습니다.자동 배포를 할 때마다 ECR의 레포지토리에는 이미..- 2025-01-19 22:06:19
FastAPI에서 APP Mount + CORSMiddleware째하DevelopFastAPI App Mount CORS개요최근 QB 개발 서버에 Prometheus Cilent 기능을 붙여 HTTP 트래픽 횟수,API 호출 횟수 등 데이터 추적을 할려고 한다. Prometheus 서버는QB 개발 서버의 특정 API 주소(/metrics)를 호출해 API 데이터를 파싱 후Prometheus 서버에 저장한다. 해당 metrics 주소를 Origin 을 적용해 private하게접근할려고 한다.문제 사항# starlette/aplications.pyclass Starlette: def add_middleware( self, middleware_class: type[_MiddlewareClass[P]], *args: P.args, **..- 2025-01-19 22:05:25
FCM 서버 Bulk Push 성능 개선 과정(+FastAPI, HTTP v1 API)째하Develop개요현재 회사에서는 중,고등학생들 내신을 위한 문제 풀이 앱을 운영하고 있습니다.해당 앱에서 유저들에게 FCM을 개인 맞춤화 메시지로 보내는 기획이 생겨급하게 FastAPI 프레임워크를 사용해 만들었습니다. 하지만 시간이 점점지날수록 유저들에게 보낼 메시지 수가 많아지고 점점 보내는데 오래 걸려Timeout이 발생했고 Request가 비정상으로 끊겨 Memory Leak현상이 발생했습니다.문제에 대한 설명 (What)문제의 원인 (Why)어떻게 문제를 풀었는지 (Who)구현 및 결과 (Implement and Result)로 정리해서 설명할려고 합니다.1. 문제에 대한 설명(What)유저들에게 개인 맞춤화 메시지를 보낼 때 처리하는 로직은 다음과 같습니다.# 보내고 싶은 Target 에 대한 User D..- 2025-01-19 22:04:04
FastAPI + Sqlalchemy를 활용한 Pytest( + async)째하Develop개요FastAPI Pytest를 활용한 유닛 테스트 및 통합 테스트를 정리하고자 합니다.해당 기능을 활용해 Github CI까지 하는게 목표입니다.간략한 소개FastAPI현대적이고 빠르며(고성능), 파이썬 표준 힌트에 기초한 Python의 API 빌드하기 위한 웹 프레임워크이다.프레임워크 단에서 비동기 지원을 해준다.PytestPython에서 널리 사용되는 테스트 프레임워크, 간단하고 확장 가능한 테스트를 작성할 수 있다.다양한 플러그인과 기능을 제공하여 테스트 작성 및 실행을 편리하게 해줌SqlalchemyPython에서 SQL 데이터베이스와 상호작용하기 위한 ORM이다.주로 FastAPI에선 Sqlalchemy 라이브러리를 사용한다.설정라이브러리# FastAPIpip install fastapipip..- 2025-01-19 21:58:29
반응형
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)