출제확률 💯 99% · ⭐ 80% · 🔥 50% · 🤔 20% | ❗ = 기출 포인트 | 🥔 = 암기법 | 🚫 = 기출 함정 | 📗 = 예시/순서 이 과목 예상 출제 범위 — 💯 DIKW·터프티 7원칙·정보시각화 5유형 / ⭐ 삼찰·인사이트프로세스·베르탱 7요소·D3.js 구현절차 / 🔥 시각화도구 비교·R패키지·LATCH 📗 이 과목은 D3.js의 translate·rotate 함수를 제외하면 직접적인 수치 계산 문제가 거의 없어요. D3.js 변환 함수는 16-1번 항목에서 숫자 예시와 함께 다룹니다.
0) 원본 교재 없이도 이해되는 기초 개념 📖 (입문자용)
이 과목은 왜 배우나요? ❗ 1과목에서 배운 데이터를 분석해도, 사람이 그 결과를 눈으로 보고 이해하지 못하면 의미가 없습니다. 5과목은 분석 결과를 사람이 한눈에 이해하고, 설득당하게 전달할 수 있도록 그림(차트·그래프·대시보드)으로 만드는 방법을 다루는 과목입니다. 흐름: 인사이트를 얻기 까지의 과정(1장) → 그 과정을 실제 그림으로 디자인하는 원칙(2장) → 그 그림을 R·D3.js로 실제로 만드는 방법(3장).
제1장 시각화 인사이트 프로세스
1) 시각적 이해의 위계 (DIKW) 💯
조직성과 의미가 증가하는 순서 ❗: 데이터 → 정보 → 지식 → 지혜
| 단계 | 정의 | 예시 |
|---|---|---|
| 데이터 ❗ | 각각 분리된 개별적 기초자료(원자료). 불완전·비연속적이라 정보 전달 측면에서 가치 없음 | 강수량 수치 자체 |
| 정보 ❗ | 데이터 간의 **관계(상관·인과)**가 생성된 것. 서로 다른 데이터 간 패턴을 가시화해 의미 전달 | 지역별 연간 강수량 |
| 지식 ❗ | 다양한 정보가 상위 개념 관계를 맺으며 조직화된 것(일반화) | A마을의 수해대책 |
| 지혜 ❗ | 개인화된 지식. 개인의 경험·사고·감정과 결합되어 구조화되며, 명시적 언어로 전달하기 어려움(내면화) | 주민 개개인의 생활 노하우 |
🥔 외우는법! 데정지지 — 데이터·정보·지식·지혜 🚫 기출 함정(실제 선지): “위계구도상에서 하위 개념이 조직화되어 만들어진 단계는?” → 정답은 지식(정보들이 조직화된 것). 데이터=개별요소, 정보=관계 생성, 지혜=개인화된 지식이라는 4단계 구분을 헷갈리지 않게 암기
2) 삼찰(3찰) · 인사이트 프로세스 ⭐
🥔 삼찰 외우는법! 관성통 — 관찰 → 성찰 → 통찰
관찰 ❗ 외부 세계의 대상들과 그 상호작용을 관찰하며 의미있는 관계를 찾는 것 / 성찰 ❗ 자신의 내면 세계를 깊이 살피는 것 / 통찰 ❗ 관찰+성찰을 바탕으로 내부·외부 요인 간 관계를 살피는 것 → 숨겨진 관계를 찾아내어 인사이트를 얻음
시각화 인사이트 프로세스 ❗ : 탐색 → 분석 → 활용 → (탐색으로 반복)
| 구분 | 대상 | 목표 | 시각화 형태 |
|---|---|---|---|
| 탐색 ❗ | 자료(데이터·정보·지식·지혜) | 자료 사이에 존재하는 관계 파악 | 패턴파악 |
| 분석 ❗ | 자료 사이의 관계 | 관계의 구체적 형태, 자료의 상위/확장 개념으로 발전 | 그래프 분석 |
| 활용 ❗ | 자료의 상위/확장 개념(통찰) | 내부 적용, 외부에 대한 설명/설득, 통찰의 검증·정교화 | 인포그래픽 |
3) 탐색(1단계) — 데이터 명세화 ❗❗ (신설·보강)
데이터 명세화: 탐색 단계에서 데이터를 살펴보기 전, **차원(Dimension)과 측정값(Measure)**을 정의하고 어떤 단위·형태로 표현할지 결정하는 작업
3-1. 데이터를 바라보는 두 가지 접근 관점 ❗❗
| 접근 관점 | 내용 |
|---|---|
| 이벤트의 기록으로서의 접근 ❗ | 데이터를 시간의 흐름에 따라 발생한 사건(이벤트)의 로그로 인식. **“언제, 무슨 일이 일어났는가”**에 초점(거래 기록, 로그, 시계열 이벤트) |
| 객체지향적 관점에서의 접근 ❗ | 데이터를 **속성(attribute)을 지닌 객체(사물)**로 인식. **“이 대상은 어떤 특성을 가지는가”**에 초점(고객·상품 등 개체의 속성 집합) |
🚫 기출 함정(실제 선지): “측정값을 분류할 수 있는 모든 것은 차원이 될 수 있다”(O, 옳음) / “차원과 측정값의 구분은 데이터의 성격이 아니라 분석 형태에 따라 달라질 수 있다”(O, 옳음) / “하나의 차원이 하나의 값으로 고정되었더라도 반드시 차원이라고 명시해야 한다” → 오답! 값이 고정된 경우엔 굳이 차원이라 명시하지 않는 경우도 있음
4) 분석(2단계) — KPI와 인과관계 분석 기법 ❗❗ (신설·보강)
KPI(Key Performance Indicator, 핵심성과지표) ❗ : 조직의 목표 달성 정도를 정량적으로 측정하기 위해 설정하는 핵심 지표. 분석(2단계)에서 자료 사이의 관계를 **구체적 형태(그래프 분석)**로 발전시킬 때, 이 관계가 비즈니스 목표(KPI)와 어떻게 연결되는지를 살펴보는 것이 핵심
변수 간 선형/비선형 인과관계의 형태와 강도를 추출하는 통계기법 ❗
| 기법 | 인과관계 추출에 사용 여부 |
|---|---|
| 회귀분석 ❗ | 사용 O |
| 로지스틱 회귀분석 ❗ | 사용 O |
| 판별분석 ❗ | 사용 O |
| 요인분석 ❗ | 사용 X — 요인분석은 결과에 영향을 미치는 핵심 요인들 사이의 관계·선별을 위한 기법(인과관계의 형태·강도 추출과는 다름) |
🚫 기출 함정(실제 선지): “변수 간 인과관계 형태와 강도를 추출하는 기법으로 부적절한 것은?” 보기에 요인분석을 섞음 → 요인분석은 핵심 요인 선별 기법이라 오답(정답)
5) 활용(3단계) — 인사이트의 발전과 확장 💯❗❗❗ (신설·보강)
인사이트를 발전·확장시키는 3가지 방법(성격이 서로 다름에 주의)
5-1. 탑다운 / 바텀업
| 접근 | 내용 |
|---|---|
| 탑다운(Top-Down) ❗ | 이미 설정된 가설·전체 틀에서 출발해 세부로 좁혀가며 통찰을 확장 |
| 바텀업(Bottom-Up) ❗ | 개별 데이터·사실로부터 출발해 상위의 통찰·패턴으로 확장 |
5-2. 잘라보기 · 달리보기 (슬라이스 & 다이스) vs 내려다보기 · 올려다보기 (드릴다운 & 리버스 드릴다운) ❗❗❗
| 기법 | 정의 |
|---|---|
| 잘라보기(슬라이스) ❗ | 전체 데이터 패턴을 먼저 탐색한 다음, 일정 기준에 따라 쪼개 일부분만 보는 것 |
| 달리보기(다이스) ❗ | 여러 차원이 있을 때, 차원들을 일정 기준으로 잘라내 서로 다른 관점의 단면을 보는 것. 피벗 테이블에서는 결국 행과 열에 어떤 차원을 배치하느냐의 문제이며, 시각화 도구도 바로 적용 가능 |
| 내려다보기(드릴다운) ❗ | 계층 구조를 형성하는 하나의 차원 안에서 세부 하위 차원으로 분할해보는 것(잘라보기와 달리, 차원을 바꾸는 게 아니라 하나의 차원 안에서 파고듦) |
| 올려다보기(리버스 드릴다운) ❗ | 현재보다 상위 계층 관점에서 보는 것 |
🚫 기출 함정(실제 선지, 최다 출제 유형): “인사이트를 발전·확장하는 방법 중 성격이 다른 하나는?” — 보기에 잘라보기·달리보기 설명 3개 + 드릴다운 설명 1개를 섞어놓고 “다른 하나”를 고르라는 형태로 반복 출제됨. 구분 기준: 슬라이스&다이스 = 어떤 차원을 기준으로 볼 것인가(차원 자체를 바꿈) / 드릴다운&리버스드릴다운 = 하나의 차원 안에서 계층 깊이만 이동(차원은 그대로)
5-3. 실시간 / 비실시간
| 구분 | 내용 |
|---|---|
| 실시간 ❗ | 데이터 발생과 거의 동시에 분석·시각화·의사결정에 반영(예: 실시간 대시보드) |
| 비실시간(배치) ❗ | 일정 주기로 데이터를 모아 사후적으로 분석·시각화(예: 일간·주간 리포트) |
제2장 시각화 디자인
6) 시각화의 목적과 상위 개념 구분 🔥❗ (보강)
데이터 시각화의 두 가지 목적 ❗❗: ① 데이터 분석(내부적으로 패턴·관계를 찾는 분석적 목적) ② 의사소통(외부에 결과를 전달·설득하는 커뮤니케이션 목적)
위계 요소 대응 관계 ❗❗❗ : 시각적 이해의 위계(DIKW)와 정보 개념의 위계가 서로 대응됨 — 데이터는 “시각화”에, 정보는(정보) “디자인”에 대응. 즉 낮은 위계(데이터)를 다루는 표현이 시각화이고, 높은 위계(정보 이상)를 다루며 의미 전달까지 신경 쓰는 것이 디자인 영역
| 개념 | 키워드 |
|---|---|
| 데이터 시각화 ❗ | 같은 범주 안의 많은 데이터에 의미 부여해 효율적 전달. 관점: 통계적 그래픽/주제 지도학 |
| 정보 시각화 ❗ | 큰 범주의 정보를 시각화. 과학연구·데이터마이닝 등에 적용(분기도·수지도·히트맵·트리맵으로 표현) |
| 정보 디자인 ❗ | 복잡하고 비구조적인 기술 데이터를 사람이 사용 가능한 효과적 정보로 시각화(데이터·정보 시각화를 포함하는 가장 넓은 개념). 대표 사례: 인포그래픽 |
🚫 기출 함정(실제 선지): “빅데이터의 시각화는 그래픽 능력을 최우선으로 요구한다” → 오답! 실제로는 전문 빅데이터 분석 능력 + 시각화 능력 + IT 기술로 서비스 구현하는 능력을 종합적으로 요구. 그래픽 디자인 능력 하나만으로는 부족 🚫 기출 함정(실제 선지): “시각화 과정에서는 정보 수용자의 관점만을 중심으로 표현해야 하며, 작성자의 관점에서 정보를 해석·전달해야 중립적 해석을 기대할 수 있다” → 오답! 시각화는 정보 수용자(사용자) 관점이 중심이어야 하고, 작성자(제작자) 관점 위주로 흐르면 오히려 객관성이 떨어짐 — 지문 자체가 앞뒤 모순인 함정
인포그래픽 ❗ : 중요한 정보를 한 장의 그래픽으로 표현한 메시지. 원 데이터를 그대로 다루지 않고 정보형(객관적) 또는 설득형(주장) 메시지로 나눠봄
🚫 기출 함정(빅데이터 시각화 영역 관련) ❗❗: 인포그래픽(정보 디자인의 대표 사례)은 실제로는 “빅데이터 시각화” 영역에 거의 포함되지 않음에 유의! 빅데이터 시각화는 대량의 정형/비정형 데이터를 분석 도구로 처리해 그래프·차트로 표현하는 데 초점이 있고, 인포그래픽은 이미 정제된 소수의 핵심 메시지를 디자인적으로 설득력 있게 전달하는 것이라 성격이 다름(정보 디자인 ⊃ 데이터/정보 시각화, 인포그래픽은 정보 디자인 쪽에 더 가까움)
7) 빅데이터 시각화 프로세스 3단계 💯❗❗ (보강)
🥔 외우는법! 구시표 — 정보 구조화 → 정보 시각화 → 정보 시각 표현
| 단계 | 설명 |
|---|---|
| 정보 구조화 ❗ | 데이터를 수집·정제하는 과정(데이터셋 제작을 위한 분석 도구 필요) |
| 정보 시각화 ❗ | 주로 분석 도구가 제공하는 그래프나 도구 특성에 따른 시각화 |
| 정보 시각 표현 ❗ | 시각화 의도를 강화해 전달하기 위해 별도 그래픽 요소를 추가해 완성 |
7-1. 정보 조직화(구조화) 세부 순서 ❗❗❗ (상세)
정보 구조화는 데이터를 목적에 맞게 분류(Classification)하고 조직화하는 과정이 핵심이며, 아래와 같은 세부 절차를 거침:
- 데이터 수집 — 목적에 맞는 원천 데이터 확보(정형·비정형·반정형 모두 포함)
- 데이터 정제 — 결측치·이상치 처리, 중복 제거 등 품질 확보
- 데이터 분류(Classification) ❗ — 목적·기준에 따라 데이터를 범주화. 분류 기준을 어떻게 잡느냐에 따라 이후 시각화 결과가 달라짐(예: LATCH 배열법의 위치·알파벳·시간·카테고리·위계 기준 활용)
- 데이터셋 구성 — 분류된 데이터를 분석 도구에 넣을 수 있는 데이터셋 형태로 편성
🚫 기출 함정: “데이터 분류”를 묻는 문제에서 분류 기준(위치·시간·카테고리 등)과 그 예시를 짝짓는 유형이 출제될 수 있음 — LATCH의 5가지 배열법(12번 항목 참고)이 곧 대표적인 데이터 분류 기준이라는 점을 연결해서 암기
8) 시각 정보 디자인 7원칙 (터프티) 💯
🥔 외우는법! 비인다텍 질공정 — 비교강화 인과제시 다중변수 텍스트그래픽조화 질담보 공간순열거 정량유지
| 원칙 | 내용 |
|---|---|
| 1.시각적 비교를 강화하라 ❗ | 연관된 변수·트렌드를 비교할 도구 제공 → 비교할수록 정보의 가치가 올라감 |
| 2.인과관계를 제시하라 | 원인과 결과를 명확히 제시 |
| 3.다중변수를 표시하라 | 여러 연관 변수를 활용해 정보를 표현 |
| 4.텍스트·그래픽·데이터를 한 화면에 조화롭게 배치하라 ❗ | 라벨과 범례가 도표에 녹아있는 다이어그램이 효과적 |
| 5.콘텐츠의 질과 연관성, 진실성을 분명히 하라 | 정보가 사용자의 목적 달성에 도움이 되는지 고민 |
| 6.시간순이 아닌 공간순으로 나열하라 ❗ | 시간이 아닌 공간에 따라 나열할 때 이해가 쉬움 |
| 7.정량적 자료의 정량성을 제거하지 마라 | 트렌드를 그래프·도표로 표현해도 정량적 정보를 한눈에 파악할 수 있게 유지 |
🚫 기출 함정: “공간이 아닌 시간순으로 나열할 때 이해가 쉽다” → 오답(반대로 서술된 함정, 실제 기출 반복 출제)
9) 정보 시각화 5유형 · 차트 종류 💯
| 유형 | 대표 차트 |
|---|---|
| 시간 시각화 ❗ | 막대그래프, 누적막대그래프, 점그래프 (분절형/연속형) |
| 분포 시각화 ❗❗ | 파이차트, 도넛차트, 트리맵, 누적연속그래프 — **전체에서 각 항목이 차지하는 비중(구성비)**을 표현하는 데 특화. 시간 흐름보다 특정 시점의 구성 비율을 보여주는 것이 핵심 |
| 관계 시각화 ❗ | 스캐터플롯(산점도), 버블차트, 히스토그램, 네트워크 그래프, 산점도행렬 |
| 비교 시각화 ❗ | 히트맵, 체르노프 페이스, 스타차트, 평행좌표계, 다차원척도법(MDS), 플로팅 바 차트 |
| 공간 시각화 ❗ | 지도 매핑(구글차트의 지오차트 — 매핑 포인트를 몰라도 지명만 알면 시각화 가능) |
산점도(Scatter Plot) ❗ : 데이터 간 관계 시각화에 적합, 특히 군집화와 이상치 패턴 파악에 유용
갭마인더(Gapminder) ❗❗ : 국가별 소득·기대수명 등 여러 변수를 동시에 보여주는 대표적인 버블차트(Bubble Chart) 시각화 도구 — 가로축·세로축·버블 크기·색상으로 4개 이상의 변수를 한 화면에 표현하는 관계/비교 시각화의 대표 사례로 자주 언급됨
워들(Wordle, 워드클라우드) ❗❗ (신설) : 텍스트 데이터에서 단어의 출현 빈도를 시각화하는 도구. 빈도가 높을수록 글자 크기를 크게 표시. 텍스트(비정형) 마이닝 결과를 직관적으로 보여주는 데 사용되며, 불용어 제거 등 텍스트 전처리가 선행되어야 의미 있는 결과를 얻을 수 있음
10) 자크 베르탱의 그래픽 7요소 🔥
🥔 외우는법! 위크모색명기질 — 위치·크기·모양·색·명도·기울기·질감
위치(Position) ❗ : 특정 요소를 강조할 수 있게 해줌(Y좌표 변화로 상대적 위치·관계 비교) / 색 ❗ : 정량적 속성이 아니기 때문에 수치 표현이 힘들고 순서 매기기에 부적합 ❗ / 크기·모양·명도·기울기·질감은 각각 정량·구분을 보조하는 시각 속성
11) 그래픽 디자인 기본원리 🔥❗ (보강)
타이포그래피(Typography) ❗❗ : 문자(글자)를 효과적으로 배열·디자인하는 기술. 여러 서체보다는 1~2가지 서체에 크기·스타일 변화를 주는 것이 중요. 돌기있는 세리프는 가독성 높아 본문용, 산세리프는 주목성 높아 제목용
그리드(Grid) ❗❗ : 디자인 안에 여러 요소를 복합적으로 배치할 때 반드시 계획하고 지켜야 하는 격자(기준선) 체계
| 특징 | 내용 |
|---|---|
| 배치 기준 | 텍스트·그래픽·데이터 요소들의 정렬·여백·크기를 일관되게 유지하는 틀 |
| 적용 범위 ❗ | 정적 인포그래픽뿐 아니라 모션 인포그래픽, 인터랙션 정보 디자인에서도 그리드는 중요한 요소 |
| 효과 | 여러 요소가 있어도 시각적 일관성과 가독성을 확보하게 함 |
아이소타입(Isotype) ❗❗ : 많은 양의 데이터를 쉽게 지각하도록 돕는 시각표현 방법. 단순한 픽토그램이 아니라, 하나의 기호(그림)가 일정한 수량을 대표하는 국제적 그림언어 체계(예: 사람 모양 아이콘 1개 = 100만 명)
🚫 기출 함정: “아이소타입은 픽토그램(Pictogram)과 같은 개념이다” → 오답! 픽토그램은 단순히 대상을 상징화한 기호(수량 대표 X)이고, 아이소타입은 기호 하나하나가 일정 수량을 대표하며 반복 배치해 양을 표현한다는 점에서 다름
12) LATCH 배열법 · 인터랙션 5가지 방식 🔥
| LATCH 배열법 ❗ | 내용 |
|---|---|
| Location(위치) | 지리적 공간뿐 아니라 공간적 구분 모두 포괄 |
| Alphabet(알파벳) | 알파벳·가나다순 정렬, 1차 분류 후 하위분류에서 효과적 |
| Time(시간) | 시간으로 정보 배열 |
| Category(카테고리) | 종류·분류, 정보의 속성에 따라 분류 |
| Hierarchy(위계) | 물량·질량·고도·가격 변화 등에 따라 정보 조직화 |
인터랙션 목표 ❗: Meaningful · Understandable · Usable
| 방식 | 내용 |
|---|---|
| 강조·디테일 표현 ❗ | 비교 가능한 통계 그래프보다 더 많은 데이터셋을 관찰할 수 있게 함 |
| 콘텐츠 선택 방식 ❗ | 사용자가 보는 방식을 직접 결정 |
| 여러 방법으로 데이터 보여주기 ❗ | 다중 기준을 복합·조정해 같은 시간에 데이터셋의 다른 면을 볼 수 있음 |
| 사용자 지정 시각 매핑 변화 ❗ | 사용자 설정에 따라 데이터가 맵 위에 시각 레이어를 투사(프로젝션) |
| 사용자 관점·의견 반영 | 수용자의 관점이 결과물에 반영되는 형태 |
🚫 기출 함정: “강조·디테일 표현 방식”의 설명(“비교 가능한 통계 그래프보다 더 많은 데이터셋 관찰”)을 “콘텐츠 선택 방식”의 설명인 것처럼 문제에 섞어놓는 함정 반복 출제 — 각 방식의 설명을 서로 바꿔치기하지 않도록 정확히 매칭해서 암기
13) 정보 디자인 프로세스 10단계 (인포그래픽 제작) ⭐
| 단계 | 핵심 내용 |
|---|---|
| 1.데이터 수집 | 시각화 전문가가 원데이터를 직접 수집하기는 어려움 |
| 2.모든 것을 읽기 | 중요한 정보가 빠지지 않았는지, 스토리에 필요한 근거 확인 |
| 3.내러티브 찾기 | 스토리 제작 가능성·관심도·주목도 검토 |
| 4.문제의 정의 ❗ | 이야기의 논리성 검토, 컬러·타이포그래피 등 주관적 관점의 디테일 작업 |
| 5.계층 구조 만들기 | 이야기 중심을 주인공으로, 나머지는 보조 요소로 배열(콘셉트보드) |
| 6.와이어프레임 그리기 ❗ | 정보의 계층구조를 이해하도록 만드는 시각 표현 단계 |
| 7.포맷 선택하기 | 전통적 차트·그래프 활용, 예산 충분 시 인터랙션 시도 |
| 8.시각 접근방법 결정하기 | 차트·그래프·컬러로 아름다움 만들기 또는 일러스트레이션/메타포 활용 |
| 9.정제와 테스트 | 의도·목적에 맞게 되었는지, 이해 쉬운지 반복 확인 |
| 10.세상에 선보이기 | 프로젝트는 끝나는 것이 아니라 계속되는 과정 |
🚫 기출 함정(실제 선지, 반복 출제): “계층 구조 만들기(5단계) 단계에서 컬러·타이포그래피 등 좀 더 주관적인 관점의 디테일을 만들어가는 것이 좋다” → 오답! 컬러·타이포그래피 디테일은 **4단계(문제의 정의)**의 내용. 5단계는 이야기 중심/보조 요소를 배열하는 단계
제3장 시각화 구현
14) 시각화 구현 3방법 ⭐
| 구분 | 내용 |
|---|---|
| 전문 시각화 플랫폼 ❗ | 설치·구축한 플랫폼이 제공하는 기능·명령어로 지식 시각화. 예: 태블로, Gephi, 파워피벗, 클릭뷰 |
| 시각적 분석 플랫폼/라이브러리 ❗ | 그래픽 라이브러리로 직접 개발. 예: D3.js(커스터마이징 용이), jQuery 기반 Flot·jqPlot |
| 인포그래픽 | 데이터 표현을 위해 디자인을 강화 |
15) R을 이용한 시각화 구현 🔥
ggplot2 주요 함수 ❗
| 함수 | 그래프 |
|---|---|
| geom_point() | 포인트(산점도) 그래프 |
| geom_smooth() | 스무스 그래프(추세선) |
| geom_histogram() | 히스토그램(colour=막대 테두리 색) |
| geom_bar() | 막대그래프(fill=막대 내부 색) |
| geom_line() | 선그래프 |
aplpack 패키지 ❗ : 줄기-잎그림(stem.leaf()), 얼굴그림(faces(), 체르노프 페이스), 별그림(stars())
googleVis 패키지 ❗ : 공간분석용. 모션차트·지오차트 제공(지오차트=매핑 포인트 몰라도 지명만 알면 시각화 가능)
vcd 패키지(mosaic()) ❗ : 복수의 범주형 변수 분포 파악에 도움. 각 변수 비율 차이를 사각형 넓이로 확인
Shiny 구조 ❗
| 구성 | 역할 |
|---|---|
| headerPanel | 제목·주제 표시 |
| sidebarPanel | mainPanel에서 컨트롤 가능한 컴포넌트 배치 |
| mainPanel | 컨트롤 값을 반영한 결과화면 출력 |
ui.R(화면 구성) · server.R(실행 코드)은 항상 같은 폴더 안에 있어야 함
16) D3.js를 이용한 시각화 구현 🔥❗ (보강)
D3.js ❗ : 자바스크립트 기반 시각화 라이브러리. HTML5·SVG·CSS로 데이터 시각화, SVG 객체·canvas 객체 기반으로 동작
🥔 D3.js 구현 절차 5단계 ❗ : 데이터 획득 → 데이터 파싱 → 데이터 필터링 → 데이터 표현 → 상호작용 추가
| 차트 | 구현 절차(예시) |
|---|---|
| 막대차트(시간) | 객체생성 → 데이터입력 → 스케일정의 → 차트에 막대추가 → 레이블추가 → 축추가 |
| 파이차트(분포) | 객체생성 → 파이모양구현 → 차트옵션지정 → 레이블추가 |
| 스캐터플롯(관계) | 객체생성 → 축범위지정 → 축생성 → 데이터입력 → 스케일정의 → 포인트생성 → 축구현 → 범례추가 |
| 히트맵(비교), 지도(공간) | 각각 canvas 객체를 많이 활용 |
16-1. D3.js의 translate·rotate 함수 ❗❗ (신설)
D3.js에서 SVG 요소의 위치·회전을 조작할 때 transform 속성 안에 사용하는 대표 함수 2가지
| 함수 | 문법 | 기능 |
|---|---|---|
| translate(x, y) ❗ | .attr("transform", "translate(x, y)") | 요소를 x축으로 x만큼, y축으로 y만큼 이동시킴(평행이동). 축 레이블, 범례, 여백(margin) 확보 등에 자주 사용 |
| rotate(angle) ❗ | .attr("transform", "rotate(angle)") 또는 rotate(angle, cx, cy) | 요소를 지정한 각도(angle, degree)만큼 회전. 중심점(cx, cy)을 지정하면 그 점을 기준으로 회전(생략 시 원점 (0,0) 기준). 축 눈금 텍스트를 비스듬히 기울여 표시할 때 등에 자주 사용 |
🚫 기출 함정: translate와 rotate를 함께 사용할 때는 순서가 결과에 영향을 줌 — 예를 들어
translate(50,50) rotate(45)와rotate(45) translate(50,50)은 다른 결과를 만듦(먼저 적용된 변환의 좌표계 기준으로 다음 변환이 적용되기 때문)
SVG vs Canvas ❗
| 구분 | SVG | Canvas |
|---|---|---|
| 객체에 정보 저장 | O | X |
| 다시 그리기 | 유리(개별 객체 수정 용이) | 불리 |
| 성능 | 낮음 | 높음(대규모 데이터에 유리) |
🚫 기출 함정: “모든 시각화 요소는 항상 SVG 객체 기반으로 동작한다” → 오답. 히트맵은 성능을 위해 canvas 객체를 사용하는 경우가 많음
🥔 복습 체크리스트 (☐에 체크하며 회독)
- 1) DIKW 위계(데정지지) 정의+예시 💯 ❗
- 2) 삼찰(관성통) · 인사이트 프로세스(탐분활) ⭐ ❗
- 3) 탐색: 데이터 명세화 · 이벤트 기록 접근 vs 객체지향 접근 · 차원/측정값 함정 ❗❗
- 4) 분석: KPI · 인과관계 통계기법(요인분석 함정) ❗❗
- 5) 활용: 탑다운/바텀업 · 잘라보기·달리보기 vs 내려다보기·올려다보기(최다출제) · 실시간/비실시간 💯❗❗❗
- 6) 시각화 목적 2가지 · 위계대응(데이터=시각화, 정보=디자인) · 데이터/정보시각화/정보디자인 구분 🔥❗
- 7) 빅데이터 시각화 3단계(구시표) · 정보조직화 세부순서 · 인포그래픽=빅데이터시각화 아님(함정) 💯❗❗
- 8) 터프티 7원칙(비인다텍질공정) 💯 ❗
- 9) 정보시각화 5유형·차트 · 산점도 · 갭마인더=버블차트 · 워들=워드클라우드 💯❗❗
- 10) 베르탱 7요소(위크모색명기질) · 색은 순서/수치에 부적합 🔥
- 11) 타이포그래피 · 그리드(모션/인터랙션에도 적용) · 아이소타입(픽토그램 아님, 함정) 🔥❗❗
- 12) LATCH 배열법 · 인터랙션 5방식(강조·디테일 vs 콘텐츠선택 함정) 🔥❗
- 13) 정보디자인 프로세스 10단계 · 4단계(컬러·타이포)vs5단계(계층구조) 함정 ⭐❗
- 14) 구현 3방법(플랫폼/라이브러리/인포그래픽) ⭐
- 15) ggplot2 함수 · aplpack · googleVis · mosaic · Shiny 구조 🔥
- 16) D3.js 구현절차 5단계 · translate/rotate 함수와 순서 · SVG vs Canvas 🔥❗❗