3월, 2025의 게시물 표시

미분으로 달리고, 적분으로 늙어간다 – 마라톤에 대한 시스템사고

이미지
  미분으로 살고 적분으로 드러난다 — 마라톤과 시스템사고의 만남 우리는 삶에서 '흐름(flow)'으로 살고, '저량(stock)'으로 평가받습니다. 하루하루 살아가는 방식은 미분의 순간들—즉 작은 행동의 연속이지만, 세상에 보이는 나는 그 행동들이 쌓인 총합(적분)으로 드러납니다. 바로 적분의 결과인 나, 내 건강, 내 평판, 내 관계, 내 삶이죠. 행동은 흐름, 판단은 저량 시스템사고에서는 흐름(flow)은 시간에 따른 변화량을 의미하고, 저량(貯量, stock)은 그 변화가 누적(적분)된 상태를 뜻합니다. 우리는 체중계에 올라 체중(저량)을 보고 건강 상태를 판단하지만, 그 체중을 만든 것은 매일의 식습관과 운동량이라는 흐름입니다. 하지만 여기에는 하나의 함정이 있습니다. 저량은 흐름의 변화에 곧바로 반응하지 않습니다. 저량은 흐름이 있어야 변합니다. 하지만, 우리가 어떤 행동을 시작해도 결과는 당장 나타나지 않죠. 지연이 있습니다. 그리고 이런 지연되어 나타나는 결과마저도 변화량에 정비례하지도 않고, 때로는 역설적이기도 합니다. 바로 이것이 비선형적 지연 이며, 시스템사고가 세상의 복잡성을 해석하는 데 중요한 이유입니다. 마라톤에서 경험하는 시스템사고 마라톤을 달리면서 저는 똑같은 경험을 합니다. 20km, 25km, 30km를 넘어가며 ‘그동안의 훈련량’과 '지금까지 달려 온 운동량'의 누적(적분)값이 드러나기 시작합니다. 달릴 때마다 심박수라는 흐름이 바뀌고, 그 흐름이 누적되며 몸의 상태라는 저량에 간접적으로 영향을 줍니다. 그런데 흥미로운 점은, 이 저량의 변화가 느리게 드러나기 때문에, 몸이 보내는 경고를 늦게 알아차린다는 점입니다. 저는 한때 “쉬지 않고 달리는 것” 을 훈장처럼 여겼습니다. 그래서 달리면서 목격되는 '지쳐 걸어가는 사람들'을 보며 내심 뿌듯했습니다. 마치 인과순환지도에서 ‘쉬지 않고 달리는 노력’ → ‘자기 효능감’ → ‘성취’ → ‘쉬지 않고 달리는 ...

DT 심화 학습: “유량 × 시간 = 저량의 증가분” 개념

이미지
  1. 욕조 모델에서 “유량 × 시간 = 저량의 증가분” 개념 1.1 욕조에 물을 붓는 상황을 상상 유량(Inflow) = 수돗물을 틀어놓는 속도 (예: 20리터/시간, 10리터/시간 등) 저량(Stock) = 욕조에 현재 담겨 있는 물의 양 (예: 몇 리터(L)인지) 우리 일상에서, “수돗물을 20리터/시간(liters per hour, L/h) 속도로 욕조에 채운다면 한 시간에 20리터가 채워진다” 는 경험은 익숙합니다. 이것을 재미있게 표현하면 이렇습니다. "한 시간 동안 채운다고 약속하면 20리터를 채우게 된다." 그런데 만약 약속을 어기고 30분만 채운다면 어떻게 되겠습니까? “수돗물을 20리터/시간(liters per hour, L/h) 속도로  30분(0.5시간) 틀어놓으면, 물은 10리터가 채워진다" 왜냐하면 20 (리터/시간) × 0.5 (시간) = 10 (리터)이기 때문입니다.  그런데 위 식은 엄청난 비밀을 품고 있습니다.  ‘유량’(rate)은  20리터/시간(liters per hour, L/h) 입니다.  이 표현은 단지 한 시간 동안 채우기로 한 약속을 지켰을 때 20리터의 결과물(저량, Stock)을 보여준다는 것일 뿐입니다. 약속일 뿐입니다. 따라서, 실제 약속을 지키는지 안 지키는지는 따져 봐야 합니다.  이것을 수학적으로 표현하면 다음과 같습니다.  유량은 실제 시간당 몇 리터씩 들어가는지 나타내고, 실제로 얼마나 들어갔는지는 그 유량에 ‘물 흐른 시간’을 곱해야 합니다. 그만큼만 욕조의 물이 변합니다.  “유량 × 시간 = 저량의 증가분” 1.2 시스템 다이내믹스의 오일러 적분(Euler Integration) Stella(등 시스템 다이내믹스 툴)는 시뮬레이션을 DT 간격으로 잘라 , 각 스텝마다 Δ Stock    =    ( Inflow rate ) × ( DT )  로 계산합니다. (쉿!, 사실...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4 : Step Size 의 개념에 대한 1단계 해설

이미지
  “Step Size”란 무엇인가? 시스템다이내믹스 모델링을 할 때 가장 중요한 설정 중 하나가 바로 step size(시간 스텝) 입니다. 쉽게 말해, “시뮬레이션을 몇 년(혹은 몇 달, 몇 일) 간격으로 끊어 계산할지”를 결정하는 값이라 할 수 있습니다. 예를 들어, 10년 단위로 끊어서 계산하는 모델과 1년 단위로 끊어서 계산하는 모델 은 같은 이론적 방정식을 쓰더라도, 결과에서 차이가 발생할 수 있습니다. “길게 끊어서 계산하면 오차가 커진다?” 대화 중에서, 수학을 어려워하시는 분께서 질문하셨습니다. “시간을 길게 끊어 계산할수록, 왜 시뮬레이션 오차가 커진다고 하나요? 10년씩 단위로 계산하면 뭐가 문제인지요?” 이는 미분방정식을 수치적으로 풀 때 중간 변화 가 충분히 반영되지 못하기 때문입니다. 한 번에 “10년 치”의 변화를 훅 건너뛰면, 실제 시스템이 10년 동안 서서히 변하는 과정을 제대로 추적하기 어렵게 됩니다. 반면, 1년 단위 또는 1개월 단위처럼 작게 쪼개면, 실제 곡선(연속적 변화)을 더 세밀하게 따라잡을 수 있어 시뮬레이션 결과가 보다 정확해지죠. 왜 이렇게 나누어 계산할까? 시스템다이내믹스에서는 저량(Stock)과 유량(Flow) 간 상호작용을 시간 흐름에 따라 단계별로 업데이트합니다. 예컨대, “다음 시점(예: 다음 달)”이 되었을 때 유량 × (시간 간격) 만큼 저량이 증가(또는 감소)한다고 보고, 이를 계속 누적해 나가는 식이죠. step size가 크면 : 계산 횟수가 줄어들어 속도는 빠를 수 있지만, “중간의 세부 변화”가 무시되어 큰 근사 오차가 생길 수 있습니다. step size가 작으면 : 세밀하게 추적하므로 정확도는 올라가지만, 그만큼 컴퓨터 연산량이 늘어나 시간이 오래 걸립니다. 따라서 “시뮬레이션 목적에 맞추어 적절한 스텝 크기를 선택” 하는 것이 핵심입니다. 작은 스텝이 무조건 좋은 것은 아니다? “그렇다면 무조건 스텝을 최대한 작게 잡으면 좋지 않냐...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4: Joe의 고민, 어느 정도해야 정확한 건가요?

이미지
  Joe의 질문: “How close is close enough?” 이번 포스팅에서는 Chapter 4에서 등장하는 Box 4.1 의 주인공, Joe가 던진 흥미로운 질문을 살펴봅니다. Joe는 시스템다이내믹스(SD) 시뮬레이션에서 DT(델타 t)를 절반으로 줄여가며 정확도를 확인해야 한다는 조언을 이해했지만, 정작 “어느 정도 같으면 ‘비슷하다(essentially the same)’고 할 수 있지?” 라는 궁금증을 느끼고 있습니다. 1. Joe의 고민: “결과가 얼마나 비슷하면 충분히 정확한 것인가?” Joe는 시뮬레이션을 해 보면, DT 를 절반으로 줄일 때마다 결과가 조금씩 바뀐다는 걸 압니다. 문제는 “어느 시점에서 멈추면 되나?(어느 정도 줄여야 하나?)” 라는 것이죠. “최종 시점 결과만 비슷하면 될까, 아니면 중간 경로도 똑같이 따라가야 할까?” “1% 이내면 괜찮다고 할 수 있나, 0.1% 이내여야 하나?” 이는 생각보다 쉽게 대답하기 어려운 문제입니다. 2. 교실에서 답하기 곤란한 이유: “현실 맥락이 다 다르다” 본문에서도 지적하듯이, 교실에서 추상적으로 는 “1% 미만이면 충분히 근사한 것 아닌가?”라고 단정하기 어렵습니다. 왜냐하면 모델링 목표 나 현실 문제의 맥락 에 따라 수용 가능한 오차 범위가 달라지기 때문이죠. 예시 A: 느슨한 에너지 수요 모델 만약 장기 추세만 파악하면 되는 에너지 수요 예측 모델이라면, 2~3% 정도 차이가 나도 큰 문제 없이 “비슷하다”고 칠 수 있습니다. 결국 에너지 정책 방향이나 경향성만 보면 되니까요. 예시 B: 항공기 착륙 시뮬레이션 반면 항공기 착륙 시뮬레이션이나 로켓 발사 시뮬레이션이라면, 1% 오차도 치명적일 수 있습니다. 이 경우엔 DT를 더 줄이든, 고차 적분법을 쓰든 해서 오차를 0.1% 이하로 맞춰야 안심할 수 있겠죠. 3. “전체 패턴 vs. 최종 값” 문제도 중요한 쟁점 Joe는 “시뮬레이션 결과가 전 구간에서 잘 맞아야 하느냐, 아니면 마지막 시점에...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4 : 중학생도 이해(?)할 수 있는 Runge-Kutta 방식과 Euler 방식의 적분 계산법 차이

이미지
  4장에서 적분 방식에 대한 언급이 살짝됩니다. 하지만, 구체적인 설명은 없습니다. 솔직히 모르셔도 됩니다. 소프트웨어에 맡겨서 진행하시고 결과에 대한 내용을 논문이나 보고서에 작성해도 전혀 손색이 없습니다. 보통 기본 값으로 오일러(Euler) 방식으로 처리합니다. 하지만, 가끔, 아주 가끔 룬게-쿠타 방식이 나올 때도 있습니다. 그래서 쉽게 풀어보려고 작성해 봤습니다. 아래 글은 안 보셔도 괜찮습니다. 저처럼 궁금해서 미칠 것 같은 분만 보세요. ^^ 솔직히 중학생도 이해할 수 있다고 자신할 수 없지만, 그대로 쉽게 설명하기 위해 노력했습니다. ^^ 1. 미분방정식을 수치적으로 푼다는 건 무슨 뜻일까? 수학 교과서에서 d y d t = f ( t , y ) 같은 미분방정식을 보면, " t 라는 시간에 따라 y 가 어떻게 바뀌는지”를 나타내죠. 하지만 실제로는 이걸 종이와 연필로 풀기(해석적 해 구하기)가 쉽지 않거나 불가능한 때가 많습니다. 그럴 때 “수치적 방법(numerical method)” 을 써서 조금씩 앞으로 나아가며 y 값을 근사 하는 것이지요. 예를 들어, 처음 시점에서 y ( 0 ) 을 알고 있다면, “조금 뒤( Δ t 후)”의 값인 y ( Δ t ) 를 대략적으로 구하고, 또 그 다음 값 y ( 2 Δ t ) 를 구해나가는 식입니다. 2. 오일러(Euler) 방식: “한 번만 보고 점프!” (1) 어떻게 계산하나? 현재 시점 t t t 에서 y ( t ) 를 알고 있다고 합시다. 미분방정식 d y d t = f ( t , y ) 를 통해, “지금 이 순간의 기울기(slope)”인 f ( t , y ) 를 구합니다. 그 기울기를 그대로 써서 Δ t 만큼 뻗어나가 봅니다. y ( t + Δ t ) ≈ y ( t ) + f ( t , y ( t ) ) × Δ t  이제 시점을 t + Δ t t 으로 옮겨, 이 값을 새로운 y 로 삼습니다. (2) 비유: “직선 하나로 대충 예측하기” 비유...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4 : Step Size에 대한 어려운 이야기: DT ≠ Step Size인 경우는?

이미지
  아래 글에서는 시스템다이내믹스에서 흔히 “ Step Size ”와 “ DT(Delta Time) ”가 동일한 개념처럼 쓰이지만, 실제로는 미묘하게 다른 경우가 있다는 점을 예시와 함께 풀어보겠습니다. 하지만, Step Size = DT 라고 생각해도 문제될 일은 거의 없습니다. 저처럼 궁금해서 미칠 것 같은 분만 아래 내용을 보세요~~ 1. 보통은 “DT = Step Size”로 부른다 시스템다이내믹스(또는 미분방정식 수치해석) 교재나 소프트웨어 매뉴얼을 보면, “DT(델타 t)” 라고 쓰인 항목을 “Step Size” 로 지칭하는 경우가 많습니다. 예: “DT를 1년으로 설정했더니, 1년 단위로 저량이 갱신되는 계단 모양이 나왔다.” 예: “Step Size를 0.25로 해도 결과가 잘 안 바뀐다면, 이제 DT=0.25가 적절하군!” 이렇게 보면 둘 다 “시뮬레이션에서 시간을 쪼개는 간격”이라는 의미로 쓰이기 때문에, 대체로 동일 개념 처럼 받아들여지곤 합니다. 2. 그런데 어떤 맥락에서 차이가 나는가? 일부 소프트웨어나 특정 모델링 방식에서는 ‘DT’ 와 ‘Step Size’ 가 미묘하게 다른 의미를 가집니다. 주로 다음 두 가지 케이스를 예로 들 수 있습니다. (1) 내부 적분 스텝 vs. 보고(Reporting) 스텝 DT(델타 t): 실제 모델의 내부 적분(integration)에서 사용되는 시간 간격. 예: 시스템이 0.1초 간격으로 상태를 재계산. Step Size(보고 간격): 사용자에게 결과를 출력하거나 저장할 때의 간격. 예: 1초 마다 그래프에 찍히도록 설정. 이 경우, “DT = 0.1초”지만, 실제로 화면에 보이는 값은 “Step Size = 1초 단위”로 샘플링되므로, “DT ≠ Step Size” 가 됩니다. 즉, 내부 시뮬레이션 스텝(DT)은 훨씬 촘촘 하고, 사용자에게 보여주는 스텝(보고 간격)은 더 크게 잡을 수 있습니다. 예시 자율주행차 시뮬레이션에서 실제 계산(물리엔진...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 4 : Step Size에 대해 살짝 더 파고 들기

이미지
  1. 기본 개념: “DT는 실제 세계 시간과 직접 대응되지 않는다” Chapter 4에서 Andrew Ford가 거듭 강조하는 포인트는 바로 이것입니다. “ DT(델타 t)는 현실에서 데이터를 수집하는 간격과 별개로, 수치적 오차를 최소화하기 위해서만 결정해야 한다. ” 예를 들어, “분기별 데이터를 구했으니 DT=0.25년(3개월)으로 해야 한다.” “배출량이 10년 주기로 발표되니 DT=10년이면 되겠다.” 라는 접근은 잘못된 것이다, 라고 저자는 말합니다. 오히려 시스템의 실제 변화 와 모델 정확도 가 목표 수준에 도달했는지 등에 따라 DT를 결정해야 한다는 것이죠. 2. Andrew Ford가 제시하는 스텝 크기 결정의 핵심: “반으로 줄여 보기” 책에서 소개하는 핵심 방법 은 간단합니다: DT를 일단 설정 하고(예: 1년) 시뮬레이션을 돌린다. DT를 절반 으로 줄여(예: 0.5년) 다시 시뮬레이션을 돌린 뒤 결과 비교. 큰 차이가 없다면, 이미 충분히 정확한 것일 가능성이 높다. 만약 차이가 크면 다시 절반(0.25년)으로 줄여본다. 이렇게 DT를 단계적으로 줄여 나가며 시뮬레이션 결과가 수렴하는 지점을 찾는 방식은 step-halving 법칙 (halving method)이라고 할 수 있습니다. 실제로 많은 SD 전문가들이 이 방식을 “수렴 테스트” 로 씁니다. 3. “빠른 변화 = 작은 DT, 느린 변화 = 큰 DT”… 정말 항상 그럴까? 책에서 흔히 “시스템 변화가 급격하면 더 작은 DT가 필요하고, 느린 변화라면 큰 DT로도 괜찮다”는 말을 듣습니다. 물론 기본 원칙 으로는 맞습니다만, 이 문장을 액면 그대로 받아들이면 몇 가지 반론적·예외적 상황을 놓칠 수 있습니다. (1) 빠른 것 같아도 ‘변화율(기울기)’가 일정하면 큰 DT도 무방 예시 A: 자율주행차 센서 센서에서 0.1초 간격으로 데이터가 들어온다고 해서 반드시 DT=0.1초로 시뮬레이션해야 할까요? 실제 궤적이나 회전...

이등변 삼각형 게임과 시스템사고 (1) - 지렛대 효과

이미지
  [시스템사고 팟캐스트] 음성으로 요약본을 들어 보세요(5분 50초). 클릭 안녕하세요, 반갑습니다! 오늘은 조금 특별한 게임을 소개해 드리려 합니다. 이름도 생소한 “이등변 삼각형 만들기 게임” 인데요. 처음 들으면 수학 수업에서나 할 법한 활동처럼 느껴지지만, 사실 이 게임은 ‘지렛대 효과(Leverage Effect)’ 를 체감하도록 돕는 일종의 시스템사고 학습 도구입니다. 특히 조직이나 사회 안에서 작동하는 ‘정책 하나가 생각보다 얼마나 큰 영향’을 끼칠 수 있는지, 혹은 ‘정말 열심히 노력해도 왜 별다른 변화가 없는지’를 간접적으로 깨닫게 해줍니다. 오늘 포스트에서는 게임의 간단한 규칙과 진행 방식, 그리고 게임이 시사하는 바를 이야기해 보겠습니다. 1. 게임의 전체적인 개요 이 게임은 여러 명이 넓은 공간에 둥그렇게 서서, 각자 서로 다른 두 사람 을 ‘기준’으로 삼아 움직이는 방식으로 진행됩니다. 플레이어들은 스스로 선택한 두 사람과 같은 거리를 유지 하는 ‘이등변 삼각형 관계’를 계속 만들어야 하죠. 규칙은 어렵지 않습니다. 인원과 공간 대략 10명 이상, 최대 30~40명 정도가 적당합니다. 저는 한 번에 할 때 6명 단위로 게임을 진행합니다. 교실 등의 공간을 고려하면 적당한 것 같습니다.  가로세로 9m 정도 되는 넓은 공간(장애물 없는 곳)에서 진행하면 좋아요. 준비물 특별히 준비할 물건은 없습니다. 사람들이 ‘누가 누구를 기준으로 삼을지’를 구분할 수 있도록, 진행자가 간단한 특징(옷 색깔 등)을 지정해 주면 됩니다. 저는 간단하게 두 사람을 지목해 보라고 합니다.  게임의 핵심 규칙 모든 참가자는 원형을 이루어 서서, ‘A라는 사람’, ‘B라는 사람’을 각각 한 명씩 선택합니다. 플레이어 본인이 직접 선택받을 수도 있지만, 본인은 자기 자신을 고를 수 없습니다. 게임이 시작되면, “내가 기준으로 삼은 두 사람(A, B)과 나 사이의 거리가 같아지도록(이등변 삼각형...

Urban Dynamics의 역설과 시스템다이내믹스 & 시스템사고의 교훈

이미지
  들어가며  도시는 인간 활동의 집약체이며, 그만큼 복잡한 문제와 상호작용으로 가득 차 있습니다. 1969년 Jay Forrester가 발표한 Urban Dynamics 는 이러한 도시 시스템을 동적으로 분석하려는 역사적 시도 중 하나였고, 이후 World Dynamics (1971), Industrial Dynamics (1961)와 함께 시스템다이내믹스(System Dynamics)의 핵심 저작으로 평가받고 있습니다. 당시 Urban Dynamics 는 빈곤층을 지원하기 위한 공공주택 건설이나 복지 정책이 오히려 도시의 쇠퇴를 가속화 할 수 있다는, “반직관적(counterintuitive)”인 주장을 제시하며 큰 파장을 일으켰습니다. 심지어 Forrester 본인은 그런 결론 때문에 “흑인 빈민층을 배제하려는 것 아니냐”라는 비판까지 받았지만, 그가 진짜 강조하고자 했던 것은 “시스템은 가치중립적” 이며, “구조가 행동을 결정한다(Structure drives behavior)” 는 시스템다이내믹스의 원리였습니다. 이번 글에서는 Jay Forrester의 인터뷰 내용과 함께, Urban Dynamics 가 보여준 ‘시스템의 역설’과 왜 이러한 역설이 발생하는지, 그리고 시스템사고와 시스템다이내믹스의 관계에 대해 살펴보고자 합니다. 1. Urban Dynamics의 핵심과 ‘도시 시스템’ 1) 도시를 바라보는 세 가지 축: 산업, 주택, 인구 Forrester는 도시를 크게 산업(Industry), 주택(Housing), 인구(Population) 라는 세 가지 주요 요소로 나누어 모델링했습니다. 산업 : 도시 내 일자리와 경제활동, 생산성이 어떻게 창출되는가 주택 : 신축/노후 주택, 빈곤층/중산층 주택 분포 인구 : 숙련노동자, 관리자, 비숙련·빈곤층 등 다양한 계층 도시 문제는 이 세 가지가 “ 피드백 루프 ”로 연결되는 복잡계 구조 속에서 일어나며, 한 부분을 개선하려는 단기 정책이 나머지 부분에 장기적·...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 3: Joe의 질문 -“Water Released at Dam?” 긴 이름, 괜찮을까?

이미지
  1. Joe의 고민: “이게 수학 맞나…?” Box 3.1에서 Joe 는 당황스러운 마음을 드러냅니다. 과거 수학 수업을 떠올리면, “ x 는 무엇을 나타내고, y 는 무엇을 나타낸다” 하는 식으로 한두 글자 로 된 변수를 정의했었죠. 때론 그리스 문자 ( α , β 등)도 자주 나왔고, “Let x  stand for the water in the reservoir” 같은 문장을 봤습니다. 그런데 이번엔, “water released at dam” 처럼 길고 문장 같은 변수를 쓰고 있으니, Joe 입장에선 “어? 이게 수학 맞나?” 하고 의아해지는 것이죠. 2. 시스템다이내믹스(SD)에서는, 이름을 직관적으로! Andy는 “ 긴 이름 을 써도 상관없다”고 말합니다. 소프트웨어(예: Stella, Vensim) 가 알아서 이 변수들을 기억하고 처리하기 때문에, 우리가 굳이 x , y  같은 단축표현을 사용하지 않아도 된다는 겁니다. 오히려 “water released at dam” 처럼 좀 길더라도 직관적으로 무슨 뜻인지 알 수 있는 이름을 붙이는 게, 팀원들과 소통하기 훨씬 편리하다는 장점이 있습니다. 2.1 “기존의 미분방정식 수업과 뭐가 다른가요?” Joe 가 혼란스러워하는 이유는, 전통적인 미분방정식 수업에서 자주 접했던 ‘기호(symbol)’ 위주의 표기법 과 이 모델이 겉보기 로 꽤 달라 보이기 때문입니다. 이전 수학 시간엔, d P / d t = r P 처럼 모든 변수를 한두 글자로만 표시하는 게 당연했죠. 하지만 SD 는 “ 방정식을 직접 풀기 ”보다는 “ 소프트웨어가 시뮬레이션 을 돌려 주는” 구조입니다. 따라서, 우리가 기호 대신 “stock: population” , “flow: births” 같이 이름을 길게 써도 전혀 문제 없습니다. 3. 이름을 ‘직관적’으로 지으면 좋은 점 모델 이해가 쉬워짐 팀 프로젝트를 생각해 보세요. “ x 1 x_1 ​ ” 대신 “water_in_reservoir”라 쓰면, 다...

Andrew Ford 헌정 강의: 『Modeling the Environment』 Chapter 3 왜 하필 Stock과 Flow일까?

이미지
  안녕하세요. 오늘은 “왜 굳이 Stock과 Flow로 세상을 보자고 할까?” 라는 질문에 답해 보려 합니다. 물리학에는 힘=질량×가속도(F=ma), 에너지=질량×광속²(E=mc²) 등 멋지고 강력한 법칙이 많습니다. 그런데도 시스템다이내믹스(SD) 에서는 “Stock(저량)과 Flow(유량)”라는 관점이 강조되지요. 대체 무엇이 이 관점을 그렇게나 중요하게 만드는 걸까요?  1. “미분으로 살고, 적분으로 드러나는 삶” 먼저, 제 삶에 적용하는 명제를 소개하고 싶습니다: “미분으로 살고, 적분으로 드러난다.” 행동(Flow) : 매 순간 미세하게 이루어지는 변화(“미분”에 해당). 결과(Stock) : 그 미세한 변화들이 시간 동안 축적(적분) 되어 최종적으로 눈에 보이는 상태. 예컨대, 인구가 시간에 따라 몇 명씩 태어나고(Flow),  몇 명씩 사망하고(Flow)나면 ‘현재 인구 수(Stock)’ 가 결정됩니다. 기업의 재무 상태도 마찬가지. 매일의 판매·지출(Flow)이 누적되어 현금 잔고(Stock) 를 형성합니다. 결국, “눈에 보이는 건 Stock, 하지만 바꿀 수 있는 건 Flow” 라는 구조가 자연스럽게 나타납니다. 문제는, 우리가 Stock(결과)만 보며 서둘러 판단하고, Flow(행동)로 개입하려 할 때 시간 지연 이 발생해 종종 예측과 다른 결과(반직관성, Counterintuitive)를 낳는다는 점입니다. 여기서 잠깐! 방금 저는 Stock의 조건을 언급한 것입니다. Stock은 기존 정의와는 달리 멈춰진 것이 아닙니다. 관찰 대상입니다. 그래야 좀 더 다양하게 Stock를 상상할 수 있습니다. 관찰 대상의 Stock이 거리(S)라면 Flow는 속도가 됩니다. v = s/t. 하지만, 관찰 대상, 즉, 관심 대상이 속도라면, Stock이 속도라는 의미입니다. 그러면 Flow는 Stock에 시간을 나눈 것이니 가속도가 됩니다. a = v/t.  따라서, stock은 관찰 대...