한빛미디어
번역서
절판
강력해진 자바스크립트를 정말 제대로 즐겨라!
자바스크립트는 Node.js, 스파이더몽키 등의 플랫폼을 보유한 서버 사이드 컴퓨터 프로그래밍 언어로 점점 입지를 굳혔다. 요즘은 자바스크립트의 쓰임이 브라우저 외부 영역으로 확장되면서 자바스크립트 프로그래머는 C++, 자바 같은 일반 프로그래밍 언어에서 제공하는 다양한 도구(연결 리스트, 스택, 큐, 그래프, 데이터 정렬 알고리즘과 검색 알고리즘 등 전통적인 자료구조와 알고리즘 등)가 필요하게 되었다. 이 책은 다양한 자료구조와 알고리즘의 입출력 데이터를 설명할 뿐만 아니라 어디에 무엇이 가장 적합한 해법인지도 알려준다.
【대상 독자】
· HTML, 자바스크립트, CSS, 자바 프로그래밍에 익숙한 웹 앱 개발자
· '해보면서 배우는' 사람들과 표준 개발 도구를 이용해서 새로운 기술과 기법을 적용하는 실제 예제를 보고 만들기를 선호하는 사람
【이 책에서 다루는 내용】
· 배열과 리스트 : 가장 기본이 되는 자료구조
· 스택과 큐 : 좀 더 복잡한 리스트형 자료구조
· 연결 리스트 : 배열의 단점을 개선한 자료구조
· 딕셔너리 : 키와 값 쌍으로 데이터 저장
· 해싱 : 자료를 빠르게 삽입하거나 가져올 수 있는 자료구조
· 집합 : 모든 데이터가 고유한 상황일 때 적합한 자료구조
· 이진 트리 : 계층적으로 데이터 저장
· 그래프와 그래프 알고리즘 : 네트워크 형태의 자료구조를 구성하는 데 적합
· 알고리즘 : 데이터 정렬과 검색에 유용한 알고리즘
· 고급 알고리즘 : 동적 프로그래밍과 탐욕 알고리즘
【부분별 요약】
· 1장 - 자바스크립트 언어의 개요와 이 책에서 사용하는 자바스크립트의 기능을 설명한다. 또한 이 책 전체에서 사용하는 프로그래밍 형식도 설명한다.
· 2장 - 컴퓨터 프로그래밍에서 가장 흔히 사용하는 자료구조며, 자바스크립트의 네이티브 형식인 배열을 설명한다.
· 3장 - 첫 번째 자료구조인 리스트를 소개한다.
· 4장 - 스택 자료구조를 설명한다. 스택은 컴파일러, 운영체제 구현에서 폭넓게 사용하는 자료구조다.
· 5장 - 큐 자료구조를 설명한다. 큐는 은행이나 슈퍼에 줄을 선 사람들을 추상화한 자료구조다. 보통 차례로 데이터를 처리해야 하는 시뮬레이터 소프트웨어에서 큐를 광범위하게 사용한다.
· 6장 - 연결 리스트를 설명한다. 연결 리스트는 리스트 자료구조를 변형시킨 형태로 각 요소가 별도의 객체며 각 객체끼리 서로 연결되어 있는 자료구조다. 연결 리스트는 데이터를 자주 삽입하거나 삭제하는 프로그램에 효율적인 자료구조다.
· 7장 - 키와 값 쌍으로 데이터를 저장하는 자료구조인 딕셔너리를 만들고 사용하는 방법을 설명한다.
· 8장 - 딕셔너리를 구현하는 방법 중 하나로 해시 테이블을 이용할 수 있다. 해시 테이블과 해시 알고리즘을 이용해 테이블에 데이터를 저장하는 방법을 설명한다.
· 9장 - 세트 자료구조를 설명한다. 자료구조 책에서는 세트를 생략할 때가 종종 있다. 세트는 중복된 데이터를 포함하지 않는 상황에 적합한 자료구조다.
· 10장 - 이진 트리와 이진 탐색 트리를 설명한다. 이전에도 설명했듯이 이진 탐색 트리는 정렬된 형태로 데이터를 저장해야 할 때 유용한 자료구조다.
· 11장 - 그래프와 그래프 알고리즘을 설명한다. 그래프는 컴퓨터 네트워크의 노드나 지도의 도시 등과 같은 데이터를 표현하는 데 사용하는 자료구조다.
· 12장 - 자료구조가 아닌 알고리즘을 중심으로 살펴본다. 특히 작은 데이터를 처리하는 데 적합하며 구현하기 쉬운 간단한 정렬 알고리즘부터 대용량 데이터 세트를 처리하는 데 적합하며 다소 복잡한 알고리즘까지 다양한 알고리즘을 설명한다.
· 13장 - 순차 검색, 이진 검색 등 검색 관련 알고리즘을 설명한다.
· 14장 - 동적 프로그래밍, 탐욕 알고리즘과 같은 고급 알고리즘을 설명한다. 기존의 알고리즘으로는 너무 느리거나 구현하기가 너무 어려울 때 14장에서 소개하는 고급 알고리즘을 사용할 수 있다. 동적 프로그래밍, 탐욕 알고리즘을 이용해 전통적인 문제를 해결하는 예제도 보여준다.