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

소프트웨어를 연구 개발하는 연구원들에게 논리적 사고는 매우 중요하다.
  • Problem Detection
  • Problem Scrutiny
  • Problem Solving
또, 정확하고 논리적인 커뮤니케이션직접 경험하지 않은 다양한 영역의 이해를 위해서도 매우 중요한 역할을 한다.

서울대 문병로 교수는 쉽게 배우는 알고리즘이란 책의 머리말에서 다음과 같이 기술하고 있다.

알고리즘은 그 자체로도 중요하지만 학습 과정에서 체계적으로 생각하는 방법을 배우게 된다. 알고리즘 하나를 배우면 그것이 취급하는 현재의 문제 하나를 해결할 수 있지만, 생각하는 방법을 배우면 미래의 문제를 미리 해결해두는 것이다. 알고리즘에서 다루는 여러 가지 사고 기법 중에서 특히 중요한 것은 귀납적 사고다. 이것은 크기가 다르지만 동일한 성격의 문제들간의 관계에 의해 문제를 파악하는 방식이다. 얼핏 보기에 귀납적 현상과 별로 관계없어 보이는 알고리즘들도 귀납적 관점에서 바라보면 보다 간명하게 파악할 수 있는 경우가 많다. 이것은 문제를 대하는 데 있어 미시적 관점에서 거시적 관점으로의 도약을 의미한다.

알고리즘을 통해 관점의 도약이 일어나면 지적 추상화(Abstraction)의 레벨이 높아진다. 지적 추상화는 하위의 개념들을 결합하여 상위의 고급 개념들을 만들어 나가는 지적 발전의 단계로 한 분야의 전문가는 모두 이런 과정을 거친다. "말이 통하지 않는다"는 것은 추상화의 레벨이 다르기 때문인 경우가 흔하다. 높은 추상화 레벨은 연구와 개발에 있어 정신적인 여유를 갖기 위해 매우 중요하다. 자신이 전혀 모르는 새로운 응용 분야를 접해도 "까짓 것 조금만 들여다보면 되지" 하는 배짱도 생긴다. 이론적인 빌딩 블록은 새로운 주제를 빠른 시간에 파악할 수 있게 해준다.

알고리즘에 관한 글이지만, 지적 추상화의 중요성에 대해 잘 표현하고 있다.
어떻게 하면 연구원들이 이 중요한 사고 능력을 배양할 수 있을까?
먼저 생각을 정리하는 습관을 가져야 한다.
차분히 생각을 정리해서 문서로 외화(外化)하는 훈련, 또 그것을 회의에서 발표하여 공유하는 훈련이 효과적이다.
둘째 항상 "왜"라는 의문을 가지고 좀더 큰 논리적 틀에서 현상을 바라보는 시각을 가져야 한다.
사물 현상을 항상 더 큰 시각으로 재고찰하는 습관이 몸에 배도록 해야 하는데, 이것은 내가 지금 문제를 제대로 바라보고 있는가, 제대로 풀고 있는가를 끊임없이 회의하지 않으면 얻을 수 없다.

어떻게 생각할 것인가, 어떻게 토론할 것인가?
간단하게 대답을 줄 수는 없지만, 마냥 어려운 것만은 아니다. 다만 절박한 사람만이 그 답을 얻을 수 있다.

댓글

이 블로그의 인기 게시물

Java G1 GC의 특성에 따른 Full GC 회피 튜닝 방법

Heap Dump 분석을 통한 Perm Area Memory Leak 원인 진단

새로운 관리자 모델은 훌륭한 코칭 능력을 필요로 한다.