본문 바로가기

전체 글34

네이버 클라우드 인턴 3달 차 회고 0. 회고를 시작하며인턴을 시작한지 3달이라는 시간이 지났다.업무에 익숙해지면서 점점 더 많은 일을 맡게 되는 것 같다.3월은 어떻게 지냈는지 돌아보자.1. 프로젝트 초기 설계지난 회고에서 언급하였듯 새로운 TF팀에 참여하게 되었다.백엔드 프로젝트의 아키텍처를 처음부터 설계해야 해서 처음에는 막막함이 컸다. 기존에 맡았던 프로젝트는 요구사항이 많아지면서 코드 복잡도가 많이 올라갔었다.새로운 프로젝트는 확장에 대응할 수 있는 구조를 잡고자 하였다. https://github.com/zhanymkanov/fastapi-best-practices GitHub - zhanymkanov/fastapi-best-practices: FastAPI Best Practices and Conventions we used .. 2025. 4. 3.
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.
네이버 클라우드 인턴 2달 차 회고 0. 회고를 시작하며일에 쫓겨 시간을 보내다 보니 어느새 2월이 지나갔다.회사 생활이 익숙해짐과 함께 맡은 업무와 책임도 늘게 된 것 같다.2월은 어떻게 보냈는지 되짚어보려 한다.1. 새로운 프로젝트 참여홀로 TF팀에 참여하다.2월 중순쯤 새로운 프로젝트 TF 팀의 백엔드 엔지니어로 참여하게 되었다.처음 참여 소식을 듣게 되었을 때는 기대 반 걱정 반이었다.바로 처음부터 프로젝트를 만들어 나갈 수 있다는 기대와 처음부터 프로젝트를 만들어야 한다는 걱정이다(...). 처음부터 만들어 나가는 프로젝트우선 내가 처음부터 프로젝트를 설계해 나갈 수 있다는 점이 좋았다.기존에 하던 프로젝트는 이전 작업을 이어받아 진행하게 되었다.이미 어느 정도 틀이 짜여 있다는 것이 코드를 작성하는데 편리함을 주었지만, 반대로 .. 2025. 3. 1.
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.