Learning JavaScript Data Structures and Algorithms 한국어판

로이아니 그로네르 (지은이), 이일웅 (옮긴이) | 에이콘출판 | 2015년 11월 정가 25,000원 판매가 22,500원 배송비 0원 (0원 이상 무료) 페이지 256쪽 판형 188*235mm 620g ISBN 9788960777842 상태 새책 or 중고 수량 합계 22,500

책소개

acorn+PACKT 시리즈. 자료 구조와 알고리즘은 프로그래밍의 기본 중의 기본이지만, 처음 공부하는 사람에게는 결코 배우기가 만만치 않고 따분할 수 있는 과목이다. 이 책은 인터넷 브라우저만 있으면 곧바로 코드를 실행해볼 수 있게, 우리에게 친숙한 자바스크립트 언어를 사용해 딱딱하고 재미없는 자료 구조와 알고리즘 학습을 쉽고 명쾌하게 풀어준다.

배열, 스택, 큐에서 원소의 선언, 추가, 삭제, DFS와 BFS 알고리즘으로 가장 복잡한 자료 구조인 그래프를 만들어 사용, 연결 리스트, 이중 연결 리스트, 환형 연결 리스트의 강력한 쓰임새 이해, 해시 테이블, 딕셔너리, 집합으로 중복되지 않는 원소 저장, 이진 트리와 이진 탐색 트리의 응용, 버블 정렬, 선택 정렬, 삽입 정렬, 병합 정렬, 퀵 정렬 알고리즘을 이용한 자료 구조 정렬 등을 다루고 있다.

저자소개

로이아니 그로네르 (Loiane Groner) (지은이)  
신간알리미 신청
이일웅 (옮긴이)  
신간알리미 신청
20년 가까이 국내외 엔터프라이즈 현장에서 자바 전문 풀스택 개발자, 소프트웨어/애플리케이션 아키텍트로 프로젝트를 수행했다. 어느덧 50대를 바라보는 중년 아재가 됐지만 아직도 궁금한 기술이 많은 엔지니어이고, 20여 권의 IT 전문서를 번역하며 동료, 후배 개발자들과 지식과 경험을 나누는 일에도 힘쓰고 있다.
로이아니 그로네르(지은이)의 말
자바스크립트는 오늘날 세상에서 가장 인기 있는 프로그래밍 언어다. 별다른 플러그인을 설치하지 않아도 대부분의 인터넷 브라우저가 해석할 수 있어서 자바스크립트를 '인터넷 언어'라고도 부른다. 끊임없이 성장을 거듭한 덕분에 이제 자바스크립트는 단순히 프론트엔드를 구현하는 언어뿐만 아니라, 서버(노드JS(Node.js))와 데이터베이스(몽고DB(MongoDB))에서도 활용하고 있다.
자료 구조는 IT 전문가라면 누구에게나 아주 중요한 필수 과목이다. 개발자로서 업무를 한다는 자체가 프로그래밍 언어와 자료 구조를 이용해 문제를 해결한다는 말이나 다름없기 때문이다. 실로 자료 구조는 프로그래머가 문제를 풀기 위해 필요한 필수 교과서다. 자료 구조를 잘못 선택하면 여러분이 작성한 프로그램의 성능에 부정적인 영향을 끼칠 수 있으므로 다양한 자료 구조의 특징과 적용 방법을 명확히 알고 있어야 한다.
알고리즘은 컴퓨터 과학의 예술이다. 같은 문제에 맞닥뜨리게 되더라도 해법은 여러 가지가 있을 수 있는데, 저마다 장단점이 있다. 따라서 널리 잘 알려진 검증된 알고리즘을 제대로 이해하고 활용할 수 있어야 한다.
모쪼록 행복한 코딩 하시길 바란다!
이일웅(옮긴이)의 말
처음 이 책의 번역을 제의 받고 검토해봤을 때는 이미 너무나 잘 알려져 너무 흔한 주제가 아닌가 싶었는데, 일반적으로 자료 구조와 알고리즘 코드 관련 서적에서 많이 쓰는 C 언어가 아닌, '자바스크립트' 언어를 사용한다는 점이 신선하다고 생각했습니다. 물론, 프로그래밍의 기본 체력을 다지는 데 어떤 언어로 구사할지는 그리 중요하지 않을 수도 있지만, 많은 사람에게 비교적 친숙한 자바스크립트 언어를 써서 적어도 IT 초심자들이 쉽게 시작할 수 있게 배려한 점은 참 마음에 듭니다.

제가 현장에서 프로젝트를 수행하면서 늘 느끼는 것 하나는, 평소에는 별로 찾아볼 일이 없을 것 같은 자료 구조, 알고리즘 지식이 위기에 봉착했을 때 결정적인 한 방을 한다는 사실입니다. 알고리즘을 잘 구사할 줄 모르는 사람이 무턱대고 대충 실행 가능한 정도로만 작성해놓은 코드가 나중에 시스템 오픈 이후에 서버 성능 등에 어떤 식으로든 영향을 미치게 되어 결국 프로젝트의 성패가 좌우되는 경우를 목격한 분들도 적지 않을 것입니다.

그런데 최근 수년간 새로 IT 분야에 진출한 엔트리 레벨의 기술자들을 보면, DB나 MVC 프레임워크 등은 비교적 잘 알고 있으면서도, 기본적인 연결 리스트나 정렬 알고리즘 개념에서는 개념이 박약해서 고객의 요구사항에 맞게 효과적으로 서버 로직을 구사하지 못하는 경우가 많습니다. 사정이 이러한데도 아직도 많은 국내 기업이 IT 개발자를 채용할 때 각종 툴이나 프레임워크 위주의 경험 유무만을 따지려는 풍토가 사라지지 않고 있어 매우 안타깝게 생각합니다. 어쨌든 구글과 IBM 같은 글로벌 IT 기업에서 꿈을 펼치고 싶은 현직 개발자, 또는 예비 프로그래머라면 기술 면접 시 빠지지 않는 단골 메뉴인 자료 구조와 알고리즘에 더더욱 박식한 프로그래머가 되어야 할 테니, 이 책을 읽으면서 본인의 프로그래밍 구사 능력을 점검해보시고 끊임없이 절차탁마하시기 바랍니다.

출판사소개

목차

1 자바스크립트 개요
__환경 세팅
____브라우저 하나면 충분하다
____웹 서버(XAMPP) 사용하기
____순수 자바스크립트 환경(노드JS)
__자바스크립트 기초
____변수
________변수 스코프
____연산자
____Truthy와 Falsy
____동등 연산자(= =/= = =)
__제어 구조
____조건문
____루프문
__함수
__객체지향 프로그래밍
__디버깅 툴
__정리

2 배열
__왜 배열을 사용하는가?
__배열의 생성과 초기화
__원소 추가와 삭제
__2차원과 다차원 배열
__자바스크립트 배열 메소드 정리
____여러 배열 합치기
____반복자 함수
____검색과 정렬
________사용자 정의 정렬
________문자열 정렬
________검색
____배열을 문자열로 변환
__정리

3 스택
__스택 만들기
____완성된 Stack 클래스
________Stack 클래스 사용
__10진수에서 2진수로 변환
__정리

4 큐
__큐 만들기
____완성된 Queue 클래스
____Queue 클래스 사용
__우선순위 큐
__환형 큐(뜨거운 감자)
__정리

5 연결 리스트
__연결 리스트 만들기
____리스트 끝에 원소 추가하기
____원소 삭제
____임의의 위치에 원소 삽입하기
____그 밖의 메소드 구현
________toString 메소드
________indexOf 메소드
________isEmpty, size, getHead 메소드
__이중 연결 리스트
____임의의 위치에 원소 삽입
____원소 삭제
__환형 연결 리스트
__정리

6 집합
__집합 만들기
____has(원소) 메소드
____add 메소드
____remove와 clear 메소드
____size 메소드
____values 메소드
____Set 클래스 사용
__집합 연산
____합집합
____교집합
____차집합
____부분집합
__정리

7 딕셔너리와 해시
__딕셔너리
____딕셔너리 만들기
________has와 set 메소드
________remove 메소드
________get과 values 메소드
________clear, size, keys, getItems 메소드
____딕셔너리 클래스 사용
__해시 테이블
____해시 테이블 만들기
____HasthTable 클래스 사용
____해시 테이블과 해시 집합 비교
____해시 테이블 간 충돌 해결
________체이닝
________선형 탐색법
____해시 함수 개선
__정리

8 트리
__트리 용어
__이진 트리와 이진 탐색 트리
____BinarySearchTree 클래스 만들기
____트리에 키 삽입하기
__트리 순회
____중위 순회
____전위 순회
____후위 순회
__트리 노드 검색
____최솟값/최댓값 찾기
____특정 값 찾기
____노드 삭제
________리프 노드인 경우
________좌/우측 어느 한쪽에만 자식 노드가 있는 경우
________두 자식을 모두 가진 노드일 경우
__이진 트리 보충 내용
__정리

9 그래프
__그래프 용어
____방향/무방향 그래프
__그래프 나타내기
____인접 행렬
____인접 리스트
____근접 행렬
__Graph 클래스 만들기
__그래프 순회
____너비 우선 탐색(BFS)
________BFS로 최단 경로 찾기
________최단 경로 알고리즘 관련 보충 내용
____깊이 우선 탐색(DFS)
________DFS 알고리즘 탐구
________DFS를 이용한 위상 정렬
__정리

10 정렬과 검색 알고리즘
__정렬 알고리즘
____버블 정렬
________개선된 버블 정렬
____선택 정렬
____삽입 정렬
____병합 정렬
____퀵 정렬
________파티션 과정
________퀵 정렬 실행
__검색 알고리즘
____순차 검색
____이진 검색
__정리

11 그 밖의 알고리즘
__재귀
____자바스크립트에서 호출 스택 크기의 한계
____피보나치 수열
__동적 프로그래밍
____최소 동전 교환 문제
__욕심쟁이 알고리즘
____최소 동전 바꾸기 문제
__O 표기법
____O 표기법 이해
________O(1)
________O(n)
________O(n2)
__알고리즘 복잡도 비교
__재미있는 알고리즘의 세계로!
__정리

부록 O 표기법 정리
__자료 구조
__그래프
__정렬 알고리즘
__검색 알고리즘

더보기

배송

- 배송비, 무료배송비는 업체 사정에 따라 달라질 수 있습니다.
- 배송은 결제 확인 후 다음날부터 2~3일 이내에 배송됩니다. (단 도서 산간지역은 1~2일정도 더 소요됩니다.)
- 공휴일은 배송기간에 포함되지 않습니다.
- 주문하신 상품이 여러개인 경우 동일한 업체의 상품만 묶음 배송 가능합니다. (업체 사정에 따라 달라질 수 있습니다.)
- 배송정보는 상단 주문조회나 마이페이지 주문목록에서 가능합니다.

상품 품절

- 공급사(출판사) 재고 사정에 의해 품절/지연될 수 있으며, 품절 시 관련 사항에 대해서는 이메일과 문자로 안내드립니다.

주문취소/변경

- 주문 상품에 대한 변경사항(품절,가격변동)이 발생하면 전화나 메일을 통해 변경내용을 알려드립니다.
- 주문 상품의 변경/취소/환불은 배송 시작전 마이페이지에서 직접 신청이 가능합니다.
- 주문 상품이 발송된 시점에서는 변경/취소/환불이 모두 불가능합니다.

반품/교환

- 기간 : 배송받으신 후 7일 이내에 가능합니다.
- 방법 : 홈페이지 마이페이지 > 반품/ 교환 신청 및 조회에서 가능합니다.
- 배송비 부담 : 상품에 이상이 있을시에는 무료, 고객의 단순변심 및 착오구매일 경우 상품 반송비용은 고객 부담입니다.
- 포장 개봉 후 재판매가 불가능한 상품은 반품/교환이 불가능합니다.
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우, 반품/교환이 불가능합니다.

반품/교환 불가 사유

- 소비자의 책임 있는 사유로 상품 등이 손실 또는 훼손된 경우 (단지 확인을 위한 포장 훼손은 제외)
- 소비자의 사용, 포장 개봉에 의해 상품 등의 가치가 현저히 감소한 경우
- 복제가 가능한 상품 등의 포장을 훼손한 경우
- 소비자의 요청에 따라 개별적으로 주문 제작되는 상품의 경우
- 디지털 컨텐츠인 eBook, 오디오북 등을 1회 이상 다운로드를 받았을 경우
- 시간의 경과에 의해 재판매가 곤란한 정도로 가치가 현저히 감소한 경우
- 전자상거래 등에서의 소비자보호에 관한 법률이 정하는 소비자 청약철회 제한 내용에 해당되는 경우

소비자 피해보상 환불 지연에 따른 배상

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

Copyright © 2022 이츠북. All Rights Reserved.