본문내용 바로가기
MD의선택 무료배송 소득공제

자바스크립트로 하는 자료 구조와 알고리즘 핵심 자료 구조와 알고리즘을 이해하고 구현하기 위한 입문서

웹 프로페셔널
배세민 지음 | 김무항 옮김 | 에이콘출판 | 2019년 08월 30일 출간
  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 3만원 이상 구매 시 2~4% 추가적립
  • 추가혜택 : 포인트 안내 도서소득공제 안내 추가혜택 더보기
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(19일,목) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 매장에서 직접 수령 안내
상품상세정보
ISBN 9791161753447(1161753443)
쪽수 412쪽
크기 188 * 236 * 29 mm /953g 판형알림
이 책의 원서/번역서 JavaScript Data Structures and Algorithms/Bae, Sammie

책소개

이 책이 속한 분야

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

저자소개

저자 : 배세민

옐프(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)는 웹과 휴대폰에 동일한 코드를 작성할 수... 더보기

북로그 리뷰 (0) 쓰러가기

도서 구매 후 리뷰를 작성하시면 통합포인트를 드립니다.
결제 90일 이내 작성 시 300원 / 발송 후 5일 이내 작성시 400원 / 이 상품의 첫 리뷰 작성 시 500원
(포인트는 작성 후 다음 날 적립되며, 도서 발송 전 작성 시에는 발송 후 익일에 적립됩니다.
외서/eBook/음반/DVD/GIFT 및 잡지 상품 제외)
안내
  • 해당도서의 리뷰가 없습니다.

Klover 평점/리뷰 (0)

문장수집 (0) 문장수집 쓰기 나의 독서기록 보기
※구매도서의 문장수집을 기록하면 통합포인트 적립 안내

교환/반품/품절안내

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

교환/반품/품절안내
반품/교환방법 마이룸 > 주문관리 > 주문/배송내역 > 주문조회 > 반품/교환신청 ,
[1:1상담>반품/교환/환불] 또는 고객센터 (1544-1900)

※ 오픈마켓, 해외배송주문, 기프트 주문시 [1:1상담>반품/교환/환불]
    또는 고객센터 (1544-1900)
반품/교환가능 기간 변심반품의 경우 수령 후 7일 이내,
상품의 결함 및 계약내용과 다를 경우 문제점 발견 후 30일 이내
반품/교환비용 변심 혹은 구매착오로 인한 반품/교환은 반송료 고객 부담
반품/교환 불가 사유
  • 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우
    (단지 확인을 위한 포장 훼손은 제외)
  • 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
    예) 화장품, 식품, 가전제품(악세서리 포함) 등
  • 복제가 가능한 상품 등의 포장을 훼손한 경우
    예) 음반/DVD/비디오, 소프트웨어, 만화책, 잡지, 영상 화보집
  • 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우 ((1)해외주문도서)
  • 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
  • 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
  • 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에
    해당되는 경우
(1) 해외주문도서 : 이용자의 요청에 의한 개인주문상품으로 단순변심 및 착오로 인한 취소/교환/반품 시 ‘해외주문 반품/취소 수수료’ 고객 부담 (해외주문 반품/취소 수수료 : ①양서-판매정가의 12%, ②일서-판매정가의 7%를 적용)
상품 품절 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는
이메일과 문자로 안내드리겠습니다.
소비자 피해보상
환불지연에 따른 배상
  • 상품의 불량에 의한 교환, A/S, 환불, 품질보증 및 피해보상 등에 관한 사항은
    소비자분쟁해결 기준 (공정거래위원회 고시)에 준하여 처리됨
  • 대금 환불 및 환불지연에 따른 배상금 지급 조건, 절차 등은 전자상거래 등에서의
    소비자 보호에 관한 법률에 따라 처리함

이 책의 원서번역서

안내

이 분야의 베스트

더보기+

이 분야의 신간

더보기+

바로가기

  • 우측 확장형 배너 2
  • 우측 확장형 배너 2

최근 본 상품