수많은 문제를 해결하고 연구를 잘할 수 있는 비법이 있다. 내가 만든 비법은 아니다. 미국의 유명한 물리학자 리처드 파인만이 사용했다고 알려진 문제 해결법이다 1.
Feynman Algorithm
1. Write down the problem.
2. Think real hard.
3. Write down the solution.
파인만 알고리즘
1. 문제를 쓴다.
2. 진짜 열심히 생각한다.
3. 답을 쓴다.
나는 이 알고리즘을 대학을 갓 졸업했을 때 처음 접했다. 황당하다고 생각했고, 파인만 같은 천재들에게나 해당하는 문제 해결방법이라고 생각했다. 몇 년 후 시간이 흘러서, 대학원생일 때 이걸 다시 봤을 때는 2번 항목에 감명을 받았었다. 문제를 ‘직접’ 해결하는 방법 중에, 저 방법 말고 다른 방법이 도대체 뭐가 있을까를 생각 했다. 열심히 생각하는 것 이외에 문제를 해결하는 방법은, 답을 아는 사람에게 물어 본다 따위가 있을 수 있겠으나, ‘직접’ 해결하는 방법은 아니다. (물론, 답을 아는 사람에게 물어 보는 해결 방법에서도, 누가 답을 알고 있을 것인지에 대해서 열심히 생각해 봐야 한다.)
여전히 2번에 대해서는 강한 동의를 하고 있지만, 가장 감명 깊은 부분은 1번 항목이다.
‘문제를 쓴다.’
이것은 내가 풀어야 할 문제가 정확히 무엇인지를 알고 있을 때만 할 수 있는 것이다. 당연하다. 문제가 뭔지 모르는 데, 문제를 어떻게 쓸 수가 있을까? 그런데, 많은 경우에 우리가 풀고 싶은 문제가 도대체 무엇인지 정확히 알지 못한다. 풀어야 할 문제를 정확히 알고 정확하게 기술할 수 있는 경우는 얼마 되지 않는다. 그래서 아무리 생각해 봐야, “문제”를 풀지도 못 하고, 소위 ‘삽질’만 하게 된다.
파인만이 제시한 문제 해결 방법 1단계, 2단계, 3단계는 같은 크기의 중요성을 갖는다고 생각한다. 두번째 단계가 가장 어려워 보이지만, 실제로는 첫번째도 그에 못지 않게 어려우며, 세번째도 어려움으로는 뒤처지지 않으며 비슷한 수준으로 중요하다.
파인만의 문제 해결 방법은 인생에서 맞닥뜨리는 모든 ‘일반적인’ 문제에 모두 적용된다고 생각하지만, 공부하고 연구하는 것에 국한시켜 이야기 해 보자.
공부를 하면서 만나는 많은 연습 문제들과 시험 문제들은, 1단계를 누군가가 잘 해 놓은 것이다. 문제는 아주 잘 씌여져 있다. 그래서 1단계가 필요없다. 대신, 이런 경우에 1단계는, 문제를 ‘잘’ 읽는 것이다. 그래서 문제가 무엇인지를 정확히 ‘인지’ 해야 한다. 문제를 푸는 방법은 알고 있었는데, 문제를 잘 읽지 않아서, 잘못된 답을 해 본 경험이 꽤 있을 거라고 생각한다. 그래도, 이런 경우에는 조금만 조심하면 1단계는 비교적 쉽게 넘어갈 수 있다.
내가 1단계를 직접 해서, 문제를 써야 하는 경우는 굉장히 어려울 수 있다. 연구를 해서, 논문을 써야 하는 경우를 생각해보자. 많은 연구 초심자들은 도대체 어떤 문제를 풀어야 하는지를 모를 때가 많다. 연구라는 것을 처음 시작하는 사람들은, 아예 감도 잡지 못 한다. 석사과정 학생들에게, 혹은 박사과정 학생들 까지도, 지도교수가 논문 주제를 던져주는 경우가 많은 이유이다. 어떻게 해야 도대체 ‘문제’ 라는 것을 발견할 수 있는 지를 모른다.
조금 감을 잡았다고 해도, 여전히 문제를 정확히 기술 하는 1단계를 통과하기에는 많은 과정들이 남아있다. 예를 들어서, ‘대형 지진 발생 이후의 대처법’ 이라는 것에 대해서 관심이 생겨서 연구를 하기로 했다고 하자. 이것은 ‘연구 분야’가 될 수는 있을 지언정, ‘문제’는 전혀 아니다. 조금 더 범위를 좁혀서 ‘대형 지진 발생 이후의 적절한 구호 물자 운송방법’ 에 대해서 연구를 하기로 했다고 하자. 많이 좁혀졌지만, 아직 ‘문제’는 아니다.
이제 범위를 좁혔으니, 무엇이 정말 ‘문제’가 되는지를 알아야 한다. 사실 이것은 쉬운 일은 아니다. 내가 ‘만들어낸’ 문제와 ‘실제로 발생하는’ 문제는 전혀 다를 수도 있기 때문이다. “Financial calculus: an introduction to derivative pricing” 이라는 책의 서문에 보면, 많은 사람들이 잘못된 문제에 정확한 답을 찾기 위해서 헛수고를 하고 있다고 나온다 — finding precise answers to the wrong questions. 파인만 문제 해결법의 첫번째 단계에서 실수를 범했기 때문이다.
위에서 언급한 지진 발생 이후의 물자 운송방법이라는 주제에 대해서, 있을 법한 문제로는 다음과 같은 것이 있다.
– A 라는 빈도로 z 라는 지역에서 구호 물자에 대한 수요가 발생할 때, 얼마나 자주 x 지역에서 z 지역으로 물자를 수송해야 할까?
이것은 ‘문제’ 이다. Problem 혹은 question 이긴 하지만, wrong question 일 수는 있다. 예를 들어서, 실제로 B 라는 지역에서 수요는 A 라는 빈도로 발생하는 것이 아니라, AA 라는 빈도로 발생한다고 하면, 이것은 wrong question 이다.
어떤 아이디어를 가지고 논문을 쓰기 위해 연구를 하다가 “문제”가 풀리지 않아서 결국 포기 했던 것들도 꽤 많다. 돌이켜 생각해보면 거의 모두가 실제로는 문제를 찾을 수가 없을 때였다. 문제가 무엇인지 명확하게 알고 있을 때는, 열심히 하면 — 비록 오랜 시간이 걸릴지라도 — 대부분 문제가 풀렸다. 논문은 아니지만, 컴퓨터 프로그램을 작성한 것이 결과가 제대로 나오지 않는 경우, 소위 버그가 있는 경우를 예로 들어 보자. ‘결과가 제대로 나오지 않는다. 어떻게 제대로 나오게 할 수 있을까?’는 좋은 문제가 아니다. 좋은 문제가 되기 위해서는 몇가지 단계로 나누어야 한다. (1) 어떤 결과가 제대로 나오고, 어떤 결과가 제대로 나오지 않는가? (2) 결과가 제대로 나오지 않는 것은 잘못된 코드 때문인가, 혹은 잘못된 알고리즘 때문인가? 더 나아가서, 알고리즘이 풀려고 하는 문제 자체가 잘 못 된 것인가? 등으로 나누어서 문제를 정의 하고, 열심히 생각하면, 대부분 해결 된다.
연구는 사실 답을 찾는 과정이 아니라 문제 혹은 질문을 찾는 과정이다. 파인만 알고리즘의 가장 첫번째에 ‘문제를 쓴다’가 오게 된 것은 깊은 통찰력의 결과물이라고 믿는다1.
파인만은 위대하다.
(‘연구의 비법’편은 글 세 편 정도의 시리즈로 묶어볼 예정입니다.)
1. 사실은 머리 겔만(Murray Gell-Mann)이라는 동료 물리학자가 우스개 소리로 한 말이다.
* 블로그 내용을 정리하고 다듬어서 책으로 발간하였습니다. 리디북스, 교보문고, Yes24, 알라딘, 반디앤루니스 등의 온,오프라인 서점에서 종이책/전자책 구매 가능합니다.
* 이 글들은 대학원생 때 알았더라면 좋았을 이야기들 페이스북 페이지 를 통해 팔로우 하실 수 있습니다.
– 엄태웅님의 [페이스북], [블로그(한글)], [블로그(영문)]
– 최윤섭님의 [페이스북], [블로그(한글)], [브런치(한글)]
– 권창현님의 [페이스북], [블로그(한글)], [홈페이지(영문)]
댓글