자바로 배우는 핵심 자료구조와 알고리즘
2018년 06월 12일 출간
국내도서 : 2018년 06월 01일 출간
- eBook 상품 정보
- 파일 정보 PDF (2.21MB) | 185 쪽
- ISBN 9791162249567
- 지원기기 교보eBook App, PC e서재, 리더기, 웹뷰어
-
교보eBook App
듣기(TTS) 불가능
TTS 란?텍스트를 음성으로 읽어주는 기술입니다.
- 전자책의 편집 상태에 따라 본문의 흐름과 다르게 텍스트를 읽을 수 있습니다.
- 이미지 형태로 제작된 전자책 (예 : ZIP 파일)은 TTS 기능을 지원하지 않습니다.
PDF 필기가능 (Android, iOS)

쿠폰적용가 11,520원
10% 할인 | 5%P 적립이 상품은 배송되지 않는 디지털 상품이며,
교보eBook앱이나 웹뷰어에서 바로 이용가능합니다.
카드&결제 혜택
- 5만원 이상 구매 시 추가 2,000P
- 3만원 이상 구매 시, 등급별 2~4% 추가 최대 416P
- 리뷰 작성 시, e교환권 추가 최대 200원
작품소개
이 상품이 속한 분야
이 책은 웹 검색이라는 응용 분야에 집중합니다. 이 분야는 자료구조를 광범위하게 사용하며 자체로도 흥미롭고 중요합니다. 다른 책에서는 보기 어렵지만 기술 인터뷰에 필요한 내용입니다. 또한, 버전 관리와 유닛 테스트 같은 기본적인 소프트웨어 엔지니어링 실무 내용도 다룹니다. 장마다 배운 것을 확인할 수 있는 예제가 있고, 해답을 확인할 수 있는 자동화된 테스트도 제공합니다.
- 리스트와 맵 등의 자료구조 사용과 작동 방식 이해하기
- 위키피디아 페이지를 읽고, 분석하고, 결과 데이터 트리를 탐색하는 응용 프로그램 작성하기
- 코드를 분석하여 실행시간과 필요한 메모리양 예측하기
- 해시 테이블과 이진 검색 트리를 사용하여 맵 인터페이스 구현하기
- 크롤러로 웹 검색 엔진 구축하기
_1.1 리스트가 두 종류인 이유
_1.2 자바 interface
_1.3 List interface
_1.4 실습 1
CHAPTER 2 알고리즘 분석
_2.1 선택 정렬
_2.2 빅오 표기법
_2.3 실습 2
CHAPTER 3 ArrayList 클래스
_3.1 MyArrayList 메서드 분류하기
_3.2 add 메서드 분류하기
_3.3 문제 크기
_3.4 연결 자료구조
_3.5 실습 3
_3.6 가비지 컬렉션
CHAPTER 4 LinkedList 클래스
_4.1 MyLinkedList 메서드 분류하기
_4.2 MyArrayList와 MyLinkedList 비교하기
_4.3 프로파일
_4.4 결과 해석하기
_4.5 실습 4
CHAPTER 5 이중 연결 리스트
_5.1 성능 프로파일 결과
_5.2 LinkedList 메서드 프로파일하기
_5.3 LinkedList 끝에 더하기
_5.4 이중 연결 리스트
_5.5 자료구조 선택하기
CHAPTER 6 트리 순회
_6.1 검색 엔진
_6.2 HTML 파싱하기
_6.3 jsoup 사용하기
_6.4 DOM 트리 반복하기
_6.5 깊이 우선 탐색
_6.6 스택
_6.7 반복적 DFS
CHAPTER 7 철학으로 가는 길
_7.1 시작하기
_7.2 Iterable과 Iterator
_7.3 WikiFetcher
_7.4 실습 5
CHAPTER 8 인덱서
_8.1 자료구조 선택
_8.2 TermCounter
_8.3 실습 6
CHAPTER 9 Map 인터페이스
_9.1 MyLinearMap 구현하기
_9.2 실습 7
_9.3 MyLinearMap 분석하기
CHAPTER 10 해싱
_10.1 해싱
_10.2 해싱의 동작 방식
_10.3 해싱과 변형
_10.4 실습 8
CHAPTER 11 HashMap 클래스
_11.1 실습 9
_11.2 MyHashMap 분석하기
_11.3 트레이드오프
_11.4 MyHashMap 프로파일링
_11.5 MyHashMap 클래스 고치기
_11.6 UML 클래스 다이어그램
CHAPTER 12 TreeMap 클래스
_12.1 해싱의 문제점
_12.2 이진 탐색 트리
_12.3 실습 10
_12.4 TreeMap 구현하기
CHAPTER 13 이진 탐색 트리
_13.1 단순한 MyTreeMap 클래스
_13.2 값 탐색하기
_13.3 put 메서드 구현하기
_13.4 중위 순회
_13.5 로그 시간 메서드
_13.6 자가 균형 트리
_13.7 추가 실습
CHAPTER 14 영속성
_14.1 레디스
_14.2 레디스 클라이언트와 서버
_14.3 레디스 기반 인덱스 만들기
_14.4 레디스 데이터 타입
_14.5 실습 11
_14.6 추가 제안
_14.7 설계 힌트
CHAPTER 15 위키피디아 크롤링
_15.1 레디스 기반의 인덱서
_15.2 조회 성능 분석
_15.3 인덱싱 성능 분석
_15.4 그래프 순회
_15.5 실습 12
CHAPTER 16 불리언 검색
_16.1 크롤러 해답
_16.2 정보 검색
_16.3 불리언 검색
_16.4 실습 13
_16.5 Comparable과 Comparator
_16.6 확장
CHAPTER 17 정렬
_17.1 삽입 정렬
_17.2 실습 14
_17.3 병합 정렬 분석
_17.4 기수 정렬
_17.5 힙 정렬
_17.6 제한된 힙 정렬
_17.7 공간 복잡도
이 책은 자료구조와 알고리즘에 대한 내용을 설명하기 위해 문제 풀이 형식으로 구성되어 있습니다. 14개의 실습을 통해 자바 언어에서 기본으로 제공하는 자료구조인 자바 컬렉션 프레임워크(Java Collections Framework, JCF)의 주요 클래스를 중심으로 개념을 학습하고 시간 복잡도를 분석하며 성능을 측정해 봅니다. 또한, 성능 개선에 대해서도 알려 줍니다.
자료구조와 알고리즘에 대한 이해는 소프트웨어의 품질을 높이는 아주 기본적인 작업입니다. 요즘은 빅데이터와 클라우드가 있고 이미 검증된 수많은 DBMS가 있지만, 단지 활용만 해서는 원하는 품질을 얻기 힘듭니다. 내가 잘 만들고 있는지, 이미 구현된 레거시 소프트웨어의 병목은 무엇인지 분석하려면 학부 과정에서 배우는 자료구조와 알고리즘이 단단한 기본기가 되기 때문입니다. 졸업하고 나면 세부 내용은 모두 잊히겠지만, 머릿속 어딘가에는 남아 다시 떠올리게 됩니다.
이 책은 한 번에 후루룩 읽기에는 꽤 압축적인 내용을 담고 있습니다. 꼭 설명해야 할 내용은 본문에서 충분히 설명하지만, 그 외 부가적인 내용은 과감하게 외부 링크를 제공합니다. 실습 과제를 먼저 제공하고 그다음 장에서 바로 필자의 해답을 제시하기 때문에 부담을 가질 필요는 없습니다. 끝까지 읽는다면 큰 도움이 된다고 확신합니다.
- 옮긴이의 말 중에서
작가정보
저자 앨런 B. 다우니(Allen B. Downey)
올린 공과대학교(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, 이상 한빛미디어)이 있습니다.
이 상품의 총서
Klover리뷰 (0)
- - e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- - 리워드는 5,000원 이상 eBook, 오디오북, 동영상에 한해 다운로드 완료 후 리뷰 작성 시 익일 제공됩니다. (2024년 9월 30일부터 적용)
- - 리워드는 한 상품에 최초 1회만 제공됩니다.
- - sam 이용권 구매 상품 / 선물받은 eBook은 리워드 대상에서 제외됩니다.
- 도서나 타인에 대해 근거 없이 비방을 하거나 타인의 명예를 훼손할 수 있는 리뷰
- 도서와 무관한 내용의 리뷰
- 인신공격이나 욕설, 비속어, 혐오 발언이 개재된 리뷰
- 의성어나 의태어 등 내용의 의미가 없는 리뷰
구매 후 리뷰 작성 시, e교환권 100원 적립
문장수집
- 구매 후 90일 이내에 문장 수집 등록 시 e교환권 100원을 적립해 드립니다.
- e교환권은 적립일로부터 180일 동안 사용 가능합니다.
- 리워드는 5,000원 이상 eBook에 한해 다운로드 완료 후 문장수집 등록 시 제공됩니다. (2024년 9월 30일부터 적용)
- 리워드는 한 상품에 최초 1회만 제공됩니다.
- sam 이용권 구매 상품 / 선물받은 eBook / 오디오북·동영상 상품/주문취소/환불 시 리워드 대상에서 제외됩니다.
구매 후 문장수집 작성 시, e교환권 100원 적립
신규가입 혜택 지급이 완료 되었습니다.
바로 사용 가능한 교보e캐시 1,000원 (유효기간 7일)
지금 바로 교보eBook의 다양한 콘텐츠를 이용해 보세요!

- 구매 후 90일 이내 작성 시, e교환권 100원 (최초1회)
- 리워드 제외 상품 : 마이 > 라이브러리 > Klover리뷰 > 리워드 안내 참고
- 콘텐츠 다운로드 또는 바로보기 완료 후 리뷰 작성 시 익일 제공
가장 와 닿는 하나의 키워드를 선택해주세요.
총 5MB 이하로 jpg,jpeg,png 파일만 업로드 가능합니다.
신고 사유를 선택해주세요.
신고 내용은 이용약관 및 정책에 의해 처리됩니다.
허위 신고일 경우, 신고자의 서비스 활동이 제한될 수
있으니 유의하시어 신중하게 신고해주세요.
이 글을 작성한 작성자의 모든 글은 블라인드 처리 됩니다.
구매 후 90일 이내 작성 시, e교환권 100원 적립
eBook 문장수집은 웹에서 직접 타이핑 가능하나, 모바일 앱에서 도서를 열람하여 문장을 드래그하시면 직접 타이핑 하실 필요 없이 보다 편하게 남길 수 있습니다.
차감하실 sam이용권을 선택하세요.
차감하실 sam이용권을 선택하세요.
선물하실 sam이용권을 선택하세요.
-
보유 권수 / 선물할 권수0권 / 1권
-
받는사람 이름받는사람 휴대전화
- 구매한 이용권의 대한 잔여권수를 선물할 수 있습니다.
- 열람권은 1인당 1권씩 선물 가능합니다.
- 선물한 열람권이 ‘미등록’ 상태일 경우에만 ‘열람권 선물내역’화면에서 선물취소 가능합니다.
- 선물한 열람권의 등록유효기간은 14일 입니다.
(상대방이 기한내에 등록하지 않을 경우 소멸됩니다.) - 무제한 이용권일 경우 열람권 선물이 불가합니다.
첫 구매 시 교보e캐시 지급해 드립니다.

- 첫 구매 후 3일 이내 다운로드 시 익일 자동 지급
- 한 ID당 최초 1회 지급 / sam 이용권 제외
- 구글바이액션을 통해 교보eBook 구매 이력이 없는 회원 대상
- 교보e캐시 1,000원 지급 (유효기간 지급일로부터 7일)