본문 바로가기

추천 검색어

실시간 인기 검색어

자바스크립트로 하는 자료 구조와 알고리즘

핵심 자료 구조와 알고리즘을 이해하고 구현하기 위한 입문서
웹 프로페셔널
배세민 저자(글) · 김무항 번역
에이콘출판 · 2019년 08월 30일
9.6
10점 중 9.6점
(9개의 리뷰)
집중돼요 (50%의 구매자)
  • 자바스크립트로 하는 자료 구조와 알고리즘 대표 이미지
    자바스크립트로 하는 자료 구조와 알고리즘 대표 이미지
  • A4
    사이즈 비교
    210x297
    자바스크립트로 하는 자료 구조와 알고리즘 사이즈 비교 188x236
    단위 : mm
01 / 02
MD의 선택 무료배송 이벤트 소득공제
10% 27,000 30,000
적립/혜택
1,500P

기본적립

5% 적립 1,500P

추가적립

  • 5만원 이상 구매 시 추가 2,000P
  • 3만원 이상 구매 시, 등급별 2~4% 추가 최대 1,500P
  • 리뷰 작성 시, e교환권 추가 최대 300원
배송안내
무료배송
배송비 안내
국내도서/외국도서
도서 포함 15,000원 이상 구매 시 무료배송
도서+사은품 또는 도서+사은품+교보Only(교보굿즈)

15,000원 미만 시 2,500원 배송비 부과

교보Only(교보배송)
각각 구매하거나 함께 20,000원 이상 구매 시 무료배송

20,000원 미만 시 2,500원 배송비 부과

해외주문 서양도서/해외주문 일본도서(교보배송)
각각 구매하거나 함께 15,000원 이상 구매 시 무료배송

15,000원 미만 시 2,500원 배송비 부과

업체배송 상품(전집, GIFT, 음반/DVD 등)
해당 상품 상세페이지 "배송비" 참고 (업체 별/판매자 별 무료배송 기준 다름)
바로드림 오늘배송
업체에서 별도 배송하여 1Box당 배송비 2,500원 부과

1Box 기준 : 도서 10권

그 외 무료배송 기준
바로드림, eBook 상품을 주문한 경우, 플래티넘/골드/실버회원 무료배송쿠폰 이용하여 주문한 경우, 무료배송 등록 상품을 주문한 경우
2/17(월) 출고예정
기본배송지 기준
배송일자 기준 안내
로그인 : 회원정보에 등록된 기본배송지
로그아웃 : '서울시 종로구 종로1' 주소 기준
로그인정확한 배송 안내를 받아보세요!

이달의 꽃과 함께 책을 받아보세요!

1권 구매 시 결제 단계에서 적용 가능합니다.

알림 신청하시면 원하시는 정보를
받아 보실 수 있습니다.

이 책의 이벤트

해외주문/바로드림/제휴사주문/업체배송건의 경우 1+1 증정상품이 발송되지 않습니다.

키워드 Pick

키워드 Pick 안내

관심 키워드를 주제로 다른 연관 도서를 다양하게 찾아 볼 수 있는 서비스로, 클릭 시 관심 키워드를 주제로 한 다양한 책으로 이동할 수 있습니다.
키워드는 최근 많이 찾는 순으로 정렬됩니다.

자료 구조와 알고리즘의 개념을 이해하고 이를 자바스크립트로 구현하기 위한 책이다. 자바스크립트 프로그래머라면 제대로 된 애플리케이션을 만들기 위해 알아야 할 핵심 자료 구조와 알고리즘을 다룬다. 해시 테이블, 연결 리스트, 큐, 트리, 그래프 등의 핵심 자료 구조와 검색, 정렬, 재귀, 동적 프로그래밍, 비트 연산 등의 핵심 알고리즘을 배우고 이를 실제 자바스크립트로 구현해본다. 이러한 과정을 통해 자료 구조와 알고리즘에 대한 이해도를 높일 수 있을 뿐만 아니라 자바스크립트 구현 능력도 키울 수 있다.

이 책의 총서 (73)

작가정보

저자(글) 배세민

옐프(Yelp)에서 근무 중인 데이터 엔지니어다. 엔비디아(NVIDIA)의 데이터 플랫폼 엔지니어링 팀에서 일한 바 있다. 스마트 테크놀로지스(SMART Technologies)에서 인턴 생활을 하면서 자바스크립트에 깊은 관심을 갖게 됐다. 스마트 테크놀로지스에서 보드 드라이버와 웹 애플리케이션 간 직렬 포트 통신을 위한 Node.js 기반 자바스크립트 API를 개발했다. 자바스크립트가 최신 소프트웨어 엔지니어링 산업에 밀접한 영향을 미침에도 이 책을 제외하고는 자바스크립트를 사용해 알고리즘과 자료 구조를 가르치는 책이 없다. 이러한 알고리즘과 자료 구조와 같은 컴퓨터 과학 개념이 얼마나 어려운지 잘 이해하고 있다. 이 책의 목표는 어려운 개념을 명확하고 간결하게 설명하는 것이다.

번역 김무항

위치 기반 서비스, 증강 현실, 보안 등 다양한 분야에서 연구와 개발을 했다. 기술 번역에 관심이 많다. 에이콘출판사에서 펴낸 『드루팔 사용하기』(2013)와 『프로그래머처럼 생각하기』(2014), 『PHP와 MariaDB를 활용한 웹 애플리케이션 개발』(2016), 『파이썬으로 처음 시작하는 코딩』(2018)을 번역했다.

작가의 말

이 책을 쓰게 된 것은 자바스크립트로 작성된 자료 구조와 알고리즘에 관한 자료가 부족하기 때문이었다. 오늘날, 소프트웨어 개발과 관련한 많은 일자리가 자바스크립트 지식을 필요로 한다는 점을 고려하면 이렇게까지 자료가 부족한 것은 개인적으로 이상하다고 생각했다. 특히 자바스크립트는 프론트엔드, 모바일(네이티브, 하이브리드) 플랫폼, 백엔드를 포함해 전체 스택을 작성하는 데 사용 가능한 유일한 언어다. 자바스크립트 개발자가 자료 구조가 어떤 식으로 동작하고, 애플리케이션을 만들기 위해 알고리즘을 어떤 식으로 설계해야 할지 이해하는 것은 매우 중요하다.
따라서 이 책의 목적은 컴퓨터 과학의 자료 구조와 알고리즘 개념을 좀 더 일반적인 자바나 C++가 아닌 자바스크립트에 맞춰 알려주는 것이다. 상속 패턴을 따르는 자바와 C++와 달리, 자바스크립트는 프로토타입 활용 상속 패턴을 따르기 때문에 자바스크립트로 자료 구조를 작성할 때는 약간의 변경이 필요하다. 기존의 상속 패턴의 경우 청사진과 같은 형태를 생성해야 하며, 상속 시 객체가 해당 형태를 따라야 한다. 하지만 프로토타입 활용 상속 패턴은 객체를 복사한 다음, 해당 복사된 객체의 속성을 변경하는 것을 의미한다.
이 책은 우선 빅오(Big-O) 분석에 관한 기초적인 수학을 다룬다. 그러고 나서 기본 객체와 기본형과 같은 자바스크립트 기초를 다룬다. 그 뒤 연결 리스트와 스택, 트리, 힙, 그래프와 같은 기본적인 자료 구조에 관한 구현과 알고리즘을 알아본다. 마지막으로 효율적인 문자열 검색 알고리즘과 캐싱 알고리즘, 동적 프로그래밍 문제와 같은 고급 주제를 자세히 살펴본다.

목차

  • 지은이 소개
    한국어판 출간에 부쳐
    감사의 글
    기술 감수자 소개
    옮긴이 소개
    옮긴이의 말
    들어가며

    1장. 빅오 표기법
    __빅오 표기법 기초
    ____일반적인 예
    __빅오 표기법 규칙
    ____계수 법칙: “상수를 제거하라”
    ____합의 법칙: “빅오를 더하라”
    ____곱의 법칙: “빅오를 곱하라”
    ____다항 법칙: “빅오의 k승”
    __요약
    __연습 문제
    ____정답

    2장. 자바스크립트의 독특한 특징
    __자바스크립트 범위
    ____전역 선언: 전역 범위
    ____var를 사용해 선언하기: 함수 범위
    ____let을 활용한 선언: 블록 범위
    __등가와 형
    ____변수형
    ____참/거짓 확인
    ____=== 대 ==
    ____객체
    __요약

    3장. 자바스크립트 숫자
    __숫자 체계
    __자바스크립트 숫자 객체
    ____정수 반올림
    ____NumberEPSILON
    ____최대치
    ____최소치
    ____무한
    ____크기 순서
    ____숫자 알고리즘
    ____소인수 분해
    __무작위 수 생성기
    __연습 문제
    __요약

    4장. 자바스크립트 문자열
    __자바스크립트 문자열 기본
    ____문자열 접근
    ____문자열 비교
    ____문자열 검색
    ____문자열 분해
    ____문자열 바꾸기
    __정규 표현식
    ____기본 정규 표현식
    ____자주 사용하는 정규 표현식
    ____숫자를 포함하는 문자
    ____숫자만 포함하는 문자
    ____부동소수점 문자
    ____숫자와 알파벳만을 포함하는 문자
    ____질의 문자열
    __인코딩
    __Base64 인코딩
    __문자열 단축
    __암호화
    ____RSA 암호화
    __요약

    5장. 자바스크립트 배열
    __배열 소개
    ____삽입
    ____삭제
    ____접근
    __반복
    ____for (변수; 조건; 수정)
    ____for ( in )
    ____for ( of )
    ____forEach( )
    __도움 함수
    ____slice(begin,end)
    ____splice(begin,size,element1,element2)
    ____concat( )
    ____length 속성
    ____전개 연산자
    __연습 문제
    __자바스크립트 함수형 배열 메소드
    ____map
    ____filter
    ____reduce
    __다차원 배열
    __연습 문제
    __요약

    6장. 자바스크립트 객체
    __자바스크립트 객체 속성
    ____프로토타입 활용 상속
    __생성자와 변수
    __요약
    __연습 문제

    7장. 자바스크립트 메모리 관리
    __메모리 누수
    ____객체에 대한 참조
    ____DOM 메모리 누수
    ____window 전역 객체
    ____객체 참조 제한하기
    ____delete 연산자
    __요약
    __연습 문제

    8장. 재귀
    __재귀 소개
    __재귀의 규칙
    ____기저 조건
    ____분할 정복 방식
    ____대표적인 예: 피보나치 수열
    ____피보나치 수열: 꼬리 재귀
    ____파스칼의 삼각형
    __재귀의 빅오 분석
    ____점화식
    ____마스터 정리
    __재귀 호출 스택 메모리
    __요약
    __연습 문제

    9장. 집합
    __집합 소개
    __집합 연산
    ____삽입
    ____삭제
    ____포함
    __기타 유틸리티 함수
    ____교집합
    ____상위 집합 여부 확인
    ____합집합
    ____차집합
    __요약
    __연습 문제

    10장. 검색과 정렬
    __검색
    ____선형 검색
    ____이진 검색
    __정렬
    ____거품 정렬
    ____선택 정렬
    ____삽입 정렬
    ____빠른 정렬
    ____빠른 선택
    ____병합 정렬
    ____계수 정렬
    ____자바스크립트 내장 정렬
    __요약
    __연습 문제

    11장. 해시 테이블
    __해시 테이블 소개
    __해싱 기법
    ____소수 해싱
    ____탐사
    ____재해싱/이중 해싱
    __해시 테이블 구현
    ____선형 탐사 사용하기
    ____이차 탐사 사용하기
    ____선형 탐사를 활용해 이중 해싱 사용하기
    __요약

    12장. 스택과 큐
    __스택
    ____들여다보기
    ____삽입
    ____삭제
    ____접근
    ____검색
    __큐
    ____들여다보기
    ____삽입
    ____삭제
    ____접근
    ____검색
    __요약
    __연습 문제

    13장. 연결 리스트
    __단일 연결 리스트
    ____삽입
    ____값에 의한 삭제
    ____헤드 항목 삭제
    ____검색
    __이중 연결 리스트
    ____헤드에 항목 삽입하기
    ____테일에 항목 삽입하기
    ____헤드의 항목 삭제하기
    ____테일의 항목 삭제하기
    ____검색
    __요약
    __연습 문제

    14장. 캐싱
    __캐싱 이해하기
    __LFU 캐싱
    __LRU 캐싱
    __요약

    15장. 트리
    __일반적인 트리 구조
    __이진 트리
    __트리 순회
    ____선순위 순회
    ____중순위 순회
    ____후순위 순회
    ____단계순위 순회
    ____트리 순회 요약
    __이진 검색 트리
    ____삽입
    ____삭제
    ____검색
    __AVL 트리
    ____단일 회전
    ____오른쪽 회전
    ____이중 회전
    ____트리 균형 잡기
    ____삽입
    ____AVL 트리 예제 종합
    __요약
    __연습 문제

    16장. 힙
    __힙에 대한 이해
    ____최대 힙
    ____최소 힙
    __이진 힙 배열 인덱스 구조
    ____삼투: 위로 아래로 이동
    ____삼투 구현하기
    ____최대 힙 예
    __최소 힙 구현 완성
    __최대 힙 구현 완성
    __힙 정렬
    ____오름차순 정렬(최소 힙)
    ____내림차순 정렬(최대 힙)
    __요약
    __연습 문제

    17장. 그래프
    __그래프 기본
    __무지향성 그래프
    ____간선과 정점 추가하기
    ____간선과 정점 삭제하기
    __지향성 그래프
    __그래프 순회
    ____너비 우선 검색
    ____깊이 우선 검색
    __가중치가 있는 그래프와 최단 경로
    ____가중치가 있는 간선을 지닌 그래프
    ____다익스트라의 알고리즘: 최단 경로
    __위상 정렬
    __요약

    18장. 고급 문자열
    __트라이(접두사 트리)
    __보이어-무어 문자열 검색
    __커누스-모리스-플랫 문자열 검색
    __라빈-카프 검색
    ____라빈 지문
    ____실생활 적용 예
    __요약

    19장. 동적 프로그래밍
    __동적 프로그래밍의 필요성
    __동적 프로그래밍의 규칙
    ____중복 부분 문제
    ____최적 부분 구조
    ____예: 걸음 수를 채우는 방법
    __대표적인 동적 프로그래밍 예
    ____배낭 문제 알고리즘
    ____최장 공통 부분 수열 알고리즘
    ____동전 교환 알고리즘
    ____편집 거리 알고리즘
    __요약

    20장. 비트 조작
    __비트 연산자
    ____AND
    ____OR
    ____XOR
    ____NOT
    ____왼쪽 이동
    ____오른쪽 이동
    ____오른쪽 이동 후 0으로 채우기
    __숫자 연산
    ____덧셈
    ____뺄셈
    ____곱셈
    ____나눗셈
    __요약

    찾아보기

출판사 서평

자바스크립트는 1995년 넷스케이프(NetScape)의 브렌던 아이크(Brendan Eich)가 개발했다. 넷스케이프는 역사상 첫 번째 웹 브라우저 중 하나인 넷스케이프 브라우저를 개발하던 곳이었다. 그리고 오늘날 자바스크립트는 어디서나 가장 인기 있는 프로그래밍 언어로 널리 쓰이고 있다.
예를 들어 우버(Uber)의 차량 관리 시스템은 Node.js로 초당 2백만 개 이상의 원격 프로시저 호출(RPC)을 실행하고 있다. 페이스북(Facebook)의 리액트 네이티브(React Native)는 웹과 휴대폰에 동일한 코드를 작성할 수 있도록 한다. 나사(NASA)에서도 Node.js를 사용해서 우주복 자료 시스템(spacesuit systems data)을 관리하고 있다.
실리콘밸리에서 일하며 자바스크립트의 인기가 높아지는 것을 지켜봐왔다. 자바스크립트는 4년 동안 깃허브(Github)에서 제일 인기 많은 프로그래밍 언어 중 하나다. 그리고 이제는 자바(Java)와 마찬가지로 마이크로소프트(Microsoft)의 타입스크립트(TypeScript)로 자바스크립트를 객체지향 언어처럼 사용할 수 있다. 자바스크립트는 다양하고 강력한 프로그래밍 언어이고 응용하는 데 제한이 없어 현재 그 어떤 프로그래밍 언어보다 사용하기 적절하다.

★ 옮긴이의 말 ★
HTML의 등장과 함께, 자바스크립트는 웹 브라우저 내에서 사용되는 클라이언트 사이드(client-side) 프로그래밍 언어로 많은 사랑을 받았다. 기존에 자바스크립트는 주로 웹 브라우저 내에서 사용되며 클라이언트 사이드 프로그래밍을 위해 사용됐다. 전 세계의 웹 브라우저 중 자바스크립트를 지원하지 않는 웹 브라우저를 찾기 힘들 만큼 많은 사랑을 받았다. 하지만 Node.js의 등장과 함께 최근에는 서버 사이드(server-side) 프로그래밍 언어로 많은 인기를 끌고 있으며, 모바일 앱 등의 개발에도 널리 사용되고 있다.
이렇게 자바스크립트의 활용도가 늘어나고 더 복잡한 애플리케이션 개발에 사용됨에 따라 전통적으로 자바, C++, C# 프로그래머에게 중요한 자료 구조와 알고리즘이 자바스크립트 프로그래머에게도 중요해졌다. 이 책은 이러한 흐름에 맞춰 기존 자바스크립트 프로그래머가 자료 구조와 알고리즘의 개념을 이해하고 이를 실제로 자바스크립트로 구현할 수 있도록 돕는다.
연결 리스트와 같은 기초적인 자료 구조부터 동적 프로그래밍에 이르기까지 핵심 자료 구조와 알고리즘을 다루고 있으며, 이를 실제로 자바스크립트로 구현해보고 배운 내용을 실전에서 활용할 수 있도록 구성돼 있다.
아직까지 자바스크립트로 구현한 자료 구조와 알고리즘 책이 시중에 많지 않은 상황에서 이론과 구현을 겸비한 이 책은 자바스크립트 프로그래머로서 수준을 한 단계 높이고자 하는 독자들에게 단비와 같은 책이다.

기본정보

상품정보 테이블로 ISBN, 발행(출시)일자 , 쪽수, 크기, 총권수, 시리즈명, 원서(번역서)명/저자명을(를) 나타낸 표입니다.
ISBN 9791161753447
발행(출시)일자 2019년 08월 30일
쪽수 412쪽
크기
188 * 236 * 29 mm / 953 g
총권수 1권
시리즈명
웹 프로페셔널
원서(번역서)명/저자명 JavaScript Data Structures and Algorithms/Bae, Sammie

Klover 리뷰 (9)

구매 후 리뷰 작성 시, e교환권 200원 적립

10점 중 10점
알고리즘 처음 시작하시는 분들께는 비추 드립니다..................빅오 설명부터가...설명이 너무 간단해요.... 당장 옆동네 파이썬 알고리즘 책과 비교하더라도.........
10점 중 10점
/추천해요
좋습니다. JS로 자료구조/알고리즘을 공부하고싶었는데 딱 이 책이 있네요
10점 중 10점
/집중돼요
자바스크립트로 자료구조 및 알고리즘을 구현해 볼 수 있는 코드가 담겨있어 좋네요.
10점 중 10점
/집중돼요
자바스크립트로도 알고리즘을 풀 수 있는 방법이 소개되어 좋아요
10점 중 10점
/집중돼요
좋은거 같습니다.
10점 중 10점
/집중돼요
유용합니다
10점 중 7.5점
/추천해요
유용한 것 같은데.. 코드에 오타가 좀 많은 것 같아요
10점 중 10점
/쉬웠어요
자바스크립트를 통한 알고리즘을 학습하기 위해 구매했습니다.

문장수집 (3)

문장수집 안내
문장수집은 고객님들이 직접 선정한 책의 좋은 문장을 보여주는 교보문고의 새로운 서비스입니다. 마음을 두드린 문장들을 기록하고 좋은 글귀들은 "좋아요“ 하여 모아보세요. 도서 문장과 무관한 내용 등록 시 별도 통보 없이 삭제될 수 있습니다.
리워드 안내
구매 후 90일 이내에 문장수집 작성 시 e교환권 100원을 적립해드립니다.
e교환권은 적립 일로부터 180일 동안 사용 가능합니다. 리워드는 작성 후 다음 날 제공되며, 발송 전 작성 시 발송 완료 후 익일 제공됩니다.
리워드는 한 상품에 최초 1회만 제공됩니다.
주문취소/반품/절판/품절 시 리워드 대상에서 제외됩니다.
판매가 5,000원 미만 상품의 경우 리워드 지급 대상에서 제외됩니다. (2024년 9월 30일부터 적용)

구매 후 리뷰 작성 시, e교환권 100원 적립

o(1)은 신성하다.
자바스크립트로 하는 자료 구조와 알고리즘
이 책을 쓰게 된 것은 자바스크립트로 작성된 자료구조와 알고리즘에 관한 자료가 부족하기 때문이었다
자바스크립트로 하는 자료 구조와 알고리즘

교환/반품/품절 안내

  • 반품/교환방법

    마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환 신청, [1:1 상담 > 반품/교환/환불] 또는 고객센터 (1544-1900)
    * 오픈마켓, 해외배송 주문, 기프트 주문시 [1:1 상담>반품/교환/환불] 또는 고객센터 (1544-1900)
  • 반품/교환가능 기간

    변심반품의 경우 수령 후 7일 이내,
    상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
  • 반품/교환비용

    변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
  • 반품/교환 불가 사유

    1) 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
    2) 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
    3) 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
    4) 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
    5) 디지털 컨텐츠인 ebook, 오디오북 등을 1회이상 ‘다운로드’를 받았거나 '바로보기'로 열람한 경우
    6) 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
    7) 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우
    8) 세트상품 일부만 반품 불가 (필요시 세트상품 반품 후 낱권 재구매)
    9) 기타 반품 불가 품목 - 잡지, 테이프, 대학입시자료, 사진집, 방통대 교재, 교과서, 만화, 미디어전품목, 악보집, 정부간행물, 지도, 각종 수험서, 적성검사자료, 성경, 사전, 법령집, 지류, 필기구류, 시즌상품, 개봉한 상품 등
  • 상품 품절

    공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드리겠습니다.
  • 소비자 피해보상 환불 지연에 따른 배상

    1) 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은 소비자분쟁 해결 기준 (공정거래위원회 고시)에 준하여 처리됨
    2) 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의 소비자 보호에 관한 법률에 따라 처리함

상품 설명에 반품/교환 관련한 안내가 있는 경우 그 내용을 우선으로 합니다. (업체 사정에 따라 달라질 수 있습니다.)

기분 좋은 발견

이 분야의 베스트

이 분야의 신간

다정함이 인격이다
이벤트
  • 단말기_이규태에디션
  • EBS 겨울방학 특집 쿠폰이벤트
01 / 02
TOP