다섯 살도 알 수 있게 · SRE

우아한 저하가 뭐예요?

우아한 저하를, 추천 코너 하나가 고장났다고 공원 전체를 닫지는 않는 이야기로 풀어봤어요.

추천 코너정문오늘은 공원 전체가 문을 닫았어요손님들이 다 돌아가요추천 코너 하나가 고장나자, 공원 전체 입장을 막아버렸어요

추천 코너가 고장나자 공원 전체 입장을 막아버렸어요.손님들이 그냥 다 돌아가 버려요.

작은 고장공지공원 전체 폐쇄손님이 다 돌아가서 손해가 커요작은 문제 하나가 전체를 멈추게 설계되어 있으면, 손해가 커져요

작은 문제 하나가 전체를 멈추게 설계되어 있으면, 손해가 커져요.손님이 다 돌아가서 손해가 커져요.

입장·안전추천 코너 잠시 쉼안내추천 코너만 잠시 쉬어요나머지는 그대로예요덜 중요한 건 잠깐 꺼두고, 중요한 기구는 계속 돌려요조금 불편해도, 공원은 열려 있어요

덜 중요한 건 잠깐 꺼두고, 중요한 기구는 계속 돌려요.조금 불편해도, 공원은 열려 있어요.

뭐가 핵심인지 정해요미리 정해둬요
덜 중요한 건 꺼도 되게설계해 둬요
꺼진 건 살짝 알려요'잠시 쉬어요' 하고요
핵심만은 끝까지 지켜요입장·안전은 안 꺼요
문제 하나로 전부 닫은 공원다 닫음잠시 쉼핵심만 남기고 잠시 쉬게 한 공원핵심만 켜둠

두 공원을 비교해 봐요.핵심만 켜두면, 공원은 계속 열려 있어요.

뭐부터 꺼야 하지?!???뭐가 핵심인지 미리 안 정해두면, 급할 때는 못 골라요 — 평소에 정해둬야 해요

뭐가 핵심인지 미리 안 정해두면, 급할 때는 못 골라요.평소에 미리 정해둬야 해요.

한 줄로

우아한 저하 = 뭐가 핵심인지 미리 정해두고, 급하면 덜 중요한 건 꺼두되 핵심만은 끝까지 지켜서, 일부만 고장나도 나머지는 그대로 돌아가게 하는 일.

한 부분이 실패해도 시스템 전체가 멈추지 않고, 덜 중요한 기능을 내리거나 간단한 폴백 응답으로 대체해 핵심 기능만은 계속 동작하게 하는 설계 원칙이에요. 벌크헤드나 서킷 브레이커 같은 장치와 함께 쓰여요.

어른들은 이렇게 불러요

우아한 저하
Graceful degradation
일부만 고장나도 나머지는 그대로 돌아가는 것. 전부 멈추는 대신 조금만 불편하게 만들어요.
핵심 vs 부가 기능
Core vs. non-core features
꼭 있어야 하는 것과 없어도 되는 것. 평소에 미리 나눠둬야 급할 때 고를 수 있어요.
폴백 응답
Fallback response
진짜 대신 내놓는 간단한 답. 추천 대신 '인기 상품' 같은 기본값을 보여줘요.
기능 끄기
Feature toggle / kill switch
한 기능만 콕 집어 꺼두는 스위치. 코드를 다시 배포하지 않고도 끌 수 있어요.
부분 장애
Partial outage
전체가 아니라 일부만 멈춘 상태. 우아한 저하가 지키려는 바로 그 상태예요.
벌크헤드
Bulkhead
고장을 한 구역 안에 가둬두는 칸막이. 배의 격벽처럼, 한 곳에 물이 차도 배 전체가 안 가라앉아요.
서킷 브레이커
Circuit breaker
계속 실패하는 곳을 아예 끊어버리는 장치. 끊어두면 그 실패가 다른 곳까지 안 번져요.
SLO
SLO (Service Level Objective)
핵심 기능이 지켜야 하는 약속 목표. 공원 전체가 지키는 약속과 같은 개념이에요. → 쉬지 않는 공원을 돌보는 사람들
다음 이야기
발전기가 꺼지면 예비 발전기가 →
다른 용어도 그림책으로 보고 싶다면 요청하기 →