|
더 쉽게 더 똑똑하게 선택하는 방법을 알려준다는 문구에 혹해 이 책을 구입했는데, 컴퓨터 과학과 프로그래밍 언어에 익숙하지 않은 문과 출신인 나에게는 상당히 어려운 책이었다(안 그래도 비트 코인이니 블록체인 기술이니 하는 용어도 어려워 죽겠는데. 이렇게 도태되는 걸까...). 그럼에도 불구하고 이 책을 끝까지 읽을 수 있었던 건, 저자가 제시하는 문제 상황이 상당히 일상에 가깝고 누구나 한 번쯤 문제 해결법을 고민해봤을 법한 상황이었기 때문이다. 문제 상황 첫 번째. 빨래를 마치고 건조된 양말이 잔뜩 쌓여 있을 때, 양말 한 짝을 꺼낸 후 빨래더미에서 짝을 찾는 게 빠를까, 양말 한 짝을 꺼낸 후 다른 양말을 꺼냈을 때 짝이 맞으면 맞추고 안 맞으면 옆에 놓고 다음 양말을 꺼내는 게 빠를까. 정답은 후자다. 인간의 뇌에는 최근에 본 것을 보다 잘 기억하는 단기 기억 저장소가 있다. 이를 이용하면 여러 개의 양말 짝을 보다 쉽고 빠르게 맞출 수 있다. 이와 마찬가지로 컴퓨터는 최근에 작업한 파일을 보다 쉽고 빠르게 꺼내는 검색표, 즉 캐시라는 기술을 활용한다. 문제 상황 두 번째. 폭탄세일 중인 셔츠 중 내 사이즈에 맞는 셔츠를 찾을 때 옷걸이 한쪽 끝에서 다른 쪽 끝까지 차례대로 뒤지는 게 좋을까, 옷걸이 가운데에서 셔츠를 찾은 다음 셔츠가 작으면 오른쪽, 셔츠가 크면 왼쪽을 뒤지는 게 좋을까. 이것도 정답은 후자다. 찾아야 하는 물건이 100개 중에 있는 경우, 100개를 1부터 100까지 차례대로 살피는 걸 선형함수, 중앙에서 시작해서 왼쪽이나 오른쪽으로 이동하여 검색하고 매번 검색할 집합을 반으로 나누는 것이 로그함수를 활용한 로그 시간 알고리즘이다. 이 책에 나오는 컴퓨터 과학 기술과 알고리즘 용어를 완벽하게 익혔다고 자신할 순 없지만, 적어도 이 책을 통해 알고리즘이 우리의 일상과 그리 멀지 않고, 알고리즘을 잘 이해하면 일상에서 맞닥뜨리는 문제 상황을 보다 쉽게 해결할 수 있다는 건 알 수 있었다. |
|
알고리즘 사고는 탁월한 선택을 위한 생각의 틀이다
집안일이든 직장일이든 무언가를 찾고 정리하고 분류할 일이 많습니다. 이 때 최소한의 움직임으로 빠르게 효율적으로 일처리를 하면 편합니다. 우리는 알게 모르게 가장 효율적인 절차를 무의식적으로 사용하고 있습니다. 이러한 절차의 개념은 컴퓨터의 알고리즘과 비슷합니다.
이 책은 일상에서 일어나는 상황을 알고리즘과 수학적인 개념으로 설명해 줍니다. 그리고 알고리즘적 사고방식이 더 나은 행동을 위한 도구라는 것을 알려 줍니다. 이 책을 통해 두 가지를 얻을 수 있습니다. 하나는 더 좋은 알고리즘으로 생각하고, 일상의 문제를 효율적으로 해결하는 법을 배우는 것입니다. 그리고 다른 하나는 우리가 이미 사용하고 있는 업무 방식이 과연 어떤 알고리즘을 사용하는가 하는 것입니다.
목적지로 가는 길을 선택할 때도 최단거리로 가는 길, 교통체증이 없는 길 등 어떤 조건을 선택하느냐에 따라 경로가 달라집니다. 기존의 생각을 조금만 바꾸면 더 좋은 생각이 나옵니다. 이 책은 일상에서 일어나는 다양한 해결과제를 효율적으로 해결하고 싶을 때 참고하면 좋은 책입니다. |
|
컴퓨터 과학의 알고리즘을 이해한다는 말이 무색하게 생활의 지혜 정도의 지식이 있다. 책장의 책을 알파벳 순으로 정리를 하거나, 미로를 탈출하는 법, 영향력있는 음악을 듣는 방법 같은 이야기가 나온다. 행동의 판단을 알고리즘대로 체계적으로 하면 분명 이익이 생기고 효율적이지만 어느 정도 삶에 지혜가 잡힌 사람이면 스스로 터득한 지식이 아닌가 싶다. 그나마 눈길이 가는건 우리가 자연적으로 알고 있는 이런 지혜도 알고리즘으로 생각하면 어떤 이름이 있는 생각이었구나라고 되새긴다. 효율적으로 일을 처리하는 방법에 대해서는 폄하할 생각이 없다. 조그만한 일이 모여서 큰 일이 되고 쉬운일도 너무 많다보면 어려운 일이 되는 법이다. 조금 더 생각하면 아주 작은 일이라도 그것이 관여된 일들을 효율적으로 해결해나간다면 더 큰 일도 쉽게 할 수 있을 것이다. 따라서 작게 보이는 일도 해결 원리에 집중하는 것은 중요한 일이겠다. |