출고예상일 안내
주문하신 상품이 한국에서 현지 배송을 위한 출고단계가 이루어질 것으로 예상되는 날짜입니다. 상품을 준비하는 과정에서 내부적인 사정으로 인해 출고예상일에 다소 오차가 생길 수 있습니다.
여러 상품(예약상품포함)을 함께 주문하신 경우 출고예상일이 가장 늦은 날짜에 맞춰 함께 배송됩니다.

데이터 시각화 Visualizing Data Processing을 이용한 데이터 탐색과 표현
원제 : Visualizing Data: Exploring and Explaining Data with the Processing Environment
시리즈 :
에이콘 데이터 과학 시리즈
[54]
ISBN : 9788960778368 / 488쪽 188 x 235 (㎜)
이 상품에 궁금하신점이 있으세요? 1:1상담문의

-
성구(강성규)
-
거트루드(박태현)
-
이와사키 히로마사
- 21,600
- 19,800
- 23,400
- 15,120
- [시리즈] 에이콘 데이터 과학 시리즈 [54]
출판사 리뷰
출판사 서평 ★ 이 책에서 다루는 내용 ★ ■ 데이터 시각화 7단계: 수집, 파싱, 필터링, 마이닝, 표현, 정교화, 상호작용 ■ 모든 데이터 문제가 질문에서 시작해 분명한 답을 제공하는 내러티브로 마무리되는 과?정 ■ 실제 코드를 사용하는 예제 프로젝트 ■ 다양한 표현 수단들의 장단점, 그리고 데이터 집합과 가장 어울리는 표현이 되도록 커스터마이징하는 방법 ★ 이 책의 대상 독자 ★ 2007년 봄, 카네기 멜론 대학교에서 정보 시각화(Information Visualization) 수업을 강의한 적이 있다. 30명의 수강생... ★ 이 책에서 다루는 내용 ★ ■ 데이터 시각화 7단계: 수집, 파싱, 필터링, 마이닝, 표현, 정교화, 상호작용 ■ 모든 데이터 문제가 질문에서 시작해 분명한 답을 제공하는 내러티브로 마무리되는 과정 ■ 실제 코드를 사용하는 예제 프로젝트 ■ 다양한 표현 수단들의 장단점, 그리고 데이터 집합과 가장 어울리는 표현이 되도록 커스터마이징하는 방법 ★ 이 책의 대상 독자 ★ 2007년 봄, 카네기 멜론 대학교에서 정보 시각화(Information Visualization) 수업을 강의한 적이 있다. 30명의 수강생들은 미술을 전공하는 신입생부터 컴퓨터과학 박사과정 학생에 이르기까지 다양했으며, 그 중간에는 디자인 스쿨 출신의 대학원생과 다양한 학부의 학부생들이 있었다. 수강생들의 기술 수준은 매우 편차가 컸지만 기술 수준보다 훨씬 중요한 것은 호기심의 수준이었으며, 호기심 많고 적극적인 수강생은 기술적 어려움(미술이나 디자인 출신)과 미적 감각 결여(공학 전공자)를 극복할 수 있었다. 이 책의 대상 독자 역시 비슷한 범위의 배경지식을 가정하고 있다. 질문을 하고, 데이터를 가지고 놀며, 타인에게 정보를 효과적으로 전달하는 방법을 이해하고자 하는 사람을 대상으로 한다. 예를 들어, 지금 사용하는 도구보다 복잡한 시각화를 구축하고자 하는 웹 디자이너는 이 책에서 많은 도움을 얻을 수 있다. 또한 데이터를 표현하는 소프트웨어를 능숙하게 작성하고자 하는 소프트웨어 엔지니어에게도 매우 유용할 것이다. 단순히 UI를 개발해본 경험과는 다른 기술이 요구되는 일이기 때문이다. 이런 일들은 고도의 기술을 요구하지는 않지만 어디서부터 시작해야 할지 갈피를 잡기 어려울 때가 많다. 기본적으로 이 책은 데이터 집합을 갖고 있으면서 데이터를 탐구하고자 하는 호기심이 충만하고 데이터에 관해 무언가를 다른 사람에게 전달하고 싶은 사람을 대상으로 한다. 데이터를 시각화하는 사람들의 수는 갈수록 늘어나고 있으며, 기대 수준은 시각화 분야의 전문가들의 수준을 뛰어넘고 있다. 좀 더 많은 사람이 시각화 기법에 익숙해진다면 앞으로 10년간 놀랄 만한 일들이 많이 일어날 것이라고 믿는다. ★ 이 책의 구성 ★ 1장, ‘데이터 시각화 7단계’에서는 데이터를 수집해서 상호작용하기까지 유용한 시각화를 개발하기 위한 과정을 다룬다. 이후의 장에서 문제를 공략하기 위해 일관되게 사용될 프레임워크라고 할 수 있다. 2장, ‘Processing 시작하기’에서는 Processing 환경과 구문의 기초적인 내용을 소개한다. API의 구조에 관한 약간의 배경지식과, Processing의 바탕이 되는 기본적인 철학을 제공한다. 3~8장에서는 점점 복잡해지는 예제 프로젝트를 다룬다. 3장, ‘매핑’에서는 데이터 포인트를 지도 위에 그려보면서 데이터를 디스크에서 읽어 화면에 표현하는 방법을 소개한다. 4장, ‘시계열’에서는 시간의 변화에 따른 데이터의 변화를 표현하는 차트를 그리는 방법을 다룬다. 5장, ‘상관관계’에서는 데이터 집합을 획득해 파싱하는 방법을 본격적으로 설명하기 시작한다. 이 장의 예제 프로젝트는 MLB.com 웹사이트에서 데이터를 읽어서 선수들의 연봉과 팀 성적 간의 상관관계를 보여주는 이미지를 생성한다. 공식적인 API가 제공되지 않는 웹사이트로부터 데이터를 긁어오는 방법을 보여주는 방법을 구체적으로 다룬다. 여기에 사용되는 기법은 야구뿐만 아니라 다양한 프로젝트에서 사용할 수 있다. 6장, ‘산포도’에서는 사용자가 우편번호를 키보드로 입력하면서 미국 지도를 개량할 수 있는 프로젝트를 개발함으로써 “우편번호와 지리적 위치는 어떤 관계가 있는가?”와 같은 질문에 답을 할 수 있는 방법을 소개한다. 7장 ‘트리, 계층, 재귀’에서는 트리와 계층구조에 관해 논의한다. 또한 트리 구조를 다룰 때 꼭 알아야 할 개념인 재귀에 대해 설명하고, 특정 종류의 트리 데이터를 효과적으로 표현할 수 있는 트리맵도 다룬다. 8장, ‘네트워크와 그래프’는 정보로 이뤄진 네트워크, 즉 그래프를 주제로 삼는다. 전반부에서는 네트워크를 구성하는 수많은 노드 간의 연결을 표현하는 방법을 논의하고, 후반부에서는 웹사이트 트래픽 데이터를 이용해 실제로 그래프를 생성함으로써 웹사이트 이용 현황을 보여주는 방법을 설명한다. 이때 Processing을 널리 쓰이는 자바 IDE인 이클립스(Eclipse)와 통합하는 방법도 소개한다. 마지막 세 장은 데이터를 획득하고 파싱하는 것과 관련된 추가적인 배경지식과 기법을 중심으로 실무에서 참고서로 사용할 만한 내용을 담고 있다. 9장, ‘데이터 수집’은 온갖 종류의 실용적인 기법을 망라하는 일종의 요리책에 해당한다. 파일로부터 데이터를 읽어들이는 방법, 웹 브라우저를 흉내 내는 방법, 데이터를 데이터베이스에 저장하는 방법 등을 설명한다. 10장, ‘데이터 파싱’ 역시 9장과 비슷한 구성으로, 데이터를 파싱하는 방법을 보여주는 예제들로 가득하다. HTML 테이블, XML, 압축 데이터, SVG 등의 다양한 형태의 데이터를 파싱하는 방법이 다뤄진다. 또한 문서화되지 않은 데이터 프로토콜의 동작 방법을 이해하기 위해 네트워크 연결을 관찰하는 방법도 소개한다. 11장, ‘Processing과 자바의 통합’에서는 Processing API를 자바와 통합하는 방법을 구체적으로 설명한다. 이 장은 Processing API를 별도의 프로젝트에서 사용하기를 원하는 고급 자바 프로그래머를 대상으로 하는, 부록에 가까운 장이라고 할 수 있다. ★ 지은이의 말 ★ 시각화 프로젝트의 성과를 보여줄 때 청중에게서 “어떤 방법으로 이런 결과물을 만들 수 있습니까?”라는 질문을 자주 받는다. 데이터 시각화를 다루는 책이 이미 많이 나와 있지만, 대체로 학술 논문을 모아놓은 데 그치는 경우가 많고 실제로 시각화를 구축하는 방법에 관해서 다루는 책은 거의 없다. 디자인 측면에서 접근하는 책들의 경우 시각화 방법에 관한 조언을 제공하지만 대부분 정적인 화면에 그치며, 동적이면서 소프트웨어 기반의 시각화를 다루지 않고 있다. 또한 주어진 시각화의 잘못된 점이 무엇인지 지적하는 데만 집중하고 실질적인 해결책은 제시하지 않는 경우가 많다. 이 책에서는 자신만의 시각화 구축을 시작하고자 하는 사람을 대상으로 좀 더 복잡한 작업으로 나아갈 수 있는 계기를 제공하기 위해 노력했다. 모든 내용을 다루지는 않지만, 충분한 배경지식을 제공함으로써 여러분이 어디로 나아가야 할지 헤매지 않도록 많은 주의를 기울였다. 이 책을 쓴 이유는 나의 박사학위 논문이었던 ‘Computational Information Design’에서 다룬 아이디어를 좀 더 많은 이들에게 알리기 위해서였다. 특히 학술 논문에서 이론상으로 쓰이는 데 그치지 않고 실제 현장에서 적용 가능하다는 사실을 보여주고 싶었다. 해당 논문은 데이터를 수집해서 이해하기까지의 프로세스를 다뤘다. 즉 대규모의 정보를 얻은 뒤, 쉽게 이해할 수 있고 대화식으로 조작할 수 있는 방법으로 그 정보를 유용하게 표현하는 과정이라고 할 수 있다. 이 과정은 1장에서 처음 소개되고, 이 책 전반에 걸쳐 시각화 작업을 위한 기초적인 프레임워크로서 사용된다. 이 책의 예제 대부분은 다른 라이브러리에 의존하지 않고 완전히 새로 작성된 것이다. 차트나 그래프를 만들어주는 툴킷이나 라이브러리에 의존하기보다는, 약간의 계산, 직선 및 사각형, 그리고 텍스트를 사용해 여러분이 직접 그래프를 만드는 방법을 배우게 된다. 많은 독자가 아마 그러한 툴킷들의 결점을 이미 알고 있을 것이다. 포괄적인 용도로
★ 지은이의 말 ★
시각화 프로젝트의 성과를 보여줄 때 청중에게서 “어떤 방법으로 이런 결과물을 만들 수 있습니까?”라는 질문을 자주 받는다. 데이터 시각화를 다루는 책이 이미 많이 나와 있지만, 대체로 학술 논문을 모아놓은 데 그치는 경우가 많고 실제로 시각화를 구축하는 방법에 관해서 다루는 책은 거의 없다. 디자인 측면에서 접근하는 책들의 경우 시각화 방법에 관한 조언을 제공하지만 대부분 정적인 화면에 그치며, 동적이면서 소프트웨어 기반의 시각화를 다루지 않고 있다. 또한 주어진 시각화의 잘못된 점이 무엇인지 지적하는 데만 집중하고 실질적인 해결책은 제시하지 않는 경우가 많다.
이 책에서는 자신만의 시각화 구축을 시작하고자 하는 사람을 대상으로 좀 더 복잡한 작업으로 나아갈 수 있는 계기를 제공하기 위해 노력했다. 모든 내용을 다루지는 않지만, 충분한 배경지식을 제공함으로써 여러분이 어디로 나아가야 할지 헤매지 않도록 많은 주의를 기울였다.
이 책을 쓴 이유는 나의 박사학위 논문이었던 ‘Computational Information Design’에서 다룬 아이디어를 좀 더 많은 이들에게 알리기 위해서였다. 특히 학술 논문에서 이론상으로 쓰이는 데 그치지 않고 실제 현장에서 적용 가능하다는 사실을 보여주고 싶었다. 해당 논문은 데이터를 수집해서 이해하기까지의 프로세스를 다뤘다. 즉 대규모의 정보를 얻은 뒤, 쉽게 이해할 수 있고 대화식으로 조작할 수 있는 방법으로 그 정보를 유용하게 표현하는 과정이라고 할 수 있다. 이 과정은 1장에서 처음 소개되고, 이 책 전반에 걸쳐 시각화 작업을 위한 기초적인 프레임워크로서 사용된다.
이 책의 예제 대부분은 다른 라이브러리에 의존하지 않고 완전히 새로 작성된 것이다. 차트나 그래프를 만들어주는 툴킷이나 라이브러리에 의존하기보다는, 약간의 계산, 직선 및 사각형, 그리고 텍스트를 사용해 여러분이 직접 그래프를 만드는 방법을 배우게 된다. 많은 독자가 아마 그러한 툴킷들의 결점을 이미 알고 있을 것이다. 포괄적인 용도로 사용되는 도구는 포괄적인 화면을 보여줄 수 있을 뿐이다. 막상 여러분의 데이터 집합에 적용하면 실망스러운 결과물을 보여주기 십상이다. 데이터는 독특한 유형의 화면 표시와 상호작용을 필요로 하는 경우가 대부분이다. 이 책은 단순한 막대그래프나 원 그래프가 제시할 수 없는 방법으로 여러분의 상상력을 자극하고자 한다.
이 책은 나와 UCLA의 케이시 리스(Casey Reas)가 함께 개발한 프로그래밍 환경이자 API인 Processing(http://processing.org)을 사용한다. Processing의 프로그래밍 환경은 코드를 ‘스케치’하듯이 편안한 방법으로 시각적 이미지를 신속히 생성할 수 있다. Processing의 API는 자바 기반이므로 여타 자바 IDE를 사용해 Processing 코드를 작성할 수도 있다. Processing은 무료로 다운로드할 수 있으며 오픈소스를 준수한다. 2001년부터 개발돼왔으며, 최근 1년간 10만 명 이상이 다운로드한 Processing은 수많은 분야에 걸쳐서 수만 명의 사용자를 보유하고 있다. 나는 이 책을 쓰기 시작할 때 어떤 언어와 API를 사용할지를 놓고 많은 토론을 벌였다. 자바의 사용도 고려했지만, 책의 내용을 이해하기 쉽게 단순화하려면 결국 Processing을 다시 구현하는 것과 별로 다를 게 없다. 액션스크립트와 플래시도 검토했지만, 플래시는 가격이 비싸고 대규모 데이터 집합을 제대로 표시하지 못할 때가 있다. 파이썬이나 루비 등의 스크립트 언어는 쓰기 편하지만, 실행 속도가 자바에 미치지 못한다. 결국은 비용, 사용 편의성, 실행 속도를 종합적으로 고려할 때 Processing이 최적의 방법이라는 결론에 이르렀다.
★ 옮긴이의 말 ★
최근 들어 가장 주목받는 단어 중 하나가 데이터 과학(Data Science)입니다. 데이터 과학은 도메인 전문지식, 데이터 관리, 프로그래밍, 통계학, 데이터 시각화 등의 다양한 스킬을 필요로 하는데, 이 책에서 주로 다루는 것이 바로 데이터 시각화입니다. 데이터 과학의 목적이 결국 의사결정을 지원하는 것이라면, 분석 결과를 효과적으로 전달함으로써 다른 사람을 설득하기 위해서는 효과적인 시각화가 필수적입니다.
이 책에서는 Processing이라는 프로그래밍 환경을 사용합니다. 이 책의 저자인 벤 프라이(Ben Fry)가 2002년 발표한 Processing은 애초에는 디자이너 같은 컴퓨터 비전공자를 대상으로 비교적 간단하게 시각화 결과물을 산출할 수 있는 자바 확장으로서 개발됐지만, 현재는 건축, 바이오인포매틱스, 통계학 등의 다양한 분야에서 널리 사용되고 있습니다. Processing에서 프로그램 소스 파일을 스케치(sketch)라고 부르는 이유도 원래 디자인 계통에서 출발한 프로그래밍 환경이기 때문입니다.
그렇지만 이 책을 제대로 읽기 위해서는 프로그래밍 경험이 어느 정도 필요합니다. 만일 프로그래밍에 익숙하지 않은 분이라면, 벤 프라이가 저술한 Processing 입문서를 먼저 읽어보시는 편이 나을 수도 있습니다. 프로그래밍 경험이 있는 분이라면 이 책의 2장에서 Processing에 관한 간단한 소개를 읽는 것으로도 이후의 장들을 읽어나갈 수 있을 것입니다.
데이터 시각화는 예술과 공학이 융합된 분야로, 효율적인 시각화를 위해서는 프로그래밍 스킬뿐 아니라 인지과학적 지식과 수많은 시행착오가 요구됩니다. 이 책이 독자 여러분이 효과적인 데이터 시각화 구축을 위한 기초를 다지는 데 도움이 된다면 더할 나위가 없을 것 같습니다.

목차
1장. 데이터 시각화 7단계
__데이터를 표시할 때 사전 계획이 필요한 이유
__예제
__반복과 결합
__원칙
__정리
2장. Processing 시작하기
__Processing으로 스케치 그리기
__작업 결과 익스포트와 배포
__예제 프로그램과 도움말
__주요 함수
__스케치와 스크립트
__정리
3장. 매핑
__지도 그리기
__지도 위 위치
__지도 위 데이터
__독자적인 데이터 사용
__정리
4장. 시계열
__우유와 홍차와 커피(데이터 수집, 파싱)
__테이블 정리(필터링, 마이닝)
__간단한 화면 표시(표현, 정교화)
__현재의 데이터 집합에 레이블 달기(정교화, 상호작용)
__축에 레이블 달기(정교화)
__적절한 표현 선택하기(표현, 정교화)
__롤오버를 사용해 데이터 포인트 강조하기(상호작용)
__점을 연결하는 방법(정교화)
__탭 구분 텍스트 레이블(상호작용)
__데이터 집합 간의 보간(상호작용)
__정리
5장. 상관관계
__데이터 소스의 변경
__예제 프로젝트 개요
__전처리
__전처리를 끝낸 데이터의 사용(데이터 수집, 파싱, 필터링, 마이닝)
__결과 표시(표현)
__문제로 돌아가기(정교화)
__고급 정렬: 똑같은 성적을 낸 팀 간의 순위 결정을 위해 연봉 이용하기(마이닝)
__2 이상의 날짜로 이동하기(상호작용)
__자연스러운 상호작용 구현(정교화)
__배포 시의 고려사항(데이터 수집, 파싱, 마이닝)
6장. 산포도
__전처리
__데이터 로드(데이터 수집, 파싱)
__우편번호가 가리키는 위치를 점으로 표현하기(마이닝, 표현)
__키 입력을 받으면서 강조 표시하기(정교화, 상호작용)
__현재 선택된 점을 나타내는 방법(정교화)
__점진적으로 밝기를 변경(정교화)
__줌인 기능(상호작용)
__화면 확대 시 표시 방법 변경(정교화)
__애플리케이션 배포와 관련된 이슈(데이터 수집, 정교화)
__정리와 개선
7장. 트리, 계층, 재귀
__재귀를 사용한 디렉토리의 트리 구조 구축
__큐를 사용한 비동기 로드(상호작용)
__트리맵 소개
__자리를 가장 많이 차지하고 있는 파일은?
__폴더의 내용 보기(상호작용)
__트리맵 표시 개선(정교화)
__파일 내비게이트(상호작용)
__정리
8장. 네트워크와 그래프
__간단한 그래프 예제
__복잡한 그래프
__네트워크의 표현 방법
__고급 그래프 예제
__추가적인 정보 마이닝
9장. 데이터 수집
__어디서 데이터를 찾을까
__인터넷에서 데이터를 수집하기 위한 도구
__Processing에서 사용하는 파일의 위치
__텍스트 데이터 로드
__파일과 폴더 처리
__폴더 내의 파일 열거하기
__비동기식 이미지 다운로드
__자바와의 연결고리로서 openStream() 사용하기
__바이트 배열 처리
__고급 웹 기법
__데이터베이스 사용
__다수의 파일 처리
10장. 데이터 파싱
__노력의 수준
__단서를 모으기 위한 도구
__텍스트가 최고!
__마크업 언어
__정규표현
__문법과 BNF 표기법
__압축 데이터
__벡터와 좌표정보
__이진 데이터 형식
__고급 탐색 작업
11장. Processing과 자바의 통합
__프로그래밍 모드
__추가 소스 파일(탭)
__전처리기
__API의 구조
__자바 애플리케이션에 PApplet 포함시키기
__Processing 스케치에서의 자바 코드 사용
__라이브러리 사용
__processing.core 소스코드 조사
참고문헌
찾아보기









































