|
1. 자바스크립트로 알고리즘을?
책을 받고 보니.... IT 서적 분야에서는 둘째 가라면 서러울 O'REILLY의 책이었다.
그래서 이런 디자인이.... 역시... 하면서 고개를 끄덕였더랬다. =_=;;
[자바스크립트 자료구조와 알고리즘 (Datat Structures & Algorithms with JavaScript] 마이클 맥밀런 지음 우정은 옮김
O'REILLY의 책이 좋은 점은 핵심만! 적는다는 것이다. 그리고 최대 단점 역시 핵심만!!! 적어버린다는 것이다.
책 뒤에 보면 저런 내용들을 다룬다고 일단 적혀 있다.
오호~ 그래? 이번엔 얼마나 빠르고 재미있게(위에 적혀 있다) 익힐 수 있는 구성이려나? ^^
우선 환경 구성을 해야겠지?
정말 심플! 미니멀하다!
사실 우리나라 책들은 환경 설정(앞에는 역사 같은 것도 나오고;;;;)에 거의 한 챕터를 소비하는데 그런 건 솔직히 좀 너무 한다는 생각이 들 때가 많았다.
그런데 이건 너무 간단하잖아;;;;;;
사실 웹 프로그래밍이니까 뭐 이 정도로 그쳐도 알아서 설치한다고 치고 넘어가자. (사실 메모장으로 쳐도 될 내용이니 뭐....)
책의 구성은 정말 간단하다. 책 뒤편에 나왔던 자료구조와 알고리즘이 순서대로 챕터로 구성되어 있으며 한, 두 페이지에 챕터에서 다루는 주제에 대한 간단한 설명이 이어진 후 몇 가지 실행 예제가 나온다.
예제들은 실행 자체가 그리 어려운 정도는 아니고 위에서 언급한 것처럼 O'REILLY 책 답게 부연설명 거의 없이 딱 내용만 들어 있다.
여기에서 몇 가지 문제가 있다.
2. '생략'이 모든 미덕의 근간이 될 수는 없다.
아래는 해싱(Hasing) 챕터의 도입 부분이다.
저 내용을 보고 해싱이 뭔지 한 번에 이해한 사람이 있다면..... 그 사람은 프로그래밍이 천직일 것이다. -_-;;;
대부분의 챕터가 저렇게 시작되면서 간결한 설명 이후 바로 실습 예제로 넘어 간다.
그렇다면.... 이 책을 산 두 부류의 사람의 반응을 예상해 보자.
예 1) 자료구조와 알고리즘을 잘 알고 있는 사람
'음... 해싱에 대해 다루는 군... 이 예제는 이렇게 하면 되겠는데? 역시... 내가 생각한 대로군. 후후후... 다음에는 무슨 내용이 나오는지 볼까?'
예 2) 자료구조와 알고리즘을 이 책으로 배우려 했던 사람
'음? 해싱? 그게 뭐지? 구글링 해 볼까? 아냐, 일단 좀 읽어 보고.... 엇, 뭐야? 설명이 이게 끝이야? 그 다음 예제 하면 알 수 있는 건가? @_@'
조금 과장하긴 했지만.... 책이 워낙 예제 중심이라 이 책을 통해 자료구조와 알고리즘을 이해할 수는 없다. ('어럽다'를 쓰지 않은 것에 주목) 다만, 그 동안 알고 있던 자료구조와 알고리즘에 대해 Web 파트에 적용되는 JavaScript에서는 어떤 식으로 구현할 수 있는지를 예제를 통해 보여주는 형식이라고 할 수 있다.
때문에 이 책은 일반 객체지향 언어를 통한 알고리즘 책과 거의 유사한 형태이며 입문서가 아닌 경력자들을 위한 책이라 할 수 있다.
아래의 그림을 살펴 보자.
이진 트리에 대한 검색 순서를 그림으로 표현한 것인데... 보면 순서가 표시되어 있지 않고 화살표로만 표현되어 있다. 이진 트리라 너무 간단한 것이어서 그랬는지는 모르겠으나....
다른 페이지의 깊이 우선 검색을 보면 얘기가 다르다.
여기에는 순서가 나온다. 이왕 이렇게 표로 첨부할 거였다면, 이진트리에도 한 번 적어주는 것이 낫지 않았을까....
실습과 예제 중심의 O'REILLY 책이라고는 하지만 조금 더 상세하고 친절하게 적어주었다면 하는 아쉬움이 남는다.
3. 책을 덮으며
이 책은 전형적인 O'REILLY 스타일이다. 심플하고 예제 중심적이며, 그 외의 군더더기는 없다.
때문에 이 책은, 위에서 한 차례 언급한 것처럼 이미 자료구조와 알고리즘을 잘 아는 사람에게는 한 번쯤 읽어볼 만한 책이 될 수도 있겠다.
하지만, 이 책을 처음으로 하여 자료구조 또는 알고리즘을 공부하려 했던 사람이라면, 특히나 그 사람이 자바스크립트를 알고 있었던 사람이라 하더라도 이 책을 통해 얼마나 깊이 있는 이해를 할 지 좀 의문스럽다.
중급 이상의 IT 개발자에게 권하고픈 책이다. |
|
지금까지 자바스크립트로 알고리즘을 짜고 싶었지만 인터넷에 찾아봐도 정확한 정보를 찾기가 힘들었다. 하지만 이 부분을 해결해 주는 정말 좋은 책을 만났다. '자바스크립트 자료구조와 알고리즘' 기본적인 자료구조와 알고리즘을 자바스크립트를 통해서 해결해 나가는 책이다. 자바스크립트로 자료구조를 다루는 책이 내가 생각하기에는 이 책 이외에 없는걸로 알고 있다. 대충 내용을 떄려 박은 책이 아닌 내용적인 측면에서도 정말 유익한 내용이 들어 있다. 물론 이 책은 자바스크립트를 잘 알고 있는 사람들에게 추천하는 바다. 기본적인 문법을 설명해주긴 하지만 정말 간략하게 설명해준다. 처음 입문자에게는 비추천하는 책 |
|
근 한달만에 책 리뷰를 쓰게 되네요!
이번 책은 한빛미디어에서 나온 자바스크립트 자료구조와 알고리즘 입니다.
생각보다 어마어마하죠? 자료구조책 하면 자바나 C++,C 정도의 책들이 대다수인데 자바스크립트라니? 웹의 영역이 넓어지고 많은 프로그램들이 클라우드 기반 혹은 웹 인터페이스로 옮겨가면서 자바스크립트의 위상이 높아지긴했지만 이런책도 나오다니 뿌듯뿌듯 또 신기신기 합니다.
이 책은 O'Reilly 책이라서 표지에는 역시나 생물 그림이 떡하니!! 있고, 저자는 믿을만하죠? 거기다 역자이신 우정은 님은 저희학교 선배님이시더라고요. 그래서 우와우와! 하면서 신나게 보기 시작했습니다.
자료 구조책은 수도 없이 많이 봤습니다만, 자바스크립트로 해서 그런지 소스 자체가 약간 더 간결한 느낌? 그러나 소스를 활용하기는 조금 더 어렵다는 생각이 들었습니다.
첫장에서 js 콘솔을 다운로드 해서 진행하도록 했는데요. 별거 없더라고요? 그냥 다운로드만 받아서 콘솔에서 켜주기만 하면 됩니다. 일반적으로 다른 언어의 인터프리터를 사용해보신 분들은 설치과정이 없어서 더 깔끔하다고 느끼실 만큼 실습 환경은 깔끔해서 좋았습니다.
![]()
자 이제 실제 코딩으로 들어가 보겠습니다. 코딩에 들어가면 우선 각각의 자료구조에 대한 설명이 나옵니다. 모든 프로그래밍 자료 구조의 기본은 배열! 이죠. 그래서 배열에 대한 설명부터 쭈욱 읽어 볼 수 있습니다. 여기까지는 입문서라도 해도 좋을만큼 간결하고 이해하기 쉽도록 설명이 되어 있었습니다!
그 이후로 설명되는 자료구조는 리스트, 스택, 큐, 연결 리스트, 딕셔너리, 해싱, 집합, 이진 트리와 이진 검색 트리 그리고 알고리즘들은 그래프와 그래프 알고리즘, 정렬 알고르짐, 검색 알고르짐, 고급 알고리즘 이런 식입니다. 사실 자료구조와 알고리즘을 구분해서 말하기가 조금 이상하지만. 어쨌든 목차에는 저런식으로 자료구조와 알고리즘이 구분되어 있습니다.
![]() 특히 군침이 도는 챕터는 11 챕터 입니다. 그래프와 그래프 알고리즘인데요!!! 알고리즘에 관심있는 분들은 아시겠지만 알고리즘 문제 풀이나 대회에 가면 꼭 필요한 알고리즘입니다. 일부 대회에서는 저런 소스를 미리 준비해가서 풀기도 할만큼 많은 문제에서 사용되는 알고리즘이라 꼭 필요한 부분인데. 이게 대회 관련 책들에도 해당 문제를 푸는 부분에 대해서만 설명된 부분이 많고, 알고리즘 입문서에는 빠져있는 책들이 훨씬 더 많습니다.
그래서 이 책이 정말 보고 싶었던 이유도 저 11챕터의 그래프 알고리즘 때문입니다!! 대박 사건!!!!!!!!!!
하지만! ![]()
저같이 전공자 혹은 알고리즘에 대한 어느정도 지식이 있는 사람이 아니고서는 이 책은 입문서로 추천하기는 좀 어렵습니다. 프로그래밍에 대한 전체파트에 기본지식들이 있는 상태여서. 이제 갓 한가지 언의 문법 공부를 마치고! 다음에는 알고리즘 공부를 해볼까? 하는 사람들이 보기에는 너무 전공분야에 대한 기본지식을 많이 요구합니다. 해싱에 대한 설명만 봐도 키와 값에 대한 이해가 있는 사람들은 아 하고 넘어가겠지만 아닌 사람들은 뭐라는거지 하고 이해가 안될 수가 있고.
각각의 알고리즘의 활용분야에 대한 설명도 좀 미비한 감이 있어서 절대절대 입문서로는 비추 입니다. 여러가지 언어로 알고리즘과 자료구조를 공부해 보려는 분이나, 자바스크립트를 좀더 라이브러리 없이 재미나게 써보고 싶은 분들 깊게 활용해 보고 싶으신 분들에게 추천할 만한 책입니다.
어쨌든! 총 296페이지로 얇아서 빨리 후다닥 보기에 좋은 책입니다. 프로그래밍 입문서를 볼 때 추천하는 기간은 1주일 빡시게 1주일안에 한번 보는 것을 추천하는 편인데, 제가 회사다니면서 약 2주에 걸쳐서 (추석 연휴가 있었으니까?) 봤으니 분량도 적고 빠르게 보기 적당한 책입니다.
여러분? 프로그래머로서 기본기를 탄탄하게 쌓으셔야죠? 갑시다 구매하러!
|
|
이번에 볼책은 자바스크립트 자료구조와 알고리즘- 마이클 맥밀런 이라는 책입니다.
자바스크립트만으로 홈페이지를 만들어서 이 책이 도움이 될까해서 읽어보게 되었습니다.
일단 별점을 매기자면 ★★★☆☆ 3점! 자 그럼 이 책의 장점과 단점에 대해서 말해보도록 하자.
이 책의 장점으로는 독자들이 할만한 질문들을 미리 생각하고 답을 제시하는 점이다.
134쪽의 Dictionary 클래스의 부가함수 부분에
conunt()함수라는 부분에서 왜 length프로퍼티를 사용하지 않은지 의아해하는 독자도 있을 것이다. 하며 length프로퍼티는 문자열 키에서는 제대로 동작하지 않기 때문이다. 라고 말을 한다!
그리고나서 구체적인 예제를 보여준다. 우와! (충분히 독자들이 궁금해야 할 내용이다. 왜냐하면 그전 QUEUE클래스만 보더라고 항상 names.lenghs 이런식으로 lengh를 넣었기 때문이다. )
264쪽의 텍스트 데이터검색부분또한 마찬가지다. 13장을 보면 쭉 숫자데이터만을 찾는 검색 프로그램만 나온다. 그러나 텍스트를 찾는 검색프로그램은 나오지 않길래
뭐여.. 이렇게 생각했다가
뭐여! 하고 다시 보게 되는...ㅇㅁㅇ 놀랍당.. 자 이제 단점이다.
이 예제를 하나하나 실행하다 보면 좀 문제점이 있는데 배열이름이 무슨.. 너무 어렵다.. 주제에 맞는 배열이름인 건 알겠지만.. 뭐랄까 치기어렵다는 그리고 splice()함수에 대한 설명부분이 아쉽다. 이 책에도 splice함수부분이 설명이 되어잇지만, 자세히 설명되어 있지 않다.
w3shool에서 splice()함수를 치면 더 자세히 나와있어서 한번 써보았다.
이 책에 그 부분을 추가했으면 좋겠다.'ㅂ' 3.2 List 클래스 구현 같은 경우는 오류가 떴다.
나는 visual express for web으로 html파일에 스크립트 부분에 넣어서 실행했는데 (아예 안되는 부분도 있다.)
이 부분 같은 경우는 처음에 저렇게 this.어쩌구 = 저쩌구로 모두 정의를 해놓았다가
3.2를 넘기면서 차근차근 예제를 적으면서 하면 정의된 함수를 쓴 예제는 상관이 없는데 정의를 해놓고 안쓰게 되면 전체가 오류가 걸리는 그런 현상이 일어난다.
예를들어
홍철 지원 아름 이렇게 정의를 해놓고
예제1에는 홍철만 있다 홍철 실행 > 지원, 아름 undefined 전체 오류
예제2에는 홍철, 지원만 있다. 홍철, 지원실행 > 아름 undefined 전체오류
이렇게 'ㅂ' 3.3의 리스트와 반복부분 같은 경우는 구체적인 예가 부족했다. 반복자를 이용해 리스트를 탐색하는 코드다. 하고 끝이다. 딸랑 한쪽짜리 설명.. ㄷㄷ 전체적으로 봤을때 배열과 자료구조 객체, 알고리즘 의 정의나 설명같은게 좋았지만, 부분적으로 보면 빠진 예제들이나 오류들, 복잡함등이 있었다. 그리고 이건 js shell 로 실행한다고 하던데, 구글링해서 들어가려고 하니 막혀있더라.. 'ㅂ' (학교인터넷의 보안때문인지 모르겠지만.. )
첫장에 js shell을 어떤 경로로 깔아야 하는지 알려줬으면 더 좋았을 것같다. 왠지 칼들고 멧돼지 사냥하는 법은 알려주는데 정작 칼을 쥐는 법은 안 가르쳐주는 느낌이랄까...
그럼
끝- |