공부6 FastAPI에서 StreamingResponse 활용 시 DB 세션 관리 이번 글에서는 FastAPI, Starlette, Uvicorn을 사용할 때의 ASGI 프로토콜 동작 방식을 살펴보고, 미들웨어를 통한 DB 세션 관리 시 주의할 점과 트랜잭션 처리 방식을 설명한다.1. FastAPI의 ASGI 통신 이해하기FastAPI 애플리케이션을 Uvicorn으로 실행할 때 내부적으로 어떤 일이 일어나는지 이해하는 건 중요하다. FastAPI와 Starlette는 ASGI(Asynchronous Server Gateway Interface)를 기반으로 동작하고 비동기 처리를 지원한다. Django나 Flask 같은 동기 프레임워크가 사용하는 WSGI(Web Server Gateway Interface)와는 다르다.정확한 요청 흐름은 다음과 같다: Uvicorn이 HTTP 요청을 A.. 2025. 3. 30. Triton Inference Server와 비동기 gRPC로 통신하기 1. Triton Inference Server NVIDIA Triton Inference Server — NVIDIA Triton Inference Serverdocs.nvidia.comTriton Inference Server is an open source inference serving software that streamlines AI inferencing.Triton Inference Server는 NVIDIA에서 제공하는 오픈소스 AI 모델 추론 서버이다. 학습된 모델을 서빙하기 위해서는 웹 개발 지식이 필요하다.Triton은 모델 연구자에게 웹 개발에 대한 부담을 덜어주기 위한 서비스라고 생각하면 된다. 학습된 모델 파일을 model repository에 저장하면 별도의 코드를 작성할 필요.. 2025. 2. 11. FastAPI의 페이지네이션 성능 개선기 1. FastAPI에서 페이지네이션 처리 방법FastAPI에서는 기본적으로 페이지네이션 기능을 제공하지 않는다.페이지네이션 기능을 구현하기 위해 fastapi-pagination이라는 별도의 라이브러리를 사용한다.2. 요구사항데이터베이스의 Item 테이블에는 id, name, price 필드가 존재한다.Item의 전체 목록을 반환하는 페이지네이션 API를 구현해야 한다.id, name, price 필드와 함께 price의 90% 가격인 할인 후 가격(discounted_price)을 계산해서 반환해야 한다.이 요구사항을 어떻게 구현할 수 있을까?3. 기본 페이지네이션 함수로 구현코드는 다음과 같이 동작한다:get_data_from_db() 함수에서 데이터베이스의 정보를 sqlalchemy model 객체.. 2025. 1. 30. DB 암호화 방식 1. DB에서 암호화가 필요한 경우개인정보를 데이터베이스에 보관하는 경우 민감정보와 고유식별정보는 암호화하여 보관해야 한다. (개인정보보호법)https://blog.naver.com/n_privacy/80142669914 [개인정보보호법 이해하기] 민감정보 vs 고유식별정보지난 9월 30일 개인정보보호법이 본격 시행됨에 따라 개인정보의 정의나 범위에 대한 문의를 종종 받곤 합...blog.naver.com2. 개인정보 암호화 예시학생 테이블(Students)과 반 정보 테이블(Classes)이 있다고 가정하자.이때 "학생의 반 정보는 민감정보이다."라는 요구사항이 생겼을 때, 어떤 컬럼을 암호화해야 할까?2-1. id 암호화우선 아래와 같이 학생 테이블의 class_id를 암호화할 수 있을 것이다.id .. 2025. 1. 18. 이전 1 2 다음