Top

데이터 시각화 Visualizing Data [Processing을 이용한 데이터 탐색과 표현]

  • 원서명Visualizing Data: Exploring and Explaining Data with the Processing Environment (ISBN 9780596514556)
  • 지은이벤 프라이(Ben Fry)
  • 옮긴이이정문
  • ISBN : 9788960778368
  • 35,000원
  • 2016년 05월 31일 펴냄
  • 페이퍼백 | 488쪽 | 188*250mm
  • 시리즈 : 데이터 과학

책 소개

[저자 홈페이지]

[Processing]

요약

이 책은 프로세싱 프로그래밍 환경을 사용해 데이터 시각화를 구축하는 방법을 다룬다. 정보시각화의 프로세스와 프로세싱 소개부터 시작해서 매핑, 시계열, 상관관계 분석, 트리, 그래프 등을 시각화하는 방법을 예제와 함께 설명한다. 또한 데이터를 수집해 파싱할 때 사용할 수 있는 다양한 기법도 소개한다.

이 책에서 다루는 내용

데이터 시각화 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장에서 처음 소개되고, 이 책 전반에 걸쳐 시각화 작업을 위한 기초적인 프레임워크로서 사용된다.

이 책의 예제 대부분은 다른 라이브러리에 의존하지 않고 완전히 새로 작성된 것이다. 차트나 그래프를 만들어주는 툴킷이나 라이브러리에 의존하기보다는, 약간의 계산, 직선 및 사각형, 그리고 텍스트를 사용해 여러분이 직접 그래프를 만드는 방법을 배우게 된다. 많은 독자가 아마 그러한 툴킷들의 결점을 이미 알고 있을 것이다. 포괄적인 용도로 사용되는 도구는 포괄적인 화면을 보여줄 수 있을 뿐이다. 막상 여러분의 데이터 집합에 적용하면 실망스러운 결과물을 보여주기 십상이다. 데이터는 독특한 유형의 화면 표시와 상호작용을 필요로 하는 경우가 대부분이다. 이 책은 단순한 막대그래프나 원 그래프가 제시할 수 없는 방법으로 여러분의 상상력을 자극하고자 한다.

이 책은 나와 UCLA의 케이시 리스(Casey Reas)가 함께 개발한 프로그래밍 환경이자 API인 Processing(http://processing.org)을 사용한다. Processing의 프로그래밍 환경은 코드를 ‘스케치’하듯이 편안한 방법으로 시각적 이미지를 신속히 생성할 수 있다. Processing의 API는 자바 기반이므로 여타 자바 IDE를 사용해 Processing 코드를 작성할 수도 있다. Processing은 무료로 다운로드할 수 있으며 오픈소스를 준수한다. 2001년부터 개발돼왔으며, 최근 1년간 10만 명 이상이 다운로드한 Processing은 수많은 분야에 걸쳐서 수만 명의 사용자를 보유하고 있다. 나는 이 책을 쓰기 시작할 때 어떤 언어와 API를 사용할지를 놓고 많은 토론을 벌였다. 자바의 사용도 고려했지만, 책의 내용을 이해하기 쉽게 단순화하려면 결국 Processing을 다시 구현하는 것과 별로 다를 게 없다. 액션스크립트와 플래시도 검토했지만, 플래시는 가격이 비싸고 대규모 데이터 집합을 제대로 표시하지 못할 때가 있다. 파이썬이나 루비 등의 스크립트 언어는 쓰기 편하지만, 실행 속도가 자바에 미치지 못한다. 결국은 비용, 사용 편의성, 실행 속도를 종합적으로 고려할 때 Processing이 최적의 방법이라는 결론에 이르렀다.

지은이 소개

벤 프라이(Ben Fry)

MIT 미디어 랩의 ACG(Aesthetics + Computation Group)에서 박사학위를 받았고, 2006년부터 2007년까지 카네기 멜론 디자인 스쿨의 니렌버그 디자인 석좌교수를 지냈다. 케이시 리스(Casey Reas)와 공동 개발한 Processing은 2005년 프릭스 아르스 일렉트로니카(Prix Ars Electronica)에서 골든 니카(Golden Nica) 상을 수상했다. 록펠러 재단(Rockefeller Foundation)으로부터 뉴 미디어 펠로십(New Media Fellowship)을 받았으며, 벤의 작품들은 현대미술박물관(Museum of Modern Art), 아르스 일렉트로니카, 2002 휘트니 비엔날레(Whitney Biennial), 2003 쿠퍼 휴잇 디자인 트리엔날레(Cooper Hewitt Design Triennial)에서 전시됐다.

옮긴이의 말

최근 들어 가장 주목받는 단어 중 하나가 데이터 과학(Data Science)입니다. 데이터 과학은 도메인 전문지식, 데이터 관리, 프로그래밍, 통계학, 데이터 시각화 등의 다양한 스킬을 필요로 하는데, 이 책에서 주로 다루는 것이 바로 데이터 시각화입니다. 데이터 과학의 목적이 결국 의사결정을 지원하는 것이라면, 분석 결과를 효과적으로 전달함으로써 다른 사람을 설득하기 위해서는 효과적인 시각화가 필수적입니다.

이 책에서는 Processing이라는 프로그래밍 환경을 사용합니다. 이 책의 저자인 벤 프라이(Ben Fry)가 2002년 발표한 Processing은 애초에는 디자이너 같은 컴퓨터 비전공자를 대상으로 비교적 간단하게 시각화 결과물을 산출할 수 있는 자바 확장으로서 개발됐지만, 현재는 건축, 바이오인포매틱스, 통계학 등의 다양한 분야에서 널리 사용되고 있습니다. Processing에서 프로그램 소스 파일을 스케치(sketch)라고 부르는 이유도 원래 디자인 계통에서 출발한 프로그래밍 환경이기 때문입니다.

그렇지만 이 책을 제대로 읽기 위해서는 프로그래밍 경험이 어느 정도 필요합니다. 만일 프로그래밍에 익숙하지 않은 분이라면, 벤 프라이가 저술한 Processing 입문서를 먼저 읽어보시는 편이 나을 수도 있습니다. 프로그래밍 경험이 있는 분이라면 이 책의 2장에서 Processing에 관한 간단한 소개를 읽는 것으로도 이후의 장들을 읽어나갈 수 있을 것입니다. 데이터 시각화는 예술과 공학이 융합된 분야로, 효율적인 시각화를 위해서는 프로그래밍 스킬뿐 아니라 인지과학적 지식과 수많은 시행착오가 요구됩니다. 이 책이 독자 여러분이 효과적인 데이터 시각화 구축을 위한 기초를 다지는 데 도움이 된다면 더할 나위가 없을 것 같습니다.

옮긴이 소개

이정문

컴퓨터공학을 전공했으며 폭넓은 분야에 관심을 갖고 있다. 번역서로는 에이콘출판사에서 출간한 『UML 객체지향 모델링』(2006), 『비기닝 ANSI C++』(2008), 『안드로이드 앱 마케팅』(2011) 등이 있다.

목차

목차
  • 1장. 데이터 시각화 7단계
    • 데이터를 표시할 때 사전 계획이 필요한 이유
    • 예제
    • 반복과 결합
    • 원칙
    • 정리

  • 2장. Processing 시작하기
    • Processing으로 스케치 그리기
    • 작업 결과 익스포트와 배포
    • 예제 프로그램과 도움말
    • 주요 함수
    • 스케치와 스크립트
    • 정리

  • 3장. 매핑
    • 지도 그리기
    • 지도 위 위치
    • 지도 위 데이터
    • 독자적인 데이터 사용
    • 정리

  • 4장. 시계열
    • 우유와 홍차와 커피(데이터 수집, 파싱)
    • 테이블 정리(필터링, 마이닝)
    • 간단한 화면 표시(표현, 정교화)
    • 현재의 데이터 집합에 레이블 달기(정교화, 상호작용)
    • 축에 레이블 달기(정교화)
    • 적절한 표현 선택하기(표현, 정교화)
    • 롤오버를 사용해 데이터 포인트 강조하기(상호작용)
    • 점을 연결하는 방법(정교화)
    • 탭 구분 텍스트 레이블(상호작용)
    • 데이터 집합 간의 보간(상호작용)
    • 정리

  • 5장. 상관관계
    • 데이터 소스의 변경
    • 예제 프로젝트 개요
    • 전처리
    • 전처리를 끝낸 데이터의 사용(데이터 수집, 파싱, 필터링, 마이닝)
    • 결과 표시(표현)
    • 문제로 돌아가기(정교화)
    • 고급 정렬: 똑같은 성적을 낸 팀 간의 순위 결정을 위해 연봉 이용하기(마이닝)
    • 2 이상의 날짜로 이동하기(상호작용)
    • 자연스러운 상호작용 구현(정교화)
    • 배포 시의 고려사항(데이터 수집, 파싱, 마이닝)

  • 6장. 산포도
    • 전처리
    • 데이터 로드(데이터 수집, 파싱)
    • 우편번호가 가리키는 위치를 점으로 표현하기(마이닝, 표현)
    • 키 입력을 받으면서 강조 표시하기(정교화, 상호작용)
    • 현재 선택된 점을 나타내는 방법(정교화)
    • 점진적으로 밝기를 변경(정교화)
    • 줌인 기능(상호작용)
    • 화면 확대 시 표시 방법 변경(정교화)
    • 애플리케이션 배포와 관련된 이슈(데이터 수집, 정교화)
    • 정리와 개선

  • 7장. 트리, 계층, 재귀
    • 재귀를 사용한 디렉토리의 트리 구조 구축
    • 큐를 사용한 비동기 로드(상호작용)
    • 트리맵 소개
    • 자리를 가장 많이 차지하고 있는 파일은?
    • 폴더의 내용 보기(상호작용)
    • 트리맵 표시 개선(정교화)
    • 파일 내비게이트(상호작용)
    • 정리

  • 8장. 네트워크와 그래프
    • 간단한 그래프 예제
    • 복잡한 그래프
    • 네트워크의 표현 방법
    • 고급 그래프 예제
    • 추가적인 정보 마이닝

  • 9장. 데이터 수집
    • 어디서 데이터를 찾을까
    • 인터넷에서 데이터를 수집하기 위한 도구
    • Processing에서 사용하는 파일의 위치
    • 텍스트 데이터 로드
    • 파일과 폴더 처리
    • 폴더 내의 파일 열거하기
    • 비동기식 이미지 다운로드
    • 자바와의 연결고리로서 openStream() 사용하기
    • 바이트 배열 처리
    • 고급 웹 기법
    • 데이터베이스 사용
    • 다수의 파일 처리

  • 10장. 데이터 파싱
    • 노력의 수준
    • 단서를 모으기 위한 도구
    • 텍스트가 최고!
    • 마크업 언어
    • 정규표현
    • 문법과 BNF 표기법
    • 압축 데이터
    • 벡터와 좌표정보
    • 이진 데이터 형식
    • 고급 탐색 작업

  • 11장. Processing과 자바의 통합
    • 프로그래밍 모드
    • 추가 소스 파일(탭)
    • 전처리기
    • API의 구조
    • 자바 애플리케이션에 PApplet 포함시키기
    • Processing 스케치에서의 자바 코드 사용
    • 라이브러리 사용
    • processing.core 소스코드 조사
    • 데이터 수집, 파싱
    • 필터링, 마이닝
    • 표현
    • 정교화
    • 인터랙션
    • 시각화 전반

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안