6월, 2009의 게시물 표시

논리적 사고를 위하여 - 지적 추상화

소프트웨어를 연구 개발하는 연구원들에게 논리적 사고는 매우 중요하다. Problem Detection Problem Scrutiny Problem Solving 또, 정확하고 논리적인 커뮤니케이션 과 직접 경험하지 않은 다양한 영역의 이해 를 위해서도 매우 중요한 역할을 한다. 서울대 문병로 교수는 쉽게 배우는 알고리즘이란 책의 머리말에서 다음과 같이 기술하고 있다. 알고리즘은 그 자체로도 중요하지만 학습 과정에서 체계적으로 생각하는 방법을 배우게 된다. 알고리즘 하나를 배우면 그것이 취급하는 현재의 문제 하나를 해결할 수 있지만, 생각하는 방법을 배우면 미래의 문제를 미리 해결해두는 것이다. 알고리즘에서 다루는 여러 가지 사고 기법 중에서 특히 중요한 것은 귀납적 사고다. 이것은 크기가 다르지만 동일한 성격의 문제들간의 관계에 의해 문제를 파악하는 방식이다. 얼핏 보기에 귀납적 현상과 별로 관계없어 보이는 알고리즘들도 귀납적 관점에서 바라보면 보다 간명하게 파악할 수 있는 경우가 많다. 이것은 문제를 대하는 데 있어 미시적 관점에서 거시적 관점으로의 도약을 의미한다. 알고리즘을 통해 관점의 도약이 일어나면 지적 추상화(Abstraction)의 레벨이 높아진다. 지적 추상화는 하위의 개념들을 결합하여 상위의 고급 개념들을 만들어 나가는 지적 발전의 단계로 한 분야의 전문가는 모두 이런 과정을 거친다. "말이 통하지 않는다"는 것은 추상화의 레벨이 다르기 때문인 경우가 흔하다. 높은 추상화 레벨은 연구와 개발에 있어 정신적인 여유를 갖기 위해 매우 중요하다. 자신이 전혀 모르는 새로운 응용 분야를 접해도 "까짓 것 조금만 들여다보면 되지" 하는 배짱도 생긴다. 이론적인 빌딩 블록은 새로운 주제를 빠른 시간에 파악할 수 있게 해준다. 알고리즘에 관한 글이지만, 지적 추상화의 중요성에 대해 잘 표현하고 있다. 어떻게 하면 연구원들이 이 중요한 사고 능력을 배양할 수 있을까? 먼저 생각을 정리하는 습관을 가져야 한다. 차분히 생각을