[책] 자바스크립트 자료구조와 알고리즘

11-15@22-29-03-152

교과서 같은 책

자료구조는 언젠가는 입문해야 하는 분야입니다. 개인적으로 프로그램이란 이쁜 데이터 뷰어라고 보는 입장이기 때문에 핵심은 데이터 그 자체라고 생각하는 편입니다.
데이터를 표현하는 방법이 VO(Value Object)라면 그 실체가 되는 알고리즘이 바로 자료구조인 셈입니다.

이 책은 자바스크립트로 고전적인 자료구조와 정렬알고리즘을 구체적으로 구현할 수 있게 기술하고 있습니다.

 

기본 구성

우선은 누구나 이해하기 쉬운 정적 배열과 리스트를 설명하고 링크드리스트와 그 기반의 스택, 큐 등을 설명합니다.

기본 링크드리스트 응용 다음엔 고급응용인 트리와 그래프가 등장하는 일반적인 자료구조 교과서 형태를 따릅니다.

이러한 고전 자료구조는 물론 가치가 있습니다. 예를 들어 자바스크립트 개발자 태반이 해쉬함수를 실제 구현해볼 경험은 흔치 않은데 이 책에서는 구체적인 알고리즘 레벨로 소개하고 있습니다. 본인이 의지만 있으면 얼마든지 객체에 대해서도 해쉬키를 생성하는 알고리즘을 구현해서 자바스크립트의 부족한 부분을 채울 수 있겠죠.

하지만 좋다면 좋고 아쉽다면 아쉬운데, 고전 자료구조도 책의 분량 상 다 소개되지 않았다는 점이 우선 있으나 이건 뭐 이것대로 자주 쓰지 않는 걸 중간고사 볼 것도 아닌데 구지 설명할 필요는 없다고 치고, 모던 자료구조가 빠져있는건 좀 안타깝습니다. 서클큐나 분산스택 등 이미 모던 프로그래밍에선 기본처럼 쓰이는 자료구조도 많이 생략되어있고, 더 나아가 환경을 몽키나 노드로 한정지은 마당에 병행성을 고려한 주제도 전부 생략되어있어 아쉽습니다. 특히 직렬화를 통한 저장과 복원이 거의 없는거나 전무하여 유저에게 떠넘기고 있는 느낌입니다.

그 이후 나오는 정렬알고리즘의 설명은 이 동네 서적중에 손에 꼽을 정도로 친절하고 도해도 좋습니다(실제로는 네이티브 sort를 거의 쓰게 되니까 쓸모가 크지는 않을지라도 응용알고리즘을 짤 수 있는 바탕이 되므로!)

 

좋은 점

자바스크립트는 이미 언어차원에서 딕셔너리나 링크드리스트가 구현되어있는 레벨이지만 정적 언어들이 구현해야하는 레벨로 설명하고 있는 것은 실무적인 차원과는 거리가 있지만 무엇보다 자료구조 그 자체를 친숙한 언어로 알려준다는 점에서 큰 가치가 있습니다.

 

P.S
책에선 처음부터 단서를 최신 자바스크립트 언어 표준에 맞는 인터프리터를 쓰겠다고 명시하고 있습니다.
책에 있는 코드가 브라우저에서는 다소 간의 문제를 일으키는 경우도 있지만 대부분 잘 작동합니다.

%d 블로거가 이것을 좋아합니다: