TAF – Tree and Flow #1 : Flow part
일단 아주 원론적인 프로그래밍으로 돌아가보겠습니다.
상태
pnp트랜지스터라는 걸 만들어내는데 성공한 인류는 곧장 플립플롭을 생각해냅니다. 바로 근대적인 컴터의 탄생의 순간이죠. 이러한 물리적인 배경을 명쾌하게 정리한 폰노이만 박사의 논문은 순식간에 퍼져 앞다투어 현대적인 컴터를 폰노이만 식으로 개발하게 되었습니다.
이게 비극이라면 비극이고 다행이라면 다행입니다만 이 사건 이후 우리가 인식하는 보편적인 컴터는 폰노이만 머신이 대부분이란 겁니다.
폰노이만 머신의 특징은 여러 가지가 있으니 검색해보시면 엄청 나올 겁니다. 이러한 특징 중에 가장 두드러진 부분은 상태라는 개념을 사용한다는 겁니다. 특정한 상태를 레지스터에 담아두고 ALU에서 상태변환을 한 뒤 다시 적재하는 스타일은 자연스럽게 현재의 상태를 저장하도록 유도합니다. 따라서 컴터를 통제하기 위해 사용하는 프로그래밍에서도 상태를 사용한다는 건 어찌보면 너무 당연합니다.
상태를 변화시키고 상태를 관찰하며 상태에 반응하는 것이 프로그래밍이라고 해도 과언이 아닐 만큼 상태형 언어는 주류입니다. 이에 반해 함수형 언어는 상태에 집중하지 않고 문제를 함수로 분활하여 해결합니다만 이게 일반인들에겐 잘 받아들여지지 않는다는 게 문제겠죠. 사람들은 정말이지 상태라는 개념과 상태를 변화시킨다는 개념을 친숙하게 받아들입니다. 인간의 언어도 그렇게 생긴 면이 많습니다. 오늘 날씨는? 오늘 기분은? 많은 대화가 상태 추척이나 변화에 사용됩니다.
상태에 대해서는 켄트백의 구현패턴에서도 매우 자세하게 설명하고 있으니 나중에 찾아보세요.
Continue reading ‘TAF – Tree and Flow #1 : Flow part’ »