PART 03 · 데이터 분석 · CHAPTER 03

데이터 마트 · 이론 시각화 & 기출문제

데이터 흐름을 눈으로 이해하고 → 기출 3문항을 좌우로 넘기며 풀어보기

교재 쪽수
pp. 221–224
이론 8장 · 기출 3문항
01 · 학습 출발점

오늘 우리는 무엇을 배우나요?

빅데이터의 창고에서 분석에 필요한 작은 작업대를 만들기까지

3장 · pp. 221–224

전체 학습 흐름 · 이 그림만 기억해도 큰 구조가 잡힙니다

원천 데이터고객 · 주문 · 상품
→
데이터 웨어하우스여러 데이터를 통합·축적
→
데이터 마트분석 목적에 맞춰 정리
→
분석·의사결정고객 이해 · 예측

🎯 학습목표 1 · 개념 구별

웨어하우스와 데이터 마트의 역할을 설명하고 요약변수와 파생변수를 구분할 수 있다.

🎯 학습목표 2 · 실습 연결

reshape(2) · sqldf · plyr · data.table이 각각 어떤 데이터 처리에 유용한지 설명할 수 있다.

오늘의 한 줄: 데이터 마트는 분석 목적에 맞춰 데이터를 꺼내고, 묶고, 바꾸고, 새로운 의미를 붙인 분석용 데이터 집합입니다.
#Data Warehouse#Data Mart#요약변수#파생변수#melt/cast#SQL#split–apply–combine#data.table
🎞️ 4컷으로 이해하기 · 마트가 왜 필요할까요?
🏬
① 큰 창고가 있어요모든 손님과 주문 기록을 쌓아둡니다.많고 다양함
🤔
② 질문이 생겼어요“단골 고객은 누구일까?”분석 목적
🧺
③ 필요한 것만 모아요고객별 구매 기록을 한곳에 정리합니다.데이터 마트
📊
④ 답을 찾아요구매 횟수와 금액으로 고객을 분석합니다.의사결정
02 · 데이터 저장 구조

데이터 웨어하우스 vs 데이터 마트

큰 통합 창고와 목적별 작업 공간은 역할이 다릅니다.

교재 p. 221 전후

개념 구조도

쇼핑몰 DB주문·결제
매장 DB방문·상품
고객 DB회원·문의
→
DW통합 저장
→
고객 분석 DM구매·방문 분석

※ 데이터 마트는 보통 DW 데이터를 사용하지만, 운영 시스템 등 다른 원천을 바탕으로 만들 수도 있습니다.

DW · Data Warehouse

전사적 통합 저장소

서로 다른 원천의 자료를 통합해 장기간 축적하고 분석·의사결정을 지원합니다.

DM · Data Mart

특정 주제·부서의 분석용 집합

마케팅, 고객관리, 영업 등 사용 목적에 필요한 정보를 중심으로 구성합니다.

데이터 웨어하우스의 핵심 4가지 특징

① 주제 지향성Subject Oriented

업무 프로그램이 아니라 고객·상품 등 주제별로 정리

② 통합성Integrated

여러 원천의 형식과 기준을 맞춰 통합

③ 시계열성Time Variant

과거에서 현재까지의 변경 이력 보유

④ 비휘발성Non-Volatile

분석을 위해 축적한 기록을 안정적으로 보존·조회

출제 핵심: “DW의 하위 집합” + “특정 사용자 그룹이 관심을 갖는 작은 저장소” = 데이터 마트
🎞️ 4컷 비유 · 도서관
📚
① 큰 도서관모든 분야 책을 모아둡니다.
🗂️
② 분야별 정리저자, 연도, 분야로 찾기 좋게 정리합니다.
📖
③ 논문 준비 자료실관광 분야 책만 가져와 작은 공간을 만듭니다.
✅
④ 빠르게 찾기이제 관련 자료를 쉽게 분석합니다.
03 · 가장 중요한 비교 개념

요약변수 vs 파생변수

자료를 묶어 집계한 값인가, 분석자가 규칙과 의미를 설계한 값인가?

교재 pp. 221–222

같은 거래 기록에서 두 종류의 변수를 만들기

① 원본 구매 기록

고객구매일금액
A10/0120,000원
A10/0540,000원
A10/1350,000원
→

② 고객 A의 분석용 변수

변수값분류
총 구매금액110,000원요약
구매 횟수3회요약
우수고객 여부예파생

예시 규칙: 총 구매금액 ≥ 100,000원이면 ‘우수고객=예’로 지정(교육용 가상 기준).

Summary Variable

요약변수 · 모아서 계산

20,000 + 40,000 + 50,000
= 110,000원

합계·평균·횟수·최댓값처럼 자료를 일정 기준으로 집계합니다.

Derived Variable

파생변수 · 규칙을 설계

총 구매액 ≥ 100,000원?
→ 우수고객 = 예

분석 목적에 맞는 조건·함수·업무 지식으로 새 의미를 부여합니다.

주의할 점: 두 범주는 일부 중첩될 수 있습니다. 시험에서는 집계 중심은 요약변수, 분석자가 의미를 정의하는 규칙 중심은 파생변수로 구분합니다. 파생변수는 타당성 검토가 중요합니다.
🎞️ 4컷 이야기 · 단골손님 찾기
🧾
① 영수증 세 장금액이 각각 달라요.
➕
② 모두 더해요총액 11만 원, 총 3회!요약변수
🏅
③ 기준을 정해요“10만 원 이상이면 우수고객”파생 규칙
🎯
④ 고객을 분류해요A 고객은 우수고객!파생변수
04 · R 실습: 데이터 형태 변환

melt()와 cast()는 무엇을 하나요?

넓은 표 ↔ 긴 표. 데이터를 녹이고(melt), 형태를 다시 만드는(cast) 원리입니다.

교재 p. 222

직접 눌러보며 표 형태 비교하기

넓은 표 · 과목이 여러 열에 있음

학생국어수학
가7080
나90100

💧 melt() · 열을 행으로

‘국어’, ‘수학’이라는 두 점수 열을 과목(variable)과 점수(value) 열에 모아 세로로 늘어놓습니다.

long <- reshape2::melt(scores, id.vars = "학생")

🧱 dcast() · 행을 열로

학생별·과목별 점수를 다시 열로 펼칩니다. 여러 값이 모이면 평균 같은 집계 함수도 사용합니다.

wide <- reshape2::dcast(long, 학생 ~ variable, value.var = "value")
패키지 구분: 원문의 reshape에는 melt(), cast()가 있고, 실습 코드의 dcast()는 주로 reshape2 패키지에서 사용합니다. 시험 포인트: melt는 길게, cast는 원하는 차원으로.
🎞️ 4컷 비유 · 장난감 블록
🧱
① 넓은 모형국어와 수학이 나란히 놓여 있어요.
💧
② 블록을 풀어요과목 이름과 점수를 하나씩 떼어냅니다.
📜
③ 긴 줄로 나열학생-과목-점수의 세로 목록이 됐어요.
🏗️
④ 다시 조립해요원하는 기준으로 가로 표를 만듭니다.
05 · R 실습: SQL 문법

sqldf()는 R 안에서 SQL로 질문하는 방법

“어떤 행을 고르고, 어떤 열을 보고, 어떻게 묶을까?”

교재 pp. 222–223

하나의 데이터프레임에 SQL을 적용하는 흐름

구매 데이터data.frame: purchase
→
sqldf("SQL")SELECT · WHERE · GROUP BY
→
분석 결과 표원하는 조건만 추출·집계

SELECT

어떤 열을 볼까요?
예: 고객명, 구매금액

WHERE

어떤 행만 볼까요?
예: 금액 3만 원 이상

GROUP BY

무엇을 기준으로 묶어 계산할까요?
예: 고객별 총금액

🧑‍💻 R 코드 예시

library(sqldf) sqldf("SELECT customer, SUM(amount) AS total FROM purchase GROUP BY customer")

🗣️ 말로 풀어 보기

“purchase 데이터에서 고객(customer)별로 묶고, 구매금액(amount)을 모두 더해서 total이라는 새 열로 보여 줘!”

기억: SQL 문장을 따옴표 안에 넣어 실행합니다.
🎞️ 4컷 비유 · 카페 주문 검색
☕
① 주문이 100건기록이 너무 많아요.
🔍
② 조건을 말해요“아메리카노 주문만 찾아줘.”
🧮
③ 고객별로 합산같은 손님의 결제액을 더해요.
📄
④ 결과표 완성원하는 정보만 담긴 표가 나와요.
06 · R 실습: 분할·계산·결합

plyr의 핵심 = Split → Apply → Combine

그룹으로 나눈 뒤 같은 계산을 하고 다시 하나로 합칩니다.

교재 p. 223

데이터를 처리하는 3단계

① SplitA고객 / B고객으로 분리
→
② Apply각 그룹에 sum() 적용
→
③ Combine고객별 합계표로 결합

ddply()의 문자 뜻

d + d + ply

첫 번째 d = 입력 데이터프레임
두 번째 d = 출력 데이터프레임

a = array, l = list, d = data frame, _ = 결과 객체를 반환하지 않음

🧑‍💻 그룹별 요약 코드

plyr::ddply( purchase, .(customer), summarise, total = sum(amount), count = length(amount) )
암기 공식: 데이터 분할 → 같은 함수 적용 → 결과 결합. ddply는 data.frame을 받아 data.frame으로 반환하는 대표 함수입니다.
🎞️ 4컷 비유 · 반별 시험점수
🏫
① 전교 성적표모든 반의 점수가 섞여 있어요.
🗃️
② 반별로 나눠요1반, 2반, 3반으로 분리!Split
🧮
③ 각각 평균 계산모든 반에 같은 공식을 사용해요.Apply
📋
④ 한 표로 모아요반별 평균 결과를 합칩니다.Combine
07 · R 실습: 빠른 데이터 처리

data.table은 큰 데이터도 효율적으로 다룹니다

짧은 표현으로 행을 선택하고, 계산하고, 그룹별 결과를 만듭니다.

교재 p. 223

가장 중요한 구문 · DT[i, j, by]

📌

i · 행

어떤 행을 선택할까?
customer == "A"

🧮

j · 계산·열

어떤 값을 만들까?
sum(amount)

🗂️

by · 그룹

무엇을 기준으로 묶을까?
customer

🧑‍💻 코드 두 줄로 이해하기

library(data.table) DT <- as.data.table(purchase) DT[, .(total = sum(amount), count = .N), by = customer]

⚡ 왜 유용할까요?

효율적인 그룹 연산과 메모리 활용을 지원하여 큰 표를 다루는 데 유용합니다.

key(키)는 정렬·조인·검색에 도움을 주는 기능이지만, 모든 작업에서 키 설정이 필수인 것은 아닙니다.

시험 핵심: data.table = 데이터프레임과 유사한 형태 + 효율적인 계산 + DT[행, 열/계산, 그룹]
🎞️ 4컷 비유 · 대형 택배 분류장
📦
① 상자가 많아요수만 개의 주문을 처리해야 해요.
🏷️
② 원하는 주문 선택서울 배송 주문만 골라요.i
⚖️
③ 무게 계산선택한 물품의 총무게를 계산해요.j
🚚
④ 지역별 합계배송 지역별로 결과를 만듭니다.by
08 · 핵심 정리

실제 질문이 나오면 어떤 도구를 선택할까요?

도구 이름보다 해결해야 할 작업 유형을 먼저 떠올립니다.

교재 pp. 221–224
🔄

reshape(2)

표의 행·열 형태 변환
melt ↔ cast

🗣️

sqldf

SQL 문장으로 추출·필터·집계

🧩

plyr

나누기 → 계산 → 결합
ddply()

⚡

data.table

효율적인 처리
DT[i, j, by]

기억해야 할 개념 비교표

이런 문장이 나오면연결할 개념핵심 단서
특정 사용자 그룹을 위한 작은 저장소데이터 마트DW 하위 집합·주제 중심
월별 구매금액·횟수 합산요약변수집계
고객을 VIP / 일반으로 분류파생변수조건·의미 부여
긴 표와 넓은 표 사이 변환reshape / reshape2melt · cast/dcast
SQL을 R 데이터프레임에 실행sqldfSELECT · WHERE
분할·적용·결합plyrddply
대용량 데이터 처리·그룹별 계산data.tableDT[i, j, by]
3문항 기출 대비 암기: ① 소규모 목적별 저장소 = 데이터 마트 ② 작위적 정의로 의미 부여 = 파생변수 ③ melt/cast = reshape 계열
📖 이론 학습 완료다음 단계: 기출 3문항 풀이
⌨ 키보드 ← →로 좌우넘김 · 버튼을 눌러 표 변환·정답 확인 가능