부스트캠프 챌린지 과정을 앞두고 안내와 여러 후기를 살펴볼 때, 학습과 미션의 균형감 있는 시간 분배를 강조하는 것이 보였다. 미션을 현명하게 해결한다면 무엇을 학습할지 알고 이를 위한 시간 확보할 수 있을 것이라는 가설을 세웠다. 가설의 검증을 위해서 문제해결 방법론에 대한 정보를 찾아보고 1주 차에 적용해보기 위해서 검색을 통해 자료를 찾다가 기사나 블로그보다 체계적인 내용을 보고 싶어, 도서를 찾아보게 되었다.
사실 문제해결 방법에 관한 책을 과거에도 본 적이 있다. 하지만, 대략적인 느낌으로 문제를 해결하고 있는 행태를 보니, 이를 극복하려면 실용적인 분야의 내용의 정리 하고 활용 방법을 구체화할 필요가 있다고 생각했다.
책은 전자도서관 앱을 통해서 대출(07.16.)하였고, 고차원의 문제해결보다는 눈앞의 미션에 적용할 수 있는 부분을 위주로 정리(07.17.)하고, 하고 싶은 이야기가 있는 부분은 별도로 남겨두었다.
당장 필요한 내용을 정리하고, 가공했기 때문에 도서의 저자 및 역자의 의도와 다를 수 있습니다.
🔑 적용
미션에 직접적으로 적용하기는 어려워 보이지만 다음과 같은 단계로 접근해보자!
문제에 대한 명확한 이해 → 필요한 배경지식 확보 → 가설을 세우고, 검증의 과정 진행
최적의 방법 선정하기
🔑 적용
데이터와 자료를 바탕으로 대응 가능 여부에 대한 판단.
긴급하고 중요한 단계를 우선 수행할 수 있도록한다.
🔑 적용
달성(진척) 확인이 가능한 포인트 지정
목표에서 포인트에 따른 단계별 상세한 계획
물론 ‘문제해결'의 수단을 알고있어도 실제로 문제를 해결할 수 있다고 단언하기는 어렵다. 지식과, 지식을 활용해 문제를 해결하는 것은 별개의 문제이기 때문이다.
* 해결책 정하기와 실행@8%
요즘 알고리즘 문제를 풀면서 느끼는 부분이다. 개념을 알고 있다고 해서, 구현하는 것과 문제에 적용하는 것은 다르다. (물론 설명과 구현, 적용을 못 한다면 알고 있다고 말하기 민망하다.) 지식을 쌓는 것과 문제해결은 다른 차원이기 때문에, 우리는 지식을 바탕으로 삶에 적용하는 고통스러운 연습의 시간이 필요하다.
준비되지 않은 사람은 중요도와 긴급도에 대한 감각이 거의 없기 때문에 매사를 느긋하게 생각한다. 회의시간에 문제의 발언이 거론돼도 “그 문제는 이미 알고 있다"는 식으로만 대응한다. …(중략)
그렇다면 중요도와 긴급도를 쉽게 결정하지 못하는 이유는 무엇일까. 어째서 중요하다거나 시급히 해결하야 한다고 느끼지 못하는 것일까. 그것은 기준이 세워져 있지 않기 때문이다.
- 중요도와 긴급도를 결정하는 기준@24%
문제를 해결해야하는 당사자나 결정권을 가지고 있는 사람이 이러한 태도를 보이면, 함께 일하기 어렵다고 생각한다. 반대로 내가 이렇게 행동하지 않는지? 돌아보자.
최고의 ‘문제해결'이란 처음부터 해결해야 할 ‘문제'를 줄이는 것.
가장 바람직한 것은 ‘문제'가 없는 상태를 유지하는 것.
아무리 사소한 일이라도 ‘문제의 싹'을 발견했다면 더욱 커지기 전에 미리 제거하자.
* 문제의 요소는 작은 싹일 때 잘라낼 것@26%
코딩을 하면서 적용할 부분이 많은 조언이라고 생각했다. 설계를 꼼꼼하게 하는 것부터, 코드를 클린하게 짜는 것, 테스트를 진행하는 것 등 각 단계에 있어서 문제의 싹을 발견했다면 큰 문제가 되기 전에 제거하는 것이 중요하겠다. 이를 위해서 문제를 문제로 인식할 수 있는 실력이 필요할 것이다.
선입견(혹은 믿음)이 직감적인 결론으로 이어진 결과이다.
절대 직감에 의존해 사물을 생각해서는 안 된다. 어떤 데이터가 부족한지, 좀 더 조사를 해봐야 할 부분이 무엇 인지를 생각한 후 정보를 수집해야 한다. 그 결과를 근거로 “A라는 사실이 발견되면 이렇게 하자" 또는 “B로 상황이 바뀌면 이렇게 하자"라고 상황에 따라 판단하는 것이 논리적 사고이다.
*고정관념으로 결론을 단정 짓지 말 것@43%
선택의 결과는 내가 책임진다. 시간이 가용한 내에서 좋은 선택을 하기 위해서 노력할 가치는 충분하다. 더욱 꼼꼼하게 조사하고, 가설과 대응을 생각하는 논리적 습관을 갖고 싶다.
지금까지와는 모순된 이야기일지 모르지만, 아무리 사실을 검증한다고 해도 마지막 순간 직감에 승부를 걸 수밖에 없는 상황도 있다.
이런 상황은 처음부터 시간적·경제적인 제약이 있고 완벽한 데이터를 모으는 일 자체가 불가능한 경우이다. 그런 상황에서 최종적으로 기댈 수 있는 것은 오로지 직감밖에 없다.
* 직감에 승부를 걸 수밖에 없는 상황@47%
이를 위해서 책에서 ‘가치관에 근거한 직감'을 이야기하는데, 요즘에 와서야 어떤 의미인지 알 것 같다. 요즘 느끼는 만능 대사인 "네가 선택한 00이다. 악으로 깡으로 버텨라!”를 보면서, 선택이 나의 가치관에 따른 온전한 선택이라면 과정과 결과에 당당하게 책임질 수 있지 않을까?
문제해결을 방해하는 요소6가지
1. 사고의 정지
2. 시간부족
3. 경험부족
4. 경험과 상식에 의한 선입견
5. 권위와 지위
6. 무사안일주의
* 7장 정리@%89
‘너 일 대충 한다?’라는 소리를 들어봤다거나, 듣는다면 해당 케이스에 대해서 분석할 수 있는 좋은 항목인 것 같다. 핑계가 아니라 어떤 이유로 이런 결과가 나왔는지 잘 생각해보고, 극복의 방법을 찾아보는 기회가 되지 않을까?
누구에게나 가위가 있지만 충분히 활용하는지 여부는 그것을 사용하는 사람에게 달려 있다는 점을 잊지 말아야 한다. 많이 사용해본 사람만이 능숙하게 가위질할 수 있는 법이다.
* 문제해결력의 3가지 기본원칙@70%
누구에게나 가위가 있지만→누구나 가위를 가지고 있지는 않다.
누구나 평등하게 가위를 들고 있는 것은 아닌 것 같다. 가위의 유무나, 가위의 상태(크기, 형태)가 천차만별이라고 생각한다. 하지만 내가 가위가 2개를 가지고 시간 내에 일을 마쳐야 한다면, 보다 가위를 잘 사용하는 사람(백번 양보해도 잘할 자세가 된 사람)에게 맡길 것이 분명하다. 없다고 포기하면 아무것도 할 수 없다.
충분히 활용하는지 여부는 그것을 사용하는 사람에게 달려 있다는 점
상당히 동의하지만, 환경과 주변인 등의 외적 요인에 있어서 ‘충분히 활용하는지 여부’가 달라질 수도 있다고 생각한다. (프로라면 외적 요인의 상당 부분까지 통제해야 한다고 하면 할 말이 없겠지만…)
많이 사용해본 사람만이 능숙하게 가위질할 수 있는 법→많이 사용해본 사람이 능숙할 확률이 높다.
어떤 분야든 길고 짧은 것은 대봐야 알고, 시간과 환경에 독립적인 상수가 아니기 때문에 단정하기 어렵다. 다만 ‘확률이 높다’ 정도로 타협할 수 있을 것 같다. 개인적으로 어떻게 많이 사용했는지가 중요하다고 생각하며, 단순 경력보다 중요한 것이 각자의 실력이라고 믿고있다.
실력을 키워야 없던 가위라도 누가 챙겨주고, ‘능숙한 사람’이란 평가를 받을 것이다. 나는 지금 컴퓨터 분야에 있어서 실력이 있는가? 실력을 고민하기 전에 CS 지식에 있어서 부족한 부분이 많다고 생각한다. 다만, 문제해결에 있어서는 나름 강점이 있는 것 같다. (이전에 공부해온 문제해결을 위한 실용적인 학문 덕분인 것 같다.)
ps. 책에선 더 다양한 도구(5P, 4C, QPS, AIDMA, SWOT)들을 소개하고 있지만, 눈앞의 문제가 급해 정리하지는 않았다. 기회가 된다면(진짜 문제를 만나기 전에) 찾아보고 정리, 문제 해결에 적용해보자.