6 SERIES
PyTorch를 pip install로 깔았는데 시스템에 CUDA Toolkit을 따로 안 깔아도 GPU가 돌았다. 그러다 nvidia-smi는 CUDA 12.2라고 하고, nvcc --version은 아예 명령이 없다고 하고, python -c "import torch; print(torch.version.cuda)"는 12.6이라고 한다. 같은 머신에서...
애플리케이션에서 LLM 을 처음 붙일 때는 SDK 하나를 호출하면 끝난다. 그런데 모델이 둘 이상 되고, 어떤 요청은 싼 모델로 충분하고 어떤 요청은 비싼 모델이 필요하고, 제공자 한 곳이 죽었을 때 다른 곳으로 넘겨야 하는 상황이 오면 그 판단을 어디에 둘지가 문제가 된다. 애플리케이션 코드마다 if 로 흩어 놓으면 팀이 늘어날 때마다 같은 판단이 복제된...
진행 기간: 2026.05–현재 PDF·이미지·오피스 문서를 LLM이 다룰 수 있는 Markdown으로 변환하는 Document Parser를 담당했다. OCR 제품을 만드는 게 아니라 OCR을 활용해 문서를 Markdown으로 변환하는 서비스다. 스택: Python 3.11, FastAPI, docling(+TableFormer), 멀티프로세스 워커 풀,...
회사에서 "API Gateway를 제거하고, 쿠버네티스 앞에 LoadBalancer를 직접 붙여서 외부로 노출하자"는 작업을 맡게 됐다. 그런데 막상 들여다보니 나는 Ingress가 뭔지도 제대로 몰랐다. "외부 요청이 들어와서 서버가 응답한다" 정도로만 알고 있었지, 그 사이에 LoadBalancer니 Ingress Controller니 하는 것들이 몇...
나는 오랫동안 Spring Boot 를 jar 로 말아서 서버에 올리는 방식으로 일했다. 배포는 "서버에 접속해서 기존 프로세스를 죽이고 새 jar 를 띄운다"였고, 그걸로 충분했다. 그러다 쿠버네티스 위에서 도는 서비스를 맡게 됐는데, ArgoCD 화면은 매일 보면서도 그 안에서 무슨 일이 벌어지는지는 몰랐다. Pod 가 왜 이름이 매번 바뀌는지, 왜 서...
자바 백엔드만 다뤄오다가 Python 기반 ML 서비스를 분석해야 할 일이 생겼다. 코드를 읽기 시작하자마자 한 줄짜리 함수가 데코레이터로 둘러싸여 있고, 타입은 어디 갔는지 모르겠고, self 가 왜 첫 인자에 박혀 있는지 헷갈렸다. 이 글은 그때 내가 정리한 노트다. Python 을 처음부터 끝까지 훑는 게 아니라, 자바 개발자가 Python 코드를 빨...