이 문서를 통해 아래 질문들에 답할 수 있게 됩니다.
- vLLM, SGLang, Ollama 같은 프로젝트에서 백엔드 개발자는 무엇을 배워야 하는가?
- local/self-hosted LLM serving은 provider API와 어떤 운영 차이가 있는가?
- 인프라팀과 GPU, batching, 모델 배포를 어떻게 논의해야 하는가?
개요
2026-06-30 GitHub API 확인 기준으로 ollama/ollama는 175k+ stars, vllm-project/vllm은 84k+ stars, sgl-project/sglang은 29k+ stars이며 모두 활발히 업데이트되고 있다.
이 프로젝트들은 local development부터 high-throughput serving까지 self-hosted LLM 운영의 중요한 축을 보여준다.
Provider API와의 차이
provider API:
- 운영 부담이 낮다.
- 모델 업데이트와 serving을 provider가 맡는다.
- 외부 데이터 전송과 비용 종속성이 있다.
- quota와 rate limit을 따른다.
self-hosted:
- 데이터 통제력이 높다.
- 모델과 serving 설정을 직접 관리한다.
- GPU, 배포, scaling, monitoring 부담이 생긴다.
- capacity planning이 어렵다.
프로젝트별 학습 포인트
- Ollama: 개인 프로젝트와 로컬 개발 접근성
- vLLM: throughput, batching, serving 효율
- SGLang: 고성능 serving과 structured generation 흐름
백엔드 개발자는 내부 API 서버와 serving layer 사이의 계약을 배워야 한다.
운영 설계 포인트
- model artifact는 어디에 저장하는가?
- 모델 버전과 rollback은 어떻게 하는가?
- cold start를 어떻게 줄이는가?
- batching이 latency에 미치는 영향은 무엇인가?
- GPU memory 부족 시 어떻게 실패하는가?
- 여러 모델을 동시에 올릴 것인가?
- API 서버와 serving 서버 사이 timeout은 얼마인가?
코드로 이해하기
provider API와 self-hosted serving을 같은 포트 뒤에 숨길 수 있다.
public interface ChatModelClient {
ChatResult chat(ChatCommand command);
}
public class SelfHostedChatClient implements ChatModelClient {
private final WebClient webClient;
@Override
public ChatResult chat(ChatCommand command) {
return webClient.post()
.uri("/v1/chat/completions")
.bodyValue(command)
.retrieve()
.bodyToMono(ChatResult.class)
.timeout(Duration.ofSeconds(10))
.block();
}
}서비스 계층은 provider API인지 self-hosted인지 몰라도 된다. 차이는 adapter와 운영 설정에서 관리한다.
인프라 협업 포인트
self-hosted LLM은 인프라팀과의 협업이 매우 중요하다.
- GPU 종류와 수량
- model memory footprint
- max concurrent request
- batching 설정
- autoscaling 가능 여부
- model warmup
- monitoring metric
- 장애 시 fallback provider 사용 여부
백엔드 개발자는 모델 선택을 성능 표로만 말하지 말고 QPS, P95 latency, context length, token/sec 요구사항으로 설명해야 한다.
개인 프로젝트 기준
Ollama 같은 도구로 로컬 모델을 붙이면 비용 없이 실험하기 좋다. 다만 공개 서비스처럼 생각하면 안 된다. 성능, 동시성, 보안, 배포를 따로 검증해야 한다.
기업 운영 기준
기업에서 self-hosted를 택하는 이유는 데이터 통제, 비용 예측, latency, 규제일 수 있다. 그러나 GPU 운영 역량과 모델 serving 전문성이 필요하다. provider API보다 무조건 싸거나 안전한 것은 아니다.
위험 신호!
- GPU 비용을 호출당 비용과 비교하지 않는다.
- 모델 버전과 rollback 계획이 없다.
- serving 서버 timeout이 없다.
- local dev 성능으로 production 처리량을 추정한다.
- monitoring 없이 GPU serving을 운영한다.
확인 질문
확인 질문
- self-hosted LLM의 장점과 비용은 무엇인가?
- 데이터 통제와 모델 제어 장점이 있지만 GPU, 배포, scaling, monitoring 운영 비용이 생긴다.
- vLLM이나 SGLang 같은 serving 프로젝트에서 백엔드 개발자가 봐야 할 것은 무엇인가?
- throughput, batching, timeout, model version, API 계약, fallback이다.