공부8 FastAPI에서 다형성 요청 처리하기 0. 개요FastAPI로 서버를 개발하다 보면 다양한 형태의 요청 데이터를 받게 된다.특히 하나의 엔드포인트에서 여러 타입의 요청을 처리하는 상황에서는 어떻게 구조를 잡을지 고민이 많아진다. 이번 포스팅에서는 Pydantic을 활용하여 하나의 엔드포인트에서 다형성 요청을 처리하는 방법을 설명한다.1. 시나리오서비스에 사용자가 결제 수단을 등록할 수 있는 API가 있다고 가정해 보자.사용자는 원하는 결제 수단을 선택하여 등록하게 된다.결제 수단은 신용카드, 계좌이체, 간편 결제 총 3가지이고, 각 결제 수단이 필요로 하는 정보는 모두 다르다. 결제 수단 별 요청 형태는 다음처럼 작성할 수 있다.이처럼 하나의 API에서 다형적인 요청을 처리하려면 FastAPI에서는 어떻게 구현해야 할까?2. Pydantic.. 2025. 4. 19. DELETE Method와 멱등성 0. 204 No Content vs. 404 Not Found최근 존재하지 않는 리소스를 삭제하라는 요청이 들어왔을 때 204(No Content)와 404(Not Found) 중 어떤 상태 코드를 반환할지 고민한 적이 있다.처음에는 DELETE 메서드는 멱등성을 가져야 하기 때문에 항상 같은 상태 코드를 반환할 수 있는 204가 적합하다고 생각했다. 그러나 리서치를 진행하면서 내가 멱등성에 대해 오해를 하고 있었다는 사실을 알게 되었다.Dave Callan의 포스팅을 기반으로 적절한 상태 코드 선택 방법과 멱등성에 대한 오해를 풀어보겠다. In a REST API should we return 204 (No Content) or 404 (Not Found) for a HTTP DELETE reques.. 2025. 4. 16. 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. 이전 1 2 다음