엔진 방정식
열역학에서, 엔진은 하나 이상의 형태의 에너지를 기계적인 힘이나 운동으로 변환하는 기계이다. 소프트웨어에서 엔진의 정의는 더욱 모호해진다. 엔진은 복잡한 소프트웨어 시스템의 핵심 구성 요소이다. 예를 들어, 일부 요소가 두 개 이상의 프로그램에 사용되는 경우 해당 구성 요소를 재사용 가능한 라이브러리로 패키징하면 그게 엔진이다. 근데 엔진을 조금 더 잘 정의할 수 있을까?
나는 엔진을 자산과 시간을 들여 효용으로 바꾸는 수학 방정식으로 정의한다.
엔진은 자원과 시간을 소비하여 다른 유용한 자산으로 변환한다. 여기서 유용함이란, 마치 정보의 정의가 단순히 유용한 데이터이듯, 전적으로 인간의 관점에서 주관적이다. 몇 가지 예를 들어보자.
- 경제는 노동, 자본, 천연자원, 시간 등의 자산을 산출물과 서비스로 생산하는 엔진이다.
- 군사 조직은 인력, 장비, 자원, 시간 등의 자산을 보안과 안전의 효용으로 생산하는 엔진이다.
- 정부는 세금, 노동 및 천연 자원과 시간 등의 자산을, 교육, 의료 및 인프라와 같은 재화와 서비스로 생산하는 엔진이다.