품목정보
발행일 | 2018년 08월 31일 |
---|---|
쪽수, 무게, 크기 | 334쪽 | 618g | 183*235*17mm |
ISBN13 | 9788931459418 |
ISBN10 | 8931459416 |
발행일 | 2018년 08월 31일 |
---|---|
쪽수, 무게, 크기 | 334쪽 | 618g | 183*235*17mm |
ISBN13 | 9788931459418 |
ISBN10 | 8931459416 |
PART 01 알고리즘 Chapter 01 계산 및 알고리즘: 헨젤과 그레텔 01 계산을 이해하는 길 02 정말로 가 보기: 계산이 실제로 벌어질 때 Chapter 02 표상과 데이터 구조: 셜록 홈즈 03 기호의 신비 04 탐정의 수첩: 사실을 좇는 소품 Chapter 03 문제 해결과 한계: 인디아나 존스 05 완벽한 데이터 구조를 찾아서 06 좋은 정렬 방식을 골라내기 07 풀기 어려운 과제 PART 02 언어 Chapter 04 언어와 의미: 오버 더 레인보우 08 언어의 프리즘 09 딱 맞는 음 찾기: 소리의 의미 Chapter 05 제어 구조 및 순환문: 사랑의 블랙홀 10 날씨 다시 반복 11 해피엔딩은 필연이 아니다 Chapter 06 재귀: 백 투 더 퓨처 12 제때에 해 두면 제대로 풀린다 13 해석하기 나름 Chapter 07 유형과 추상화: 해리 포터 14 마법의 유형 15 조감도: 세부 사항에서 추상화하기 |
알고리즘 공부는 한번 푹 빠지면 정말 재미있지만, 그렇게 되기까지가 참 쉽지 않다는 게 문제입니다. 이 난제를 풀기 위한 여러 시도 중에서 최근 제 눈에 가장 띄었던 것은 바로 이 책, 『그들은 알고리즘을 알았을까?』입니다. 헨젤과 그레텔, 셜록 홈즈, 해리 포터 등의 이야기를 통해 알고리즘을 설명하는 책이죠.
가장 처음에 등장하는 『헨젤과 그레텔』부터 살펴볼까요. 헨젤과 그레텔 남매는 계모에 의해 숲에 버려지지만, 헨젤이 숲에 가는 길에 조약돌을 떨어뜨려 놓은 덕분에 밤에 달빛에 의해 빛나는 조약돌을 따라 무사히 집에 돌아갈 수 있었습니다. 여기서 문제는 헨젤과 그레텔의 생존이고, 이 생존을 위해서는 둘이 무사히 집으로 돌아가야 합니다. 이 문제를 다시 분해하면 '각 지점 간의 거리가 매우 가까워서 누구나 한 지점에서 다른 지점으로 쉽게 왔다 갔다 할 수 있는, 집에 가는 길에 있는 연속된 지점들의 위치를 파악하는 문제(p.30)'가 됩니다. 헨젤과 그레텔은 숲과 집이라는 지점 간의 이동으로 정의된 계산을 수행하는 것이고, 이를 위해서는 각 지점의 위치를 인식할 수 있어야 하는데 여기에 헨젤의 자갈이 도움을 주는 것이죠.
셜록 홈즈는 또 어떤가요, 『바스커빌가의 개』에서, 셜록 홈즈는 모티머 박사가 두고 간 지팡이에 새겨진 문구를 해석합니다. 홈즈는 "MRCS의 제임스 모티머에게, CCH의 친구들로부터."에서 "MRCS"가 표상하는 것은 Member of the Royal College of Surgeons(왕립 외과 의사 협회 회원), "CCH"는 Charing Cross Hospital(채링 크로스 병원)일 것이라고 추론하죠. 여기서 "CCH"란 기표로서 "Charing Cross Hospital"이란 기의를 의미한다고 말할 수 있습니다. 또한 "Charing Cross Hospital" 역시 기표로서 실제 병원이라는 기의를 나타내고 있죠. 이게 무슨 말장난이냐고요? 책을 직접 한 번 읽어 보세요. 저자가 무슨 말을 하고자 하는지, 그리고 이게 대체 왜 중요한지 쉽게 이해하실 수 있을 거예요.
위에서 설명한 것들은 모두 '이게 알고리즘이랑 대체 무슨 상관이야?' 싶은 개념일 수도 있지만, 이 책은 이렇게 기본적인 개념들을 설명한 후 스택과 큐, 트리, 제어 구조와 재귀 등 중요한 개념들로 나아갑니다. 다루는 주제가 주제이니만큼 마냥 쉽다고 말할 수는 없어도 우리에게 익숙한 이야기를 통해 친절하게 설명하고 있기 때문에 재미있게 읽어나갈 수 있는 책이라고 생각합니다. 이런 식의 다양한 시도를 통해 더 많은 분들이 컴퓨터 과학의 재미를 느껴보셨으면 좋겠습니다.
그들은 알고리즘을 알았을까
저자는 컴퓨터과학을 체계적인 문제 해결에 대한 연구을 하는 학문이라고 한다.
이것은 우리에게 '문제'와 '해결'이라는 개념에 대해 '계산'이라는 컴퓨터적인 사고를 통해
우리에게 필요한 일반적인 특성과 다양성, 넓은 적용성을 보여준다고 한다.
알고리즘은 문제를 해결하기 위한 방법으로 하나의 언어를 사용하여
문제 해결을 위한 정보를 준비하고 처리 방법을 구성하여 정확한 결과를 만들어 내는 것으로
컴퓨터 기반의 프로그램을 통하여 수행된다.
알고리즘이 체계적이고 정확한 문제 해결을 위해 사용되는데
컴퓨터는 모든 계산을 제어하고 해결해야 할 문제를 해결해준다.
또한, 알고리즘을 수행하기 위해 데이터들의 형태와 구조를 정의하여 준비하고
이 체계적인 문제해결이 컴퓨터 과학이 관련되어 있다고 한다.
알고리즘은 컴퓨터에서 사용하는 언어와 표현을 통해 구성되고,
데이터를 처리하고 반복적인 순환 규칙과 재귀와 같은 제어구조가 사용되고,
최종 계산된 결과값이 제공하여 준다.
이러한 과정을 우리가 아는 영화나 동화 줄거리를 통해 설명하고 있다.
"헨젤과 그레텔"에서 조약돌을 따라가는 방법인 알고리즘을 구성하기 위하여
데이터와 입력, 변수, 처리방법, 예외처리 등에 대한 기본 설명이 쉽게 쓰여있다.
또한, "바스커빌가의 개"에서 데이터의 구조와 형태 등에 대한 기본적인 설명을 잘 해주었고,
"인디아나 존스"에서는 필요한 알고리즘의 종류들과 처리 방법들에 대한 정의들이 잘 정리되어 있다.
"오버 더 레인보우"에서는 알고리즘 처리 시 언어가 가지는 규칙 이나 문법 등에대한 설명이 있고
"사랑의 블랙홀"에서 알고리즘을 돌리기 위한 제어구조와 반복처리문에 대한 설명을 해준다.
"백 투 더 퓨처"에서는 정보를 계속적으로 처리하는 재귀방법에 대한 종류와 방법을 설명하고 있다.
"해리 포터"에서는 알고리즘의 계산과 결과 속성을 통해 유형을 정의하고,
최종 결과를 추상화 하고 일반적인 상황에 대해 추론하는 결과를 얻을 수 있다.
따라서 이 알고리즘 유형에 계산할 규칙을 만들어 우리가 원하는 최종 결과를 얻거나
문제 해결을 주도할 수 있게 된다고 한다.
그러나, 저자는 마지막으로 알고리즘은 전능하지 않으며 모든 문제를 풀 수 없다고 한다.
아직 비효율성과 오류에 취약하기 때문이라고 한다.
그래도 이 한계를 잘 알기에 앞으로 펼쳐질 컴퓨터 시대에 강하고 자신감 넘칠 것이라 하였다.
이 의미는 컴퓨터 알고리즘이 기본이 되서 앞으로 해야 할 일들이 많다는 것이 아닐까 생각된다.
이 책을 읽으며
잘 알지 못한 프로그래밍 용어들에 나올 때 이해하기 어렵기도 했으나
컴퓨터 과학과 알고리즘의 기본 개념을 이해 하는데 많은 도움이 되었다.
* 출판사로 부터 책을 제공받아 작성한 글입니다.
일단 표지가 눈에 들어온다.
보통의 IT 도서들과는 달리 화려한 표지에 책을 고르게 됐다.
컴퓨터 과학과 알고리즘에 대해 쉽게 설명한다고는 하나 사실 마냥 쉬운 내용만은 아니다.
IT 비전공자로써 책을 보면서 어려운 부분도 군데군데 있었으나
어찌됐든 완독은 해냈다.
대부분의 성인이라면 알고 있는 동화나 영화의 이야기(헨젤과 그레텔, 해리포터 등)로 컴퓨터 과학과 알고리즘의 개념에 대해 설명하고 있어서
어려울 것만 같았던 IT에 조금 더 쉽게 접근할 수 있었다.
특히나 흥미로웠던 부분은 '셜록홈즈'가 나오는 챕터 2였다.
셜록홈즈가 용의자를 추려내는 과정을 통해 알고리즘의 데이터 구성 방식을 설명하는데,
흥미있는 내용이라 그런지 다른 부분보다 이해가 더 잘 되었다.
독자에게 최대한 쉽고 재밌게 컴퓨터 과학과 알고리즘에 대해 설명하려는 저자의 노력이 잘 보이는 책으로,
이 책을 읽는다고 해서 알고리즘을 구현해 낸다거나 할 수 있는 건 아니지만,
그 토대가 되는 컴퓨터 과학에 대한 기초를 다질 수 있는 책이라 IT 입문자들이 꼭 보면 좋을 도서인 것 같다.