티스토리 뷰
서비스 개발자라면 반드시 알고 있어야 하는 용어가 있다. 바로 SLA, SLO, SLI다. 다만 체계가 잡힌 조직이 아니라면, 실무에서 이 개념이 명시적으로 도입되지 않은 환경도 많다. 그래서 막상 문서에서 마주치면 "이게 정확히 뭘 구분하는 거지?" 싶다. 셋 다 "서비스 수준(Service Level)"으로 시작하지만 역할이 전혀 다르다. 하나씩 정리해본다.
SLA — 고객과의 약속
SLA(Service Level Agreement) 는 서비스 제공자와 고객 사이에 맺는 합의다. 쉽게 말해 "우리 서비스는 이 정도 품질을 약속하겠다"는 내용을 수치로 명시한 계약이다.
예를 들면 이런 항목이 들어간다.
- 가용성 99.9% uptime
- API 응답 200ms 이내
- 처리량 1,000 TPS
약속을 지키지 못하면 보상이나 패널티가 따라붙기 때문에, SLA는 외부를 향한 공식 기준이 된다.
SLO — 내부 목표
SLO(Service Level Objective) 는 SLA를 달성하기 위한 내부 목표값이다. 즉, "서비스 수준 목표"다.
여기서 포인트는 SLO는 보통 SLA보다 엄격하게 잡는다는 점이다. 예를 들어 SLA가 가용성 99.9%라면, SLO는 99.95%로 여유를 둔다. 고객에게 약속한 선까지 가기 전에 미리 경고가 울리도록 내부 마지노선을 한 칸 위에 두는 셈이다.
SLI — 실제 측정값
SLI(Service Level Indicator) 는 실제 측정된 지표다. 모니터링 시스템이 수집한 가용성, 응답 시간 같은 메트릭이 모두 SLI에 해당한다.
SLA와 SLO가 "이래야 한다"는 기준이라면, SLI는 "지금 실제로는 이렇다"를 보여주는 숫자다.
한 줄 요약
| 용어 | 역할 | 한 줄 설명 |
|---|---|---|
| SLA | 외부 약속 | 고객과 맺는 서비스 수준 계약 |
| SLO | 내부 목표 | SLA를 지키기 위한 더 빡빡한 내부 기준 |
| SLI | 실제 값 | 모니터링으로 수집한 현재 지표 |
SLI로 현실을 측정하고, SLO로 안전 마진을 관리하고, SLA로 고객에게 약속한다.
'라이브러리&프레임워크 > Spring' 카테고리의 다른 글
| @Transactional의 readOnly 속성의 의미 (0) | 2026.04.21 |
|---|---|
| 동시성 테스트 유틸, 정말 동시 시작을 보장하는가? (0) | 2026.04.14 |
| Application Event란?? (0) | 2026.03.28 |
| 이커머스 좋아요 집계 방식 비교 (0) | 2026.03.15 |
| 동시성 전략, 경합 빈도만 보면 안 되는 이유 (0) | 2026.03.09 |
