프로그래머는 단순하게 생각한다
-
프로그래머는 항상 목적을 달성하기 위한 최단 경로를 모색한다.
-
쓸모없는 것을 생략하고, 사물을 단순하게 생각한다
-
따라서 단순하게 생각하기 위해서, 모델을 사용하여 생각한다는 것이다.
-
사물을 단순하게 표현하기 위해서는 복잡한 사물로부터, 본질은 남겨둔 채 쓸모없는 부분을 제거해야 한다.
모델 작성법
사물을 단순화 한다.
-
가능한 한 불필요한 부분을 제거하고, 사물의 본질을 돋보이도록 해야 한다.
-
피카소의 그림에서 알 수 있듯이 처음부터, 단순화된 황소를 그리려고 한 것이 아니라, 여러 번 스케치를 해봄으로써 황소의 어떤 부분이 본질인지를 찾아내려고 노력하였다.
-
모델을 만들때도, 이와 같은 현상이 일어난다. 생각하기 위해서 모델을 만들고, 모델을 만듦으로써 더 깊이 있게 생각할 수 있다.
-
머리속에서 생각만 하는것만으로는 막다른 길에서 움직이지 못하는 경우가 많다. 이때 생각하고 있는 것을 바깥으로 꺼내서 표현해봄으로써 새로운 아이디어를 얻을 수 있다.
-
맨 처음부터 훌륭한 모델을 만들자는 것이 아니라, 우선은 머리속에서 생각하고 있는 것을 머리 바깥으로 끄집어내서 모델 형태로 표현하고, 그 모델을 살펴보면서 다시 생각해보는 것이 중요하다.
모델의 기본 구조란?
-
모델은 ‘요소와 요소 사이의 관계’를 나타낸 것이다.
-
사람들은 흔히 ‘이해하려면 분해해보라’고 한다. 복잡한 사물을 있는 그대로 이해하는 것이 힘들기 때문이다.
-
모델을 작성할 때 중요한 점은 목적과 관점을 명확하게 하는 것이다.
-
같은 대상으로 하더라도, 목적이 다르면 관점이 달라져서 사물을 바라보는 형식이 서로 다르게 되기 때문이다.
-
어떤 사물에 관한 모델은 유일 무이하게 단 한 개만 존재하는 것이 아니라, 목적과 관점에 따라서 다양하게 만들어질 수 있다.
요소를 추출하여 작성한다.
-
복잡한 사물은 여러 개의 요소로 구성되어 있다. 모델링에서 가장 바람직한 방법은 각 요소를 모두 찾아내서 열거하는 작업 부터 시작해보는 것이다.
-
발상을 위한 사고법에서는 ‘발산’과 ‘수렴’의 사고과정을 반복한다.
-
모델의 상세한 내용을 작성하는 경우, 깊이 있게 숙고 하고, 다시 폭넓게 생각하면서 이번 작업의 목적에 부합하지 않는 요소들을 제거하여 대담하게 수렴시켜 나가는 과정을 수행한다.
-
이러한 작업의 초기에서는 무엇이든지 머리속에서 생각나는 것을 끄집어내서 표현해보도록 한다.
중요한 것을 요소로 만든다
-
그러나 정말로 무엇이든지 생각나는 모든 것을 끄집어내서 표현하면 다 좋다는 의미는 아니다.
-
복잡한 사물을 구성하는 ‘중요한 요소들’을 모두 열거해 보는 것이 이 단계에서 해야할 작업이다.
요소는 명사로 작성한다
-
모델이라는 것은 사물을 단순하게 표현한 것이므로 때에 따라서는 모호함이 표함되어 있어서 그 의미를 전달하기 어려운 경우도 있다.
-
‘요소를 명사로 한다’라는 점을 주의해서 모델링하면 자신의 의도와 모델의 표현을 서로 일치하게 만들 수 있다.
관계를 명확하게 한다
-
요소를 추출하여, 열거한 후에는 각 요소 사이의 관계를 찾아내도록 한다.
-
그러고 나서 요소를 사각형으로 표현하고 관계를 연결선으로 나타낸다. 이러한 작업만으로 복잡한 사항을 정리할 수 있다.
배치를 조정한다.
- 모델링 작업에서 무엇을 요소로 추출할 것인가 그리고 요소들 사이의 관계를 어떻게 표현할 것인가가 가장 중요하지만, 이와 거의 같은 수준으로 중요한 작업이 바로 모델의 전체 모습(어떻게 알기 쉽게 표현할 것인가의 문제) 즉 배치문제이다.
모델을 사용하면 얻게 되는 장점
1. 도식화의 이점을 누릴 수 있다.
2. 전체 모습을 파악할 수 있다.
3. 논리적으로 생각할 수 있다.
4. 발상을 넓힐 수 있다.
빈약한 모델에서 발견할 수 있는 네 가지 공통점
-
모델을 작성한다는 것은 처음에는 간단한 듯하지만 뜻밖에 깊이가 있는 작업으로 익숙해지지 않으면 좀처럼 좋은 모델을 만들어낼 수 없는 경우가 많다.
-
빈약한 모델의 공통점은 아래와 같다.
1. 목적과 관점이 정해져있지 않거나, 명확하지 않다.
2. 요소가 망라되어 있지 않거나, 불필요한 요소를 포함하고 있다.
3. 요소의 추상화 수준이 너무 높거나 너무 낮다.
4. 요소들 사이의 관계를 잘 표현하고 있지 못한다.
자신의 입장을 확인한다.
-
모델링 대상에 대해서, 자신이 어떤 위치에 있는지를 의식할 수 있다면, 자연스럽게 자신이 그 대상물의 어떤 측면에 초점을 맞춰야할 것인지 (또는 맞추고 싶은지)가 명확해진다.
-
모델링은 무엇때문에 하는가? 라는 질문에 대해서 한마디로 대답해보는 것도 목적과 관점을 명확하게 하는데 도움이 된다.
-
목적과 관점은 모델을 만들어가면서 결정해간다.
-
처음부터 모델을 만드는 목적과 관점이 명확하게 결정된 경우는 그리 많지 않다. 따라서, 목적을 처음부터 명확하게 한마디로 대답할 수 없더라도 괜찮다.
-
따라서, 모델을 만들면서 목적과 관점에 대해서 다시 생각해보고 모델을 만들고.. 이러한 과정을 반복하는 것이 중요하다.
필요한 요소들을 부족함 없이 망라하기 위한 기법
-
요소를 일단 삭제해보고, 그래도 모델을 이해할 수 있는지 아닌지를 확인해보는 것이다
-
요소가 부족한 경우에는, 모델의 만든 후에 위화감 또는 불안정감이 있는지를 확인하고, 시행착오를 거쳐가면서 모델을 수정해나간다.
관계를 적절하게 표현하기 위한 요령
-
관계에 빠진 점이 없는지를 확인한다.
-
문장으로 성립되는지를 확인한다. 요소와 요소 사이의 관계가 정말로 성립하는지 논리적으로 생각해봄으로써 관계의 적절성을 확인할 수 있다.
-
‘나무에서 떨어진다’와 같은 동사구를 명사화하여 요소로 추출하는 것이 때로는 더 좋은 모델을 만드는데 중요하다.
참고 문헌
>> Home