문제 해결에 있어서의 문제 이해와 타인의 모범답안 모방에 대하여

어떠한 문제가 주어졌을 때 이를 해결하는 방법은 어떤 게 있을까?

하나는 순전히 본인의 힘으로 그 문제에 대해서 분석하고 이해한 뒤 해결방안을 스스로 도출해내는 방법이다.

그리고 또 하나는 그 문제를 해결했던 타인의 모범답안을 모방해와서 해결하는 방법도 있을 것이다.

물론 타인의 것을 베끼기만 할려하면 자기 스스로 사고하는 능력을 숙달하는 데 있어 방해가 되기에 타인의 모범답안을 베끼는 것에만 의존하는 것은 그리 좋은 습관은 되지 못할 것이다.

그러나 때로는 모범답안을 모방하는 것은 경우에 따라 분명 좋은 방식일 수 있다.

만약 자신에게 주어진 문제가 전혀 새로운 성격의 것이 아닌, 이미 도처에도 널려있는 성격의 문제라면 분명 어딘가의 누군가는 그 문제을 해결했을 공산이 크다.

그 모범답안을 그대로 가지고 와서 자신에게 주어진 문제를 해결하는 데 있어 사용할 수 있다면 정말 좋은 모범답안이다.

허나 그 모범답안을 자신에게 가지고 와서 문제를 해결할 때 단순히 이거는 이렇고, 저거는 저렇다 식으로 아무 생각없이 외우는 것이 아닌, 다른 사람은 어떤 과정을 통해 이러한 해답을 도출해냈는가를 분석할 필요가 있다.

그러한 분석 과정을 겪을 때, 순전히 자기 스스로 문제를 분석하려 했을 때는 미처 보지 못했던 점들을 볼 수 있다.

또한 기왕 모범답안을 들고 올 때는 한 두 사람만의 답안 및 해결책이 아닌 가능한 한 수많은 사람들의 해결책들을 비교 분석하여 문제를 해결하는 데 있어서의 다양한 해결책들을 알아두는 편이 좋다.

물론 문제를 해결하는 데 있어서 시공간을 많이 소모하는 방식보다는 최대한 시공간을 덜 소비하는 효율적인 방식으로 해결해야한다. 사실 그렇기에 어떤 사람이 제일 효율적인 알고리즘을 적용해서 문제를 해결했는가를 비교분석하는 것이 제일 중요한 과제라 볼 수 있다.

사람들은 복잡하게 문제를 해결하려하기보다는 가능한 한 단순하거나 효율적으로 풀어내려하기때문에 가장 많은 사람들이 해당 문제점을 풀어낸 해결방식의 유형을 이해하는 것이 중요하다.

허나 명심해야 할 것은 효율적으로 풀어낸 해결책의 결론만 봐서는 결론이 도출되기까지의 풀이과정이 많이 생략되어있기에 어떻게 그 결론을 도출했는가를 역추적해내야한다.

그렇기에 타인의 모범답안을 단순암기해서 해결하는 방식에만 의존할 수는 없는 것이다.

무엇보다도 조금만이라도 문제의 성격과 유형이 기존의 모범답안을 베껴 해결한 문제와 다를 경우에 응용할 생각을 미처 못해 문제를 풀어내지 못하고 오답만을 내버리게 되는 실수를 저지르게 된다.

다만, 스스로 문제를 독해하고 풀어낼때도 문제가 생기는데 그것이 어떤 경우냐면 비효율적인 방식을 통해 문제를 풀거나 더러는 아예 틀린 방식을 통해 문제를 풀어놓고서는 자신만의 해결방식이 제일 낫다는 오만에 빠질 경우이다.

이때는 차라리 타인의 모범답안을 봄으로써 자신의 해결책이 그다지 좋지 못했다는 것을 객관적으로 파악하는 것이 나을 것이다.

또한 스스로 문제를 풀 때 한 가지 문제에만 너무 많이 시간을 소비할 경우도 문제가 된다. 물론 공을 들인 끝에 좋은 해답을 내놓는다면 이는 분명 사고력과 문제해결능력을 키우는 데 있어서 귀중한 경험이 된다. 하지만 세상을 살며 주어지는 문제의 성질들은 늘 같거나 혹은 단순하지 않다. 최대한 여러 가지 유형의 문제들을 접하고 유형에 따른 적합한 알고리즘들을 적용하는 방법을 익혀야 한다.

또한 알고리즘 자체에 대한 원리에 대한 깊은 이해와 그 알고리즘들이 적용되는 각종 사례들과 특정 알고리즘들의 다양한 응용 사례들 역시 익혀두면 좋을 것이다.

우리 사회를 보자면 옆에 뻔히 모범답안이 존재하는데도 이를 못본체하며 일부러 비효율적인 방식을 고수하는 행보들이 많이 보인다.

보통 이런 경우는 자기 자신은 힘을 들이지 않는 대신 동료 시민들의 희생을 전제로 한 경우이다. 사회구성원 전부가 어느 정도 희생을 감수해서 사회공동체 전원의 이익을 극대화하는 방식은 의도적으로 무시된다.

심지어는 이미 타 사회에서 비효율적이거나 시간이 지남에 따라 아예 오답으로 판명난 해결책의 경우에도 그것이 문제인지 모르고 무작정 베껴와서 우리 사회에 적용하려는 경우들도 보이곤 한다. 문제는 타 사회에서 그 해결책이 오답이었다는 것이 밝혀져도 이미 그 해결책을 고수하는 사람들은 오답이라는 것을 인정하지 않으며 되려 정답에 가까운 해결책들이 문제라며 성을 낸다.

사실 오답만을 고수하는 사람들은 스스로 문제에 대해서 고민을 안해봤을 공산이 크다.

이들에게 문제에 대한 근본적인 질문을 던질 경우 왜 질문을 하냐며 역정만이 피드백이 올 것이다.

물론 문제가 복잡한 경우에는 문제를 이해하는데만 시간을 많이 소요하게 된다.

그렇다면 어떻게 해야하나?

문제에서 요구되는 사항들을 조금씩 조금씩 나눠가면서 용이하게 풀 수 있는 단위로 쪼개서 해결한 뒤 그것들을 다시 합치면 된다.

좀 더 풀어서 설명하자면 문제를 더 이상 분할할 수 없을 때까지 동일한 유형의 하위 문제로 분할한다. 그리고 가장 작은 단위의 하위 문제를 해결하여 정복한다. 그리고 하위 문제들에 대한 결과를 원래 문제에 대한 결과로 조합한다.

문제를 분할하는 과정에서 각각 어느 영역에서 문제가 생겼고 어느 영역에는 문제가 없는지를 파악할 수 있다.

이러한 분할정복 알고리즘을 사회 문제를 해결하는 데 있어 적용한다면 사회 각 계층마다 조금씩의 노력만 들여서 해결할 수도 있을 것이다.

사실 이미 존재하는 문제들이야 그렇다쳐도 아직 전 사회에 마땅한 해결책이 나오지 않은 문제들의 경우도 많다.

이런 경우의 해결책들은 보통 이미 시중에 나와있기보다는 사람들의 머릿 속에서나 일종의 이론 형태로 존재한다.

이 때 성급하게 머릿 속에만 존재하는 해결책을 행동에 옮기려하기보다는 사고실험을 하는 것이 좋을 수도 있다.

이런 때는 누가 제일 선험적 지식과 연역 논증이우수한가가 가장 좋은 해결책의 도출을 판가름할 것이다.

그리고 자신만이 가장 좋은 해결책을 가지고 있다고 맹신하기보다는 어느 정도 열린 마음을 가지고 자신의 가설을 수정할 여지를 두는 것도 도움이 될 것이다.

세상에 존재하는 문제들에는 어떤 형태로는 해결책은 존재할 것이다. 그것을 찾아내는 것들은 각 개인들의 노력에 달렸다. 허나 희소식이 있다면 모든 문제를 전부 혼자서 머리를 싸매고 고민할 필요없이 예전부터 내려온 선례들을 참고할 수 있다는 것이다. 자신들의 한계를 겸손하게 인정하고 관습, 널리 오랫동안 합의된 지혜, 규범, 계속성에 대한 깊은 이해는 자신들에게 처한 문제를 해결하는 데 있어 분명 도움이 될 것이다.

어찌되었건 해답을 도출해내면 좋다면 성급히 해답을 도출하려하기보다는 신중하게 해결하는 것이 좋다. 문제를 푸는 과정에 있어서 중간에 꼬여서 해결과정이 명확해지지 않고 되려 문제보다도 복잡해져서 문제가 문제를 낳는 상황이 된다면 도중에 해결과정 일부를 수정하기보다는 차라리 처음부터 다시 문제를 풀어나가는 것이 더 빠를 수도 있다.

당신들은 어떻게 문제를 풀어나갈 것인가?

그것은 당신들이 세상을 바라보는 관점에 달려있다.

댓글

이 블로그의 인기 게시물

주권(主權), 책임, 소유: 공적 이익과 사적 이익 일치의 방법론에 관하여

정치적 자유라는 이름의 버퍼(Buffer)

일본천황 황위 계승권 개정안 통과, 여성 천황 불허