본문내용 바로가기
MD의선택 무료배송 이벤트

스위프트 데이터 구조와 알고리즘 프로그래밍의 튼튼한 기초

acorn+PACKT | 페이퍼백
에릭 아자르 , 마리오 에귈루즈 알레빅토 지음 | 동준상 옮김 | 에이콘출판 | 2017년 06월 29일 출간

이 책의 다른 상품 정보

  • 정가 : 30,000원
    판매가 : 27,000 [10%↓ 3,000원 할인]
  • 제휴할인가 : 20,250 교보-롯데카드 최대 25% 청구할인 카드/포인트 안내
  • 통합포인트 :
    [기본적립] 1,500원 적립 [5% 적립] 안내 [추가적립] 5만원 이상 구매 시 2천원 추가적립 [회원혜택] 우수회원 5만원 이상 구매 시 2~3% 추가적립
  • 추가혜택 :
    naver네이버페이 결제 시 무조건 1% 추가 적립 payco페이코 결제 시 최대 1만원 적립 okcashbag 실 결제 금액의 0.5% 적립 안내
  • 배송비 : 무료 배송비 안내
  • 배송일정 : 서울특별시 종로구 세종대로 기준 지역변경
    지금 주문하면 내일(22일,수) 도착 예정 배송일정 안내
  • 바로드림 : 인터넷으로 주문하고 영업점에서 직접 수령 안내
행사도서 포함, 5만원이상 구매시 택 1 (라지 3000P, 스몰 2000P 차감)
닫기
  • 스무 살 패브릭 포스터 증정 O tvN 어쩌다 어른 X 교보문고 단독혜택
  • 어린이 가을독서 추천도서전
  • 가을입맛 사로잡기
  • 행사도서 포함, 5만원이상 구매시 택 1 (라지 3000P, 스몰 2000P 차감)
  • 유아/어린이/가정육아 이달의 기대신간
  • 올재 클래식스 100권 완간! 시리즈의 정수만 모은, 올재 셀렉션즈 단독 판매
  • 자기계발 메인이벤트
  • 경제경영 메인이벤트
  • 행사도서 포함, 2만원이상 구매시 택 1 (1500P 차감)
  • 나만의 경쟁력, 동양고전 김원중 명품고전 독서대 증정
  • 비모 벽시계

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

  • MANNING, O'REILLY, PACKT, WILEY 등 해..
    03. 07 ~ 04. 30
상품상세정보
ISBN 9791161750170(1161750177)
쪽수 344쪽
크기 190 * 236 * 22 mm /825g 판형알림
이 책의 원서 Swift Data Structure and Algorithms/Azar, Erik

책소개

이 책이 속한 분야

이 책의 주제어

데이터 구조와 알고리즘은 문제를 해결하기 위한 패턴이라 할 수 있으며, 이를 잘 활용하면 어려운 문제를 간단하면서도 세련되게 해결할 수 있다. 반면, 데이터 구조에 대한 명확한 이해가 없다면 현대 프로그래밍 언어의 특징이라 할 수 있는 다양한 데이터 타입의 장단점을 파악하기 어려우며, 어떤 상황에서 어떤 데이터 구조를 사용해야 할지 판단할 수 없고, 결국 프로그램의 성능 문제로 남게 된다.

이 책은 스위프트 표준 라이브러리에서 제공하는 코어 데이터의 구조와 알고리즘, 큐, 스택, 리스트, 해시 테이블 등 보편적으로 사용되는 데이터 구조와 알고리즘을 소개한다. 또한 다양한 정렬 알고리즘의 개요를 소개하고 각 알고리즘 성능의 장단점과 데이터 입력 크기에 따른 성능 차이를 비교 분석한다. 스위프트 언어를 통해 구현할 수 있는 다양한 트리 데이터 구조와 알고리즘, 고급 검색 기법을 설명하고, 알고리즘의 성능과 효율성을 한눈에 파악할 수 있는 그래프 구현 방법을 소개한다.

이 책의 목적은 데이터 구조와 알고리즘을 통해 모두들 해결이 어렵다고 말하는 문제에서 패턴 또는 실마리를 찾고, 이를 바탕으로 일상적인 개발 업무에서 즉각적으로 활용할 수 있는 다양한 해법 또는 응용 프로그램을 떠올리게 하는 것이다.

이 책의 총서

총서 자세히 보기

저자소개

저자 : 에릭 아자르

저자 에릭 아자르(Erik Azar)는 지난 20년간 스타트업부터 포춘 500대 기업에 이르는 다양한 기업을 위해 네트워크 엔지니어링, 시스템 관리, 보안, 기업 비즈니스 서비스 분야에서 확장성을 겸비한 고성능 데스크톱, 웹과 모바일 애플리케이션 설계 및 개발 업무를 담당해온 컴퓨터 과학자다. 애플이 아이폰을 공개했던 2007년, 처음으로 WWDC에 참가한 이후 다양한 macOS와 iOS 애플리케이션을 개발해 왔다.
플로리다 주 잭슨빌에 있는 Availity, LLC의 개발자이자 아키텍트로서, 헬스케어 산업을 위한 각종 소프트웨어 솔루션을 개발하고 있으며, 팩트출판사의 기술 감수자로서 『RESTful 자바 웹 서비스 보안』을 리뷰하다가 자신의 책을 쓰고 싶다는 염원을 갖게 됐고, 결국 첫 번째 책을 내게 됐다.
개발 업무에 빠져있지 않을 때는 아내 레베카, 세 아이들과 즐거운 시간을 보내며, 때로는 모터사이클을 타고 플로리다 해안을 달리기도 한다

저자 : 마리오 에귈루즈 알레빅토

저자 마리오 에귈루즈 알레빅토(Mario Eguiluz Alebicto)는 개발 업계에서 잔뼈가 굵은 10년 차 소프트웨어 엔지니어다. 자바 개발자로 입문했으나 아이폰의 세계를 접한 뒤 오브젝티브C 개발자가 됐으며, 현재는 스위프트 언어를 함께 사용한다. 소상공인과 지역 사업자를 위한 모바일 애플리케이션 개발 스타트업을 설립했으며, 2011년 이후 신생 스타트업부터 포춘 500대 기업에 이르기까지 다양한 클라이언트의 애플리케이션을 개발해 왔다. 현재는 모바일 애플리케이션을 개발하는 프리랜서이자, 저술가, 강사로 활동 중이다.
개발 외에도 여행을 좋아하고, 새로운 것을 배우거나 스포츠를 즐기며 하드코어 게이머로서 다양한 게임을 섭렵하고 있다.

역자 : 동준상

역자 동준상은 넥스트플랫폼 대표이자 ICT 컨설턴트로 서비스 기획, UX 표준화 프로젝트에 참여해왔으며, AWS 테크놀로지 파트너로 클라우드 기반 서비스와 데이터 분석 애플리케이션을 개발한다. 삼성전자, 한국생산성본부, KT, 신한은행, 국민은행, 신세계 등에서 현대 ICT 서비스 기획론, UX 리서치 전략, SPRINT 방법론을 강의하고, 관련 교재를 집필했다. 한국콘텐츠진흥원, 한국생산성본부, 대구디지털산업진흥원, 부산정보진흥원의 기술 심사위원 및 멘토로 활동 중이다.
번역서로는 에이콘출판사에서 펴낸 『jQuery UI 1.8 한국어판』(2012), 『The iOS 5 Developer’s Cookbook (Third Edition) 한국어판』(2012), 『The Core iOS 6 Developer’s Cookbook (Fourth Edition) 한국어판』(2013), 『The Advanced iOS 6 Developer’s Cookbook (Fourth Edition) 한국어판』(2013), 『The Book of CSS3』(2014), 『Swift로 하는 iOS 프로그래밍』(2015), 『머신 러닝 인 자바』(2016) 등이 있다.

작가의 말

지은이의 말

이 책은 실무 경험을 쌓은 개발자가 최신 버전의 스위프트를 활용할 수 있도록 돕는다. 스위프트는 애플이 만든 macOS, iOS, watchOS, tvOS, 리눅스 프로그래밍을 위한 언어이며, 스위프트를 이용해서 신속하고 안전하게 소프트웨어를 구현할 수 있다.
이 책에서 배운 내용을 바탕으로 애플리케이션을 좀 더 효율적으로, 좀 더 확장성 높게 만들 수 있다.
편안한 마음으로 이 책을 읽어나가길 바라며, 스위프트의 고급 기능에 대한 이해도 넓혀나가길 바란다. 무엇보다도 애플리케이션 코드 중 일부를 수정해서 극적인 성능 개선을 이뤄낼 수 있는 비법 또한 찾아내기 바란다.

옮긴이의 말

최근 10여 년 사이, 인공지능과 빅데이터, 소셜과 모바일 서비스의 폭발적인 성장과 함께 프로그래밍을 배워야 한다는 사회 분위기가 강하게 조성되고 있다. 웹 2.0 시대에 사는 우리 대부분은 어떤 면에서는 모두 프로그래머이자 코더라고 할 수 있지만, 국내외 정부와 교육기관은 프로그래밍 로직을 작성하는 일을 전문 직업으로 택할 수 있는 수준을 강조하고 있다. 만일 프로그래머가 되는 것에 대해 진지하게 고민한 적이 있다면, 그 첫 번째 단추를 어디서부터 꿸 것인가가 무척 중요할 것이다. 그리고 이미 프로그래머로 활동하고 있다면, 전문가로서의 깊이를 얻기 위해 많은 노력을 하고 있을 것이다.
쿡북을 펴 들고 웹 기반, 혹은 모바일 기반의 애플리케이션을 만들어서 배포해보는 것도 좋은 방법이고, 개발 환경을 설치한 뒤 해당 플랫폼의 예제 코드를 실행해보거나 오픈소스 라이브러리를 다운로드 받아서 개발 문서의 스터디를 시작하는 것도 좋은 접근 방식이지만, 이런 과정을 거칠수록 프로그래밍에 대한 근원적인 궁금증이 커지기 마련이다. 오픈소스 시대에 사는 우리 대부분은 표면에 있는 모듈과 API를 가지고 프로그래밍 혹은 코딩을 시작하지만 시간이 지날수록 그 아래 감춰져 있는 요소를 발굴하고 차츰 더 아래에 있는 프로그래밍의 기단부 혹은 코어를 향해 내려가게 되는 것이다.
이 책에서 다루고 있는 데이터 구조와 알고리즘이 바로 여러분이 찾던 프로그래밍의 기단부이자 코어라고 할 수 있다. 모든 프로그램은 데이터 구조 혹은 알고리즘이라는 소박한 토대 위에 쌓아 올려진 건축물이라 할 수 있으며, 오픈소스 커뮤니티의 아버지라 할 수 있는 에릭 레이먼드(Eric S. Raymond)의 일갈처럼 우수한 데이터 구조는 곧 우수한 프로그램을 판단하는 척도라 할 수 있다.
현대 프로그래밍 언어 대부분은 서로의 장단점을 관찰하고 비교 분석해서 다양한 기능을 담은 모듈과 라이브러리를 지속적으로 배포 및 업데이트한다. 스위프트는 여러 언어 가운데서도 지난 3년 사이 가장 큰 변화를 만들고, 많은 주목을 받아온 프로그래밍 언어라 할 수 있다. 무려 30년간 애플이라는 플랫폼의 기본 언어였던 오브젝티브C를 대체할 목적으로 만들어진 스위프트는 클로저, 제너릭, 타입 추측, 다중 반환 타입, 네임스페이스 등 최신 프로그래밍 속성을 반영했으며, 문법의 간결성과 활용 가능성 측면에서 데이터 구조와 알고리즘을 익힐 수 있는 훌륭한 언어다.
프로그래밍 전문가에게도 데이터 구조와 알고리즘은 부담스러운 주제일 수 밖에 없다. 그 속에는 어쩔 수 없이 프로그래밍에 대한 근원적이면서도 낯선 물음이 포함돼 있기 때문이다. 하지만 약간의 어색함을 참을 용기만 있다면, 예제 코드를 확인해볼 수 있는 시간 여유만 있다면, 이 책에 포함된 내용 대부분을 편안하게 넘겨볼 수 있을 것이다. 대부분의 예제 코드는 그리 길지 않으며, 신속하게 알고리즘의 개요를 파악하고 활용 방안에 대해 생각할 수 있도록 돕는다.
iOS, macOS 애플리케이션을 만들고자 하는 개발자, 이미 다수의 애플리케이션을 배포했지만 프로그래밍에 대한 근원적인 궁금증을 품고 있는 개발자, 그리고 이미 완성된 알고리즘의 성능을 혁신적으로 개선할 방법을 찾고 있는 시스템 개발자에게 데이터 구조와 알고리즘 측면에서의 이해를 돕고 그 해법을 제시한다.

목차

1장. 플레이그라운드 살펴보기

__데이터 구조의 중요성
____데이터 구조 + 알고리즘 = 프로그램
____상호작용성 높은 플레이그라운드
____스위프트 REPL
__기본적인 데이터 구조
____인접 데이터 구조
________배열
________배열 선언
________배열 요소 가져오기
________배열 요소 추가
________배열 요소 삭제
____연결 데이터 구조
________단일 연결 리스트
__데이터 구조의 종류와 장단점
____알고리즘 개요
__스위프트에서의 데이터 타입
____밸류 타입과 레퍼런스 타입
____기명 타입과 복합 타입
____타입 알리아스
____스위프트 표준 라이브러리의 컬렉션 타입
__점근적 분석
____데이터 크기 분석 방법 - 성장의 순서
__정리

2장. 스위프트 기본 데이터 구조의 활용

__스위프트 표준 라이브러리의 활용
____애플이 구조체를 사용하는 이유
____스위프트에서 배열 선언
________배열 초기화
________배열에 요소 추가 및 업데이트
________배열에서 요소 가져오기 및 삭제
____딕셔너리 가져오기 및 초기화하기
________딕셔너리 초기화하기
________키/값 쌍 추가, 변경, 삭제
________딕셔너리에서 값 가져오기
____세트 선언
________세트 초기화
________세트 요소 변경 및 가져오기
________세트 연산자
____튜플의 특징
________무기명 튜플
________기명 튜플
__서브스크립팅 구현
____서브스크립트 문법
____서브스크립트 옵션
__수정 가능 속성과 수정 불가 속성의 이해
____컬렉션의 수정가능 속성
__스위프트와 오브젝티브C의 상호관련성
____초기화 방식
____스위프트 타입의 호환성
____컬렉션 클래스 브릿징
________NSArray를 Array로 브릿징
________NSSet을 set로 브릿징
________NSDictionary를 dictionary로 브릿징하기
__스위프트 프로토콜 지향 프로그래밍
____명령 전달을 위한 디스패치 기법
____프로토콜 작성 문법
____타입으로서의 프로토콜
____프로토콜 익스텐션
____컬렉션에서 활용하기 위한 프로토콜의 검증
________Array 리터럴 문법
________열거형 배열 만들기
__정리

3장. 스위프트 고급 데이터 구조의 활용

__반복기, 시퀀스, 컬렉션
____반복기
________시퀀스
____컬렉션
__스택
____애플리케이션 개요
____구현 방법
____프로토콜
__큐
____애플리케이션 개요
____구현 방법
____프로토콜
__순환 버퍼
____애플리케이션 개요
____구현 방법
____프로토콜
__우선순위 큐
____애플리케이션 개요
____구현 방법
____프로토콜
__스택 리스트
____애플리케이션 개요
____구현 방법
____프로토콜
__정리

4장. 정렬 알고리즘

__삽입 정렬 알고리즘
____알고리즘 개요
____삽입 정렬 알고리즘 분석
____삽입 정렬 알고리즘 활용 사례
____최적화
__병합 정렬 알고리즘
____배열 기반 병합 정렬 알고리즘
____병합 정렬 알고리즘 분석
____연결 목록 기반 병합 정렬 알고리즘 분석
____알고리즘 성능 비교
__신속 정렬 알고리즘
____로무토의 신속 정렬 알고리즘
____로무토의 파티션 스킴 분석
____호어의 신속 정렬 알고리즘
____호어의 파티션 스킴 분석
________피봇 선택 방식
____신속 정렬 알고리즘을 위한 개선된 피봇 선택 방식
____최적화
__정리

5장. 나무를 통해 숲을 보기

__트리: 정의와 주요 속성
__다양한 트리의 종류와 개요
____이진 트리
____이진 검색 트리
____B 트리
____스플레이 트리
____레드블랙 트리
__이진 트리
____타입과 종류
____코드
__이진 검색 트리
____노드 삽입
____트리 워크(순회 방식)
________인오더 트리 워크
________프리오더 트리 워크
________포스트오더 트리 워크
____검색
____삭제
__B 트리
__스플레이 트리
____스플레이 작업
________지그 회전
________지그지그 또는 재그재그 회전
________지그재그 회전
__정리

6장. 고급 검색 메소드

__레드블랙 트리
____레드블랙 트리 노드의 구현
____회전
________우측 회전
________좌측 회전
____삽입
__AVL 트리
____AVL 트리 노드의 구현
____AVL 트리 회전
________좌측 단순 회전
________단순 우측 회전
________우-좌 이중 회전
________좌-우 이중 회전
__검색
____삽입
__Trie 트리
__Radix 트리
__다양한 서브스트링 검색 알고리즘
____서브스트링 검색 알고리즘 사례
________나이브(브루트 포스) 알고리즘
________Rabin-Karp 알고리즘
__정리

7장. 그래프 알고리즘

__그래프 이론
____보편적으로 활용되는 그래프의 유형
________무방향성 그래프
________방향성 그래프
________가중치 그래프
____그래프의 표현 방식
________객체지향 접근법: 구조체와 클래스 활용
________이웃 목록
________이웃 매트릭스
________근접 매트릭스
__데이터 구조
____꼭지점
____모서리
____이웃 목록
__깊이 우선 검색
__너비 우선 검색
__스패닝 트리
____미니멈 스패닝 트리
__Prim 알고리즘
__최단 경로
__다이크스트라 알고리즘
____SwiftGraph
__정리

8장. 알고리즘의 성능과 효율성

__알고리즘의 효율성
____최상, 최악, 그리고 평균의 경우
__효율성 측정과 Big-O 표기법
____점근적 분석
________복잡성 계산 방식
__일반적인 함수의 복잡성 순서
____O(1)
____O(log(n))
____O(n)
____O(nlog(n))
____O(n^2)
____O(2^n)
________Big-O 그래프 비교
__런타임 복잡성의 평가
__정리

9장. 내게 꼭 맞는 알고리즘 선택하기

__URL 단축기
____긴 URL 문제
____URL 단축기 구현 전략
____스위프트로 구현하는 URL 단축기
________구현 기법 1: 올바른 튜플 찾기
________구현 기법 2: 인덱스값으로 올바른 배열 위치에 바로 접근하기
__대규모 데이터의 검색
____대규모 블랙리스트 문제
____대규모 블랙리스트 검색 문제의 해법
____스위프트로 구현하는 대규모 블랙리스트 검색 알고리즘
________구현 기법 1: 기본적인 대규모 블랙리스트 검색
________구현 기법 2: 블룸 필터 기법
__정리

출판사 서평

★ 이 책에서 다루는 내용 ★

■ 스위프트의 기본적인 데이터 구조에 대한 개념 정리
■ 스위프트 표준 라이브러리 컬렉션과 오브젝티브C 컬렉션의 브릿징 기법과 프로토콜 지향 프로그래밍
■ 스위프트 반복기와 시퀀스의 개념과 고급 데이터 구조에서의 활용 방법
■ 다양한 데이터 정렬 알고리즘의 구현 및 장단점 비교
■ 이진 트리, 이진 검색 트리, 스플레이 트리 구현 및 B-트리 등 고급 트리의 작동 원리 분석
■ 레드-블랙 트리, AVL, 트라이 트리 등을 활용한 고급 검색 메소드 구현
■ 깊이 우선 검색, 너비 우선 검... 더보기

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

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

Klover 평점/리뷰 (0)

교환/반품/품절안내

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

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

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

이 책의 원서번역서

안내

이 분야의 베스트

더보기+

이 분야의 신간

더보기+

바로가기

  • 우측 확장형 배너 2

최근 본 상품