자바로 배우는 핵심 자료구조와 알고리즘
문화이야기/도서이야기☆

자바로 배우는 핵심 자료구조와 알고리즘

안녕하세요. 천사마음입니다.


오늘 소개할 책은 <자바로 배우는 핵심 자료구조와 알고리즘>입니다.[각주:1] 약 180페이지 정도로 구성된 얇은 책이지만, 자료구조와 알고리즘을 학습하면서 반드시 알아야 할 기본적인 핵심 내용을 대부분 포함하고 있습니다.


이 책은 주요 자료 구조를 소개한 후, 실습 문제를 풀이하면서 자연스럽게 학습하는 방식으로 구성되어 있습니다. 이런 접근 방법은 신선하면서도 원저자의 많은 고뇌가 담겨있다고 생각합니다. 제게는 매우 신선했습니다. 이렇게 좋은 기회를 제공해주신 한빛미디어 관계자님께 깊은 감사의 말씀을 전합니다.


The Book INSIDE

[제목] 자바로 배우는 핵심 자료구조와 알고리즘

[평점] ★★★★


[저자] 가사키 나가토, 다미야 나오토 지음

[링크] 도서소개 | 미리보기


한빛미디어 | 2018-06-01

184쪽 | ISBN(13) : 9791162240847



앨런 B. 다우니

올린 공과대학교(Olin College of Engineering)의 컴퓨터공학과 교수로, 웰즐리 대학교(Wellesley College)와 콜비 대학교(Colby College), UC 버클리 대학교(UC Berkeley)에서 강의하였습니다. UC 버클리 대학교에서 컴퓨터공학 박사 학위를, MIT에서 석사와 학사 학위를 받았습니다. 이 책 외에도 『Think Stats』(2013), 『파이썬을 활용한 베이지안 통계』(2014, 이상 한빛미디어)를 집필하였습니다.

유동환

책 쓰는 프로그래머. 연세대학교 정보대학원에서 경영정보학을 전공한 후 LG전자에 안드로이드 앱을 개발하였습니다. 최근에는 선행플랫폼개발팀으로 자리를 옮겨 차세대 모바일 기술 프로젝트를 진행하고 있습니다. 자바카페와 한국자바개발자협의회(JCO)의 초기 멤버로 수년간 활동하였습니다.집필한 책으로는 『안드로이드를 위한 Gradle』(2016)과 『RxJava 프로그래밍』(공저, 2017, 이상 한빛미디어)이 있고, 번역한 책으로는 『Professional Java Web Services』(2002, 정보문화사)와 『그레이들 레시피』(2016), 『Java 9 모듈 프로그래밍』(2018, 이상 한빛미디어)이 있습니다.


이 책에서 다루는 내용은?

자료 구조(Data Structure)는 시스템에서 데이터를 효율적으로 사용할 수 있도록 데이터의 특성에 따라 알맞은 구조를 만들어 저장하는 방법입니다. 특정 응용에 적합한 자료 구조는 시스템의 효율을 높여줄 수 있습니다.


<자바로 배우는 핵심 자료구조와 알고리즘>에서는 Java Collection Framework(JCF)를 기초로 JCF에서 제공하는 자료 구조를 간단하게 구현하는 방법으로 기본 자료 구조를 소개합니다. 또한, 이야기의 전개 과정이 어떤 문제를 제시하고 이를 해결하기 위한 자료 구조가 어떤 것이 있을까? 라는 의문을 제시하면서 자료 구조에 관해 설명합니다. 이런 전개 과정으로 독자는 각 자료 구조에 대한 이해도를 높일 수 있으며 흥미를 끝까지 잃지 않고 완독할 수 있는 모티브를 제공합니다. 필자는 시간이 많이 소요되었지만 재미있는 시간이었습니다.


이 책에서 소개하는 자료 구조는 Array List, Linked List, Doubly Linked List, Tree, Map, Hash, Binary Search Tree 등 기본 자료 구조를 다룹니다. 물론 지면 한계로 말미암아 꼭 다뤄야 할 기본 자료 구조를 전부 다루지 못하고, 각 자료 구조에 대한 이론적 배경에 관해서 설명이 미흡한 것은 사실입니다. 하지만 굉장히 실용적으로 빈번히 사용하는 자료 구조에 대해서는 대부분 기술하고 있으며, 더 깊이 있게 학습하고 싶은 분들은 관련 내용을 더 학습하면 될 것입니다.


기본 자료 구조 이외에도 간단하게 위키피디아 웹 크롤러와 인덱스 구현하는 예제를 제시합니다. 물론 매우 간단한 예제이지만 자료 구조를 실제 응용에서 어떻게 활용하는지에 대한 감을 잡을 수 있을 것입니다. 실제로 이 책을 따라가면서 이 예제를 직접 만들다 보면 더 좋은 방법이 있지 않을까? 라는 생각을 하는 자신을 발견할 수 있을 것입니다.

실무에서 JCF를 많이 사용하는 분들이라면 이번 휴가 기간에 한 번 학습해 보는 것이 어떨까요? 학생이라면 이번 방학을 이용해서 자바의 Collection Framework를 조금 더 재미있게 할 수 있는 계기로 만드는 것도 좋을 것 같습니다.

마치면서...

<자바로 배우는 핵심 자료구조와 알고리즘>을 읽은 후, 자바에서 제공하는 기본 자료구조와 알고리즘 활용법에 대해 정리할 수 있는 시간을 가질 수 있었습니다. 그리고 장마다 주어진 실습 문제를 풀이[각주:2]하며 즐거운 시간을 보냈습니다.


약 180페이지로 구성된 얇은 책이므로 이 책에서 설명하는 내용은 제한적입니다. 다만 주요 요소 내용을 링크로 꼼꼼히 정리하여 제공하고 있으므로, 깊이 있게 학습할 분들은 관련 링크를 참고하시면 도움을 얻을 수 있을 것입니다.




  1. 필자는 Algorithm을 알고리듬으로 표현하는데, 책 제목이 '알고리즘'으로 되어 있어 이 문서에서는 알고리즘으로 표현하겠습니다. [본문으로]
  2. 안타깝게도 주어진 시간이 짧아 100% 풀이하지는 못했습니다. [본문으로]