인간은 일정한 체온을 일정한 온도 범위로 유지하는 항온동물이다.

몸 안에서 일어나는 생화학 반응들도 이 온도 범위에서 잘 동작하도록 최적화 되어 있다.

그래서 몸 안에는 보일러처럼 원하는 온도를 설정하고 그에 맞게 가열하는 시스템이 있다.

보일러 조절기를 보면 보통 설정 온도와 실제 온도가 표시 된다.

우리 몸에도 설정 온도와 실제 온도가 있다.


설정 온도(Set point)는 몸의 상태에 따라서 계속 변한다. 

하루를 주기로 해서 낮에는 설정 온도가 높아져서 왕성하게 활동하고

밤에는 설정 온도가 낮아지면서 잠을 자게 된다.

병원체에 감염 되었을 때도 설정 온도를 올려서 몸에서 열이 나게 한다.


실제 온도는 측정 부위에 따라 조금씩 다른데, 기준이 되는 것은 심부 체온(Core temperature)이다.

심부 체온은 인체 내부 장기의 온도이다. 보통 곧창자(rectum)에서 잰 체온을 심부 체온으로 생각한다.

입이나 귀에서 재는 체온은 심부 체온을 정확하게 반영하지는 않지만, 측정하기 간편해서 체온 측정에 주로 사용한다.


추위나 더위를 느끼는 것은 설정 온도와 실제 온도의 차이로 생각할 수 있다.

설정 온도가 실제 온도보다 높으면 가열이 필요한 상황이다.

몸이 이런 상태이면 추위를 느끼면서 열 발생을 늘리게 된다.

반대로 설정 온도가 실제 온도보다 낮으면 냉각이 필요하다.

이때는 더위를 느끼면서 열 발생을 줄이고 땀 등으로 열을 내보낸다.


몸에서 열을 발생시키려면 연료의 공급이 필요하다. 연료의 공급은 혈액을 통해서 이루어진다.

열 발생이 많아지면 연료도 더 많이 필요하게 되고 그 만큼 혈류량도 늘어나야 한다.

혈류량이 늘어나려면 심장이 더 빨리 뛰게 된다.

한의학에서는 심장이 빨리 뛰는 것을 삭맥(數脈), 느리게 뛰는 것을 지맥(遲脈)이라고 해서 몸의 한열 상태를 추정하는데 쓴다.

심박수와 심부 체온이 양의 상관 관계가 있음을 알 수 있다.

심박수로 심부 체온을 추정하는 알고리즘을 만든 연구도 있다.[각주:1]


한의사는 진맥을 할 때 심부 체온도 추정한다.


참고 : Human body temperature https://en.wikipedia.org/wiki/Human_body_temperature


현생 인류가 지구상에 나타난 후 여러 지역으로 이동하면서 여러 기후를 만나게 되었다.

그리고 여러 세대를 거치면서 각각 기후에 적응하는 형태들이 나타났다.

이러한 적응의 흔적을 체질이라고 할 수 있다.

기후 요인 중에 대표적인 것이 온도이다.

온도 적응은 추위에 대한 것과 더위에 대한 것으로 나눌 수 있다.

추위에 대한 적응은 냉대기후, 한대기후, 큰 일교차에 대한 적응, 세 가지로 나눌 수 있다.

더위에 대한 적응은 고온습윤기후, 고온건조기후, 두 가지로 나눌 수 있다.[각주:1]

이 중에서 큰 일교차에 대한 적응과 고온건조기후 적응은 중복되는 상황이다.

따라서 추위와 더위에 대한 적응은 크게 네 가지로 정리할 수 있다.


1. 고온습윤기후

기온이 높은 상황에서는 몸을 식히는 일이 중요한 문제가 된다.
일반적인 때에는 땀을 통해서 몸을 식히는 것이 효율적이지만 습도가 높아지면 땀의 증발이 잘 안되기 때문에 효율이 떨어진다.
이때 가능한 방법은 체표로 혈류를 많이 보내서 체내의 열을 전도와 대류를 이용해서 내보내는 것이다.
피부는 수분을 많이 함유하고 항상 촉촉한 상태를 유지할 것이다.
몸에서 열을 많이 발생시키지 않는 것도 중요하기 때문에 몸에서 열 발생과 관련된 부분은 덜 발달하게 된다.

2. 고온건조기후

습도가 낮은 상황에서는 몸을 식히는 것보다도 몸 안의 수분을 보존하는 것이 더 중요하다.
고온습윤기후와는 반대의 상황이 벌어진다.
수분 손실을 막기 위해서 혈류는 체표보다는 체내 쪽에 더 많아지게 된다.
땀은 최소량의 수분으로 열을 식히는 정도로만 사용되고 많이 흘리지는 않는다.
심부체온은 높게 설정되어서 어느 정도 높은 온도에서도 더위를 많이 느끼지는 않는다.
고온건조한 사막 같은 곳에서는 밤이 되면 온도가 급격히 떨어진다.
이를 견디기 위해서는 밤에도 몸에서 열을 많이 발생시킬 수 있는 능력이 필요하다.
몸에서 열 발생과 관련 있는 가슴부위가 발달하게 된다.
원하는 온도를 유지하는데 적은 에너지가 드는 것이 더 효율적이다.
이런 몸의 경우 열용량이 작은 것이 좋다. 체내 수분함량이 적고 마른 형태가 되는 것이다.

3. 한대기후

한대기후에서는 열 차단을 통해 추위에 적응하게 된다.
피하지방이 두껍게 쌓이고 몸 형태는 둥글둥글하게 해서 될 수 있으면 체표면적을 줄이는 것이 유리하다.
혈류는 체표보다는 체내 쪽으로 더 많이 흐르게 된다.
몸에서 열 발생을 많이 시킬 필요는 없기 때문에 심부체온이 낮게 설정되어서 추위를 덜 타게 된다.

4. 냉대기후

냉대기후는 한대기후보다 더 낮은 온도에 지속해서 노출된다.
열 차단만으로 추위를 이기기에는 한계가 있다. 그래서 몸의 대사율을 높여서 적응하게 된다.
몸에서 많은 열을 내고, 체표로도 혈류가 발달해서 체내의 열을 전달할 수 있게 한다.
많은 열을 내기 위해서 먹는 것도 잘 먹어야 한다.
이누이트족이 이러한 특성을 보인다. 육식 위주의 식사를 하고 신체 대사율도 높다.[각주:2] [각주:3]


위 내용을 표로 정리하면 아래와 같다.

 

고온습윤

고온건조

한대

냉대

 체표 혈류

+

-

-

+

 발열 능력

-

+

-

+

 사상체질

 소음인

 소양인

 태음인 표한병

 태음인 리열병


물리학에서는 대칭성을 중요하게 생각하는데 위의 표는 멋진 대칭성을 보여주고 있다.

체질하면 주로 이제마의 사상체질을 떠올리게 되는데 사상체질을 위에 대응시킬 수 있다.

그런데 사상체질은 대칭성이 잘 맞지 않는다.

이런 경우 물리학자들은 기존 이론을 의심하게 된다.

나 역시 사상체질 분류가 의심스럽다.

대칭성을 맞추기 위한 새로운 모델의 도입.

물리학의 역사에서 많이 볼 수 있는 장면이다.

한의학에도 적용해 볼 만 하다.





나는 물리학을 전공하고 게임 개발자로 일했고, 다시 한의학을 공부했다.

이제 이것들을 엮어서 하나의 그림을 만들어 보려고 한다.


물리학에서는 대상을 어떻게 이해해 나갈까?

먼저 대상을 관찰한다.

그리고 반복적으로 나타나는 현상들을 정리해나간다.

이 과정에서 중요하지 않은 것들은 과감히 생략하거나 무시되기도 한다.

운동 법칙을 얘기할 때 마찰력을 무시하는 것처럼 말이다.

이렇게 해서 핵심적인 규칙이 드러나면

규칙들을 모아서 대상을 설명할 수 있는 모델을 만든다.

모델이 만들어지면 이 모델이 대상을 적절하게 설명할 수 있는지 실험을 통해 검증한다.

이 모델이 여러 대상이 보이는 현상들을 일관되게 설명할 수 있으면 법칙으로 통용되게 된다.


빛은 직진한다.

이 현상은 빛을 입자처럼 생각해서 외부에서 힘을 받지 않고 등속으로 운동하는 것으로 설명할 수 있다.

빛의 입자 모델이 확립되면 빛의 반사도 입자의 충돌로 설명할 수 있다.

에너지 손실 없이 벽과 충돌하는 과정으로 생각할 수 있다.

빛이 반사될 때는 입사각과 반사각이 같다는 것이 자연스럽게 설명된다.


설명하는데 모델이 있고 없고의 차이는 이렇게 중요하다.

확립된 모델이 있으면 알고 있지 않은 규칙도 추측해 낼 수가 있다.


게임 개발에서는 반대의 과정을 거친다.

마치 세상을 창조하는 신의 입장과도 같다.

우리가 알고 있는 현상과 비슷하게 보이도록 모델을 설정하고 규칙을 정한다.


격투 게임을 만들 때는 체력(HP)이라는 값이 줄어드는 모델을 설정한다.

상대방의 공격을 받으면 HP값이 점점 줄어든다는 규칙을 추가하고

HP값이 0이 되면 쓰러져서 지게 된다는 규칙도 추가한다.

이렇게 해서 프로그래밍을 하면 격투 게임은 사람들이 서로 싸우는 모습과 비슷하게 보인다.


물리학에서는 

 현상 → 규칙들 → 모델

의 과정이라면 


게임개발에서는

 모델 → 규칙들 → 현상

의 과정이 된다.


한의학에는 인체에서 일어나는 많은 현상에 대한 면밀한 관찰들이 있다.

그리고 이러한 관찰을 통해 알아낸 규칙들도 있다.

하지만 이러한 규칙들을 통합적으로 설명하는 모델은 불완전하다.

인체를 오장육부라는 모델을 가지고 오행의 상생상극이라는 관계를 통해 설명하고 있으나 그저 설명을 위한 설명일 뿐이다.

오행의 상생상극을 가지고서는 인체에서 새로운 규칙이나 현상을 추측해 낼 수가 없다.


내가 하려는 것은 인체에 적용되는 규칙들을 통합적으로 설명할 수 있는 모델을 만드는 것이다.

인체 역시 물리법칙의 적용을 받으므로 물리학적인 모델이 기초가 될 것이다.

물리학적인 모델이 설명할 수 없는 부분은 게임 개발에서 했듯이 몇 가지 규칙들을 추가해서 현상과 부합하도록 만들면 된다.





앞에서 설명한 것처럼 우리 몸의 여러 가지 활동들은 체액이 어디로 몰려 있는가로 설명될 수 있다.

여기서 '어디로'를 설명할 때 우리 몸의 구획을 나누어서 설명하면 단순하고 이해하기 쉽다.


먼저 머리, 가슴, 배로 나누는 것은 아주 자연스럽다.

머리는 따로 떨어져 나와 있고 가슴과 배는 가로막으로 구분되어 있다.

배는 다시 윗배와 아랫배로 구분될 수 있다.


 

 기관

 기능

 머리 

 뇌

 정신 활동

 가슴

 심장, 폐

 호흡, 혈액 순환

 윗배

 간, 위, 췌장, 비장, 소장

 소화, 흡수

 아랫배

 신장, 대장, 방광, 생식기

 배설, 생식


신장의 경우 위치상으로는 윗배의 뒤쪽에 있지만 복부동맥의 분지 상으로 볼 때 아랫배에 분류하는 것이 자연스럽다.

상장간막동맥 아래쪽에서 동맥이 분지되는 기관의 경우 아랫배에 해당하는 것으로 생각할 수 있다.


이렇게 나누면 이제마가 동의수세보원 장부론에서 신체를 폐비간신 네 부위로 나눈 것과 비슷하게 된다.


여기에 인체를 둘러싸고 있는 피부를 추가하면 아래와 같은 그림이 된다.

심장이 1분동안 박출하는 혈액용량(L/min)을 심박출량이라고 한다.

이 값을 단위만 m3/s로 바꿔주면 가슴 부위의 혈류량이 된다.

혈액이 몸에서 빠져나가지 않으면 총량은 일정해야 하므로 아래과 같은 관계가 성립된다.


QT = { QC + ( QUA + QLA ) } + QD


QT : 가슴(thoracic) 부위 혈류량

QC : 머리(cephalic) 부위 혈류량

QUA : 윗배(upper abdominal) 부위 혈류량

QLA : 아랫배(lower abdominal) 부위 혈류량

QD : 피부(dermal) 부위 혈류량


괄호는 연관성을 가지고 변화하는 무리를 표시한다.

{ }는 인체 내부, ( )는 하행대동맥에 연결된 복부이다.

체표로 혈액이 몰릴 때는 QD가 증가하고 QC + QUA + QLA 가 감소한다.

가슴을 중심으로 위쪽으로 혈액이 몰릴 때는 QC가 증가하고 QUA + QLA 가 감소한다.

하행대동맥으로 가는 혈류량이 감소하는 것이다.


이 식을 통해 앞서 말한 몰아주기가 간단히 설명된다.

QT가 일정할 때 QUA가 증가하면  QC + QLA + QD 가 감소한다.

더 정확하게는 QUA가 증가하기 위해  QC + QLA + Q가 감소해 주는 것이다.

윗배로 혈액이 몰리기 위해서는 머리, 아랫배, 피부가 혈관을 수축시켜서 혈류량을 줄여 양보하는 것이다.

윗배에서 음압을 발생시켜서 혈액을 능동적으로 끌고 가는 체계가 아니기 때문이다.

말 그대로 혈액을 몰아주는 것이다.


스트레스받았을 때 밥 먹으면 소화가 안 될 때가 있다.

QC가 감소할 수 없는 상황이기 때문에 QUA가 필요한 만큼 증가하지 못한 것이다.


  



보일러 배관에는 각 방으로 가는 물의 양을 조절하는 밸브가 있다.

밸브를 조절해서 어떤 한 방으로만 물이 더 많이 가게 할 수 있다.

보일러에서 나오는 물의 양이 일정할 경우에 다른 방은 상대적으로 물이 적게 가게 된다.


우리 몸에서는 심장이 피를 뿜어낸다.

각 장기로 가는 피의 양은 혈관의 확장과 수축에 의해 조절된다.

밥을 먹으면 소화기 쪽으로 피가 몰리고 다른 부분은 상대적으로 피가 적게 가는 식이다.


이때 '많다, 적다'라는 표현은 시간당 흐른 부피로 명확하게 정의할 수 있다.

몸에서는 피가 흐르는 것이므로 이것이 곧 혈류량이다.

혈류량은 다시 혈관의 단면적과 혈류 속도의 곱으로 나타낼 수 있다.


Q= v × A


Q : 혈류량(m3/s)

v : 혈류 속도(m/s)

A : 혈관 단면적(m2)


인간은 항온 동물이다.

우리 몸은 항상 일정한 체온을 유지하려고 한다.

이와 비슷한 시스템이 집마다 하나씩 있다.

바로 보일러이다. 

보일러는 집안 온도를 항상 설정된 온도로 유지해 준다.


보일러에는 연료를 태워서 열을 내는 부분이 있다.

열 발생이 제대로 되지 않으면 집이 춥다.

우리 몸에서도 열 발생이 제대로 되지 않는 경우가 있는데 이것을 양허(陽虛)라고 한다.


물을 데울 때 물의 양이 너무 부족하면 열용량이 작아서 물의 온도가 급격히 올라간다.

이것이 음허(陰虛)이다.


보일러에서 물이 데워지면 펌프가 물을 돌려서 배관을 따라 따뜻한 물이 이동하게 된다.

아무리 따뜻한 물이 있더라도 물이 돌지 않으면 집은 춥다.

물의 운동성이 떨어져서 에너지 전달이 잘 안 되는 상태, 이것이 기허(氣虛)이다.


혈허(血虛)의 경우에는 위의 보일러 모델로는 잘 설명이 되지 않는다.

혈허는 적혈구를 통한 산소 운반에 장애가 있는 상태이다.

혈허의 증상, 혈허에 쓰이는 본초들을 통해 역으로 생각해 볼 수 있다.



우리 몸의 절반 이상은 물로 되어있다.

물리적으로 물이 갖는 특성 중 중요한 것은 비열이 크다는 것이다.

비열이 크면 에너지의 출입이 있어도 온도 변화가 크지 않다.

바로 이런 특성이 우리 몸의 항상성 유지에 도움을 준다.

물은 기화열도 크다.

적은 양의 물을 증발시켜도 쉽게 온도 조절을 할 수 있다. 

우리 몸은 이런 원리를 이용해서 효율적으로 체온을 조절하는 시스템을 가지고 있다.


그 때문에 건강한 몸을 위해서는 적정량의 수분 보유가 중요한 문제가 된다.


1991년 리누스 토발스는 유닉스의 기능을 하는 리눅스라는 소프트웨어를 개발해서 그 소스를 세상에 공개했다.

그 이후 리눅스는 폭발적으로 성장해서 세상을 바꾸었다.

오늘날 사람들 손에 들려있는 스마트폰, 인터넷의 수많은 서버에 리눅스가 들어가 있다.


2018년 나는 한의학의 기능을 하는 오픈소스 한의학을 개발해서 세상에 공개하려 한다.

오픈소스 한의학은 한의학 고서에 담겨 있는 인체에 대한 깊은 이해를 물리적인 모델로 재해석하고 검증하는 것이다.

이 과정에서 사용되는 용어들은 압력, 온도와 같은 측정 가능한 물리량들이다.

설명 모델은 우리가 감각을 통해서 직관적으로 이해할 수 있는 고전물리적인 모델이다.

검증은 학문 분야에 상관없이 다양한 현대과학의 성과물들을 이용할 수 있다.


과학적인 사고력과 통찰력을 가진 사람은 누구나 오픈소스 한의학 개발에 참여할 수 있고 그로 인해 발전은 더욱 가속될 것이다.

건강에 관심이 있는 사람은 누구나 우리 몸이 가진 논리 체계를 들여다볼 수 있을 것이다.


한의학은 한의사들만이 아는 그 무엇이 아니라 인류 모두의 것이 될 것이다.

오픈소스 한의학은 세상을 바꿀 것이다.


목차

  1. 물리학, 게임 개발, 한의학
  2. 한의학의 원리
  3. 인간은 항온동물
  4. 보일러와 기혈음양
  5. 몰아주기
  6. 구획 나누기
  7. 체질의 탄생
  8. 에어컨과 선풍기 - 오한과 오풍
  9. 발열이라는 부작용
  10. 저절로 나는 땀 - 자한
  11. 새는 바가지 - 치밀이음(Tight Junction)


한의학에서는 체액 분포를 조절해서 병을 치료한다.

이것을 달리 표현하면 '기(氣)를 조절하는 것'이다.

체액 분포를 조절하는 방법은 여러 가지가 있다.

한의학의 치료법인 한약, 침, 뜸, 부항, 도인, 안마 등등이 모두 이러한 원리로 설명될 수 있다.

또 이러한 원리에 기반한 치료법은 얼마든지 새로이 추가될 수 있다.



Before you start

prj 

- wxWidgets

- RapidSVN

  • All target Platform is set to Win32.

1. wxWidgets

  • Open Visual Studio Solution file 'wxWidgets/build/msw/wx_vc15.sln'.
  • On the toolbar, choose Release from the Solution Configurations list box.
  • Build solution.

2. RapidSVN

  • Open Visual Studio Solution file 'RapidSVN/build/vc2005/rapidsvn.sln'.
  • On the toolbar, choose Unicode Release from the Solution Configurations list box.
  • Select librapidsvn project and open project properties.
    • C++ -> Preprocessor -> Preprocessor Definitions : Remove snprintf=_snprintf;
    • Repeat for libsvncpp and rapidsvn project.
  • Select rapidsvn project and open project properties.
    • Linker -> Input -> Additional Dependencies :
      Replace wxbase30u.lib;wxmsw30u_core.lib;wxmsw30u_adv.lib; with wxbase31u.lib;wxmsw31u_core.lib;wxmsw31u_adv.lib;
    • Linker -> General -> Additional Library Directories : 
      Replace $(SUBVERSION)/lib/apr;$(SUBVERSION)/lib/apr-util;$(SUBVERSION)/lib/apr-iconv;$(SUBVERSION);
      with $(SUBVERSION)/../apr/Release;$(SUBVERSION)/../apr-util/Release;$(SUBVERSION)/../apr-iconv/Release;$(SUBVERSION)/Release/build/win32;
  • Find '*.lib' files under svn/Release/subversion and move to svn/Release/build/win32.
  • Copy apr-util/xml/expat/lib/LibR/libexpat.lib to svn/Release/build/win32.
  • View -> Other Windows -> Property Manager
    • Select librapidsvn, libsvncpp, rapidsvn and right click -> Add New Project Property Sheet... -> Add
    • Expand 'librapidsvn' tree view -> Unicode Release | Win32 -> PropertySheet
      • User Macros -> Add Macro
        • Name : WX
        • Value : ..\..\..\..\wxWidgets
      • User Macros -> Add Macro
        • Name : SUBVERSION
        • Value : ..\..\..\..\svn
      • C++ -> General -> Additional Include Directories :
        Set to $(SUBVERSION)/subversion/include;$(SUBVERSION)/../apr/include;$(SUBVERSION)/../apr-util/include
  • Build rapidsvn project.


+ Recent posts