이 문서를 통해 아래 질문들에 답할 수 있게 됩니다.

  • 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이다.

참고 문서