- 현상을 모델로 옮기는 절차(목적·변수·규칙·가정·반복)를 안다.
- SIR 구획 모델의 변수와 갱신식을 이해한다.
- 거리두기·백신이 곡선을 평탄화하는 원리를 실험으로 설명할 수 있다.
생각 열기 — 곡선은 어떻게 살아 움직일까
현실의 감염병을 직접 실험할 순 없지만, 컴퓨터 속 '모델'로는 얼마든지 돌려 볼 수 있어요. 사람을 취약(S)·감염(I)·회복(R) 세 칸으로 나누고, 단순한 규칙 몇 줄만 정하면 곡선이 살아 움직입니다. 오늘은 복잡한 현상을 '변수와 규칙'으로 옮기는 모델링의 전 과정을 직접 설계하고 돌려 봐요.
감염병 곡선을 만들려면 사람의 무엇을 남기고 무엇을 버려야 할까요? 키·취미·이름은 필요할까요?
모델이란 — 현실을 '필요한 만큼만' 줄인 것
모델은 현실을 그대로 복사한 게 아니라, 목적에 필요한 부분만 남기고 나머지를 과감히 생략한 '단순화된 닮은꼴'이에요. 지하철 노선도가 실제 거리·곡선을 버리고 '역의 순서'만 정확히 그리듯, 좋은 모델은 묻고 싶은 질문에 답할 만큼만 단순해요. 너무 단순하면 틀린 답을, 너무 복잡하면 만들 수도 이해할 수도 없는 답을 내놓아요. 핵심은 '무엇을 남기고 무엇을 버릴까'의 균형이에요.
감염병 곡선이 궁금하다면 사람의 키·취미·이름은 버리고 '지금 어느 상태인가(S/I/R)'만 남겨요. 노선도가 '역 순서'만 남기듯, SIR 모델은 '감염 상태'만 남긴 사회의 노선도예요.
모델링 5단계 — 목적부터 반복 실행까지
현상을 모델로 옮기는 데는 순서가 있어요. ①목적 정하기(무엇을 알고 싶은가: 감염 정점은 언제·얼마나?) ②핵심 변수 추리기(무엇을 남기고 무엇을 생략할까: S·I·R 인원수만) ③규칙 정의(상호작용과 갱신식: 하루 새 감염·새 회복을 어떻게 계산?) ④가정 명시(현실과 다른 점을 드러내기) ⑤시간에 따라 반복 실행(하루→하루 갱신을 수백 번). 이 다섯 단계를 거치면 머릿속 현상이 '돌아가는 프로그램'이 돼요.
①목적=결석 정점 예측 ②변수=건강/감염/회복 학생 수 ③규칙=접촉으로 옮고 며칠 뒤 회복 ④가정=전학·방학 없음 ⑤반복=30일치를 하루씩 돌리기.
SIR 구획 모델 — 사람을 세 칸으로 나누다
감염병 모델의 대표 격이 SIR이에요. 전체 인구 N명을 세 '구획(칸)'으로 나눕니다. S(Susceptible·취약): 아직 안 걸렸지만 걸릴 수 있는 사람. I(Infected·감염): 지금 감염되어 남을 옮길 수 있는 사람. R(Recovered·회복): 나아서 더는 옮지도, 다시 걸리지도 않는 사람. 시간이 흐르면 사람은 S→I→R 한 방향으로만 이동해요. 세 칸의 합은 늘 N으로 일정합니다 (사람이 사라지지 않으니까요). 이 '칸 옮기기'가 모델의 전부예요.
1,000명 마을에 감염자 5명이 있다면 시작은 S=995, I=5, R=0. 하루하루 S에서 I로, I에서 R로 사람이 옮겨 가며 세 곡선이 그려지고, 합은 언제나 1,000명을 유지해요.
갱신식 — 하루치 '새 감염'과 '새 회복'
규칙은 딱 두 줄의 식으로 압축돼요. 하루 새 감염자 newInf = 전파력 β × S × I / N(감염자가 많고 취약자가 많을수록 폭증). 하루 새 회복자 newRec = 회복률 γ × I(감염자 중 일부가 매일 낫는다). 그다음 칸을 옮겨요: S −= newInf; I += newInf − newRec; R += newRec. 이 세 줄을 하루마다 반복하면 곡선이 저절로 그려져요. β를 키우면 봉우리가 높고 빨라지고, γ를 키우면(빨리 나으면) 유행이 짧아져요.
매일 반복:
newInf = β × S × I / N # 새 감염자
newRec = γ × I # 새 회복자
S = S − newInf
I = I + newInf − newRec
R = R + newRec
직접 돌리기 — 감염병 확산 시뮬레이터 (SIR)
네 변수를 바꿔 [▶ 실행]을 눌러 보세요. 거리두기·백신을 올리면 곡선이 낮고 완만해지는 '평탄화(flatten the curve)'를 직접 확인할 수 있어요!
이건 잠복기·나이·지역 이동·면역 소멸을 모두 생략한 교육용 단순 모델이에요. 가정이 틀리면 결과도 틀려요 — 모델은 '예언'이 아니라 '만약 ~라면?'을 실험하는 도구예요.
분류 게임 — 모델의 구성요소 짝짓기
SIR 모델의 요소를 변수·규칙·가정으로 분류하세요.
🎛️ 변수 (상태·수치)
⚙️ 규칙 (갱신식)
📝 가정 (단순화 전제)
좋은 모델은 변수(무엇을 본다)·규칙(어떻게 변한다)·가정(무엇을 생략했다)이 분명해야 해요. 특히 가정을 적어 두지 않으면, 결과가 왜 틀렸는지 알 수 없어요!
확인 문제
바로바로 채점!
3차시 확인 문제
3문항 · 즉시 채점
1SIR 모델에서 하루 '새 감염자' 수를 구하는 갱신식으로 옳은 것은? (N=전체 인구)
2거리두기 강도와 백신 접종률을 모두 높였을 때 감염 곡선의 변화는?
3이 시뮬레이터의 결과를 해석하는 태도로 가장 올바른 것은?
핵심 용어
더 알아보기
교과서 너머의 이야기 — 클릭해서 펼쳐 보세요
비교구획 모델 너머 — 점(에이전트)으로 보는 또 다른 모의실험
SIR은 사람을 '칸의 숫자'로만 다루는 구획 모델이에요. 반면 화면 위 점 하나하나를 사람으로 두고, 각 점이 돌아다니다 가까이 닿으면 색이 옮는(파랑→빨강→초록) 방식이 '에이전트 기반 모델'이에요. 같은 감염병도 두 방식의 결과가 미묘하게 달라요 — 에이전트 모델은 '거리두기로 사람들을 멈춰 세우면' 접촉 자체가 줄어 효과가 눈에 보이죠. 산불·교통 정체처럼 '이웃 칸으로 번지는' 현상은 격자에서 옆 칸 규칙으로 퍼지는 '셀룰러 오토마타'가(다음 차시!), 무작위 반복 실험으로 확률을 추정하는 일은 '몬테카를로'가 어울려요. 같은 현상도 목적에 따라 어떤 모델을 고르느냐가 달라져요.
역사'평탄화(flatten the curve)'는 어떻게 세계의 구호가 됐나
2020년 코로나19 초기, 전 세계가 '곡선을 평평하게(flatten the curve)'라는 말을 외쳤어요. 이건 바로 SIR 같은 모델에서 나온 개념이에요. 감염자 수가 한꺼번에 치솟으면(뾰족한 봉우리) 병상·인공호흡기·의료진이 부족해 살릴 수 있는 사람도 못 살리게 돼요. 하지만 거리두기로 전파력을 낮추면 같은 사람이 걸리더라도 더 천천히, 더 낮은 봉우리로 퍼져서 의료 시스템이 감당할 수 있게 되죠. 총 감염자는 비슷해도 '언제 걸리느냐'를 늦추는 것만으로 수많은 생명을 구할 수 있다는 걸, 수많은 나라가 모델 시뮬레이션으로 보여 줬어요. 여러분이 방금 슬라이더로 만든 그 평탄한 곡선이, 실제로 전 세계 방역 정책의 근거가 된 바로 그 그림이에요.
생각같은 모델, 다른 목적 — R0와 집단면역
시뮬레이터에서 백신 접종률을 충분히 높이면 유행이 아예 일어나지 않는 걸 봤을 거예요. 이게 '집단면역(herd immunity)'의 원리예요. 한 감염자가 평균 몇 명에게 옮기는지를 기초감염재생산수 R0라고 하는데, 충분히 많은 사람이 면역을 가지면 감염자가 만나는 사람 대부분이 이미 면역이라 감염 사슬이 끊겨요. 그러면 백신을 못 맞은 사람(아기, 면역 약한 환자)까지 보호받죠. 필요한 접종률은 R0가 클수록 높아져요 — 전염력이 강한 홍역(R0가 매우 높음)은 95% 이상이 필요한 이유예요. 똑같은 SIR 모델이지만, '정점을 낮추는' 목적과 '집단면역 문턱을 찾는' 목적으로 다르게 활용할 수 있다는 게 모델의 힘이에요. (단, 실제 집단면역은 면역 지속기간·변이 등 우리 모델이 생략한 요소가 많아 훨씬 복잡하다는 것도 기억하세요.)