전체 학습 흐름 · 이 그림만 기억해도 큰 구조가 잡힙니다
🎯 학습목표 1 · 개념 구별
웨어하우스와 데이터 마트의 역할을 설명하고 요약변수와 파생변수를 구분할 수 있다.
🎯 학습목표 2 · 실습 연결
reshape(2) · sqldf · plyr · data.table이 각각 어떤 데이터 처리에 유용한지 설명할 수 있다.
데이터 흐름을 눈으로 이해하고 → 기출 3문항을 좌우로 넘기며 풀어보기
전체 학습 흐름 · 이 그림만 기억해도 큰 구조가 잡힙니다
웨어하우스와 데이터 마트의 역할을 설명하고 요약변수와 파생변수를 구분할 수 있다.
reshape(2) · sqldf · plyr · data.table이 각각 어떤 데이터 처리에 유용한지 설명할 수 있다.
개념 구조도
※ 데이터 마트는 보통 DW 데이터를 사용하지만, 운영 시스템 등 다른 원천을 바탕으로 만들 수도 있습니다.
서로 다른 원천의 자료를 통합해 장기간 축적하고 분석·의사결정을 지원합니다.
마케팅, 고객관리, 영업 등 사용 목적에 필요한 정보를 중심으로 구성합니다.
데이터 웨어하우스의 핵심 4가지 특징
업무 프로그램이 아니라 고객·상품 등 주제별로 정리
여러 원천의 형식과 기준을 맞춰 통합
과거에서 현재까지의 변경 이력 보유
분석을 위해 축적한 기록을 안정적으로 보존·조회
같은 거래 기록에서 두 종류의 변수를 만들기
① 원본 구매 기록
| 고객 | 구매일 | 금액 |
|---|---|---|
| A | 10/01 | 20,000원 |
| A | 10/05 | 40,000원 |
| A | 10/13 | 50,000원 |
② 고객 A의 분석용 변수
| 변수 | 값 | 분류 |
|---|---|---|
| 총 구매금액 | 110,000원 | 요약 |
| 구매 횟수 | 3회 | 요약 |
| 우수고객 여부 | 예 | 파생 |
예시 규칙: 총 구매금액 ≥ 100,000원이면 ‘우수고객=예’로 지정(교육용 가상 기준).
합계·평균·횟수·최댓값처럼 자료를 일정 기준으로 집계합니다.
분석 목적에 맞는 조건·함수·업무 지식으로 새 의미를 부여합니다.
직접 눌러보며 표 형태 비교하기
넓은 표 · 과목이 여러 열에 있음
| 학생 | 국어 | 수학 |
|---|---|---|
| 가 | 70 | 80 |
| 나 | 90 | 100 |
‘국어’, ‘수학’이라는 두 점수 열을 과목(variable)과 점수(value) 열에 모아 세로로 늘어놓습니다.
long <- reshape2::melt(scores, id.vars = "학생")학생별·과목별 점수를 다시 열로 펼칩니다. 여러 값이 모이면 평균 같은 집계 함수도 사용합니다.
wide <- reshape2::dcast(long, 학생 ~ variable, value.var = "value")하나의 데이터프레임에 SQL을 적용하는 흐름
어떤 열을 볼까요?
예: 고객명, 구매금액
어떤 행만 볼까요?
예: 금액 3만 원 이상
무엇을 기준으로 묶어 계산할까요?
예: 고객별 총금액
“purchase 데이터에서 고객(customer)별로 묶고, 구매금액(amount)을 모두 더해서 total이라는 새 열로 보여 줘!”
데이터를 처리하는 3단계
첫 번째 d = 입력 데이터프레임
두 번째 d = 출력 데이터프레임
a = array, l = list, d = data frame, _ = 결과 객체를 반환하지 않음
가장 중요한 구문 · DT[i, j, by]
어떤 행을 선택할까?
customer == "A"
어떤 값을 만들까?
sum(amount)
무엇을 기준으로 묶을까?
customer
효율적인 그룹 연산과 메모리 활용을 지원하여 큰 표를 다루는 데 유용합니다.
key(키)는 정렬·조인·검색에 도움을 주는 기능이지만, 모든 작업에서 키 설정이 필수인 것은 아닙니다.
표의 행·열 형태 변환
melt ↔ cast
SQL 문장으로 추출·필터·집계
나누기 → 계산 → 결합
ddply()
효율적인 처리
DT[i, j, by]
기억해야 할 개념 비교표
| 이런 문장이 나오면 | 연결할 개념 | 핵심 단서 |
|---|---|---|
| 특정 사용자 그룹을 위한 작은 저장소 | 데이터 마트 | DW 하위 집합·주제 중심 |
| 월별 구매금액·횟수 합산 | 요약변수 | 집계 |
| 고객을 VIP / 일반으로 분류 | 파생변수 | 조건·의미 부여 |
| 긴 표와 넓은 표 사이 변환 | reshape / reshape2 | melt · cast/dcast |
| SQL을 R 데이터프레임에 실행 | sqldf | SELECT · WHERE |
| 분할·적용·결합 | plyr | ddply |
| 대용량 데이터 처리·그룹별 계산 | data.table | DT[i, j, by] |
핵심: DW가 큰 창고라면 DM은 필요한 자료를 모아둔 목적별 공간.
다음 중 데이터 웨어하우스의 하위 집합으로, 특정 사용자 그룹이 관심을 갖는 데이터를 제공하기 위해 구성된 작은 규모의 데이터 저장소는 무엇인가?
정답 이유: 특정 사용자·부서·주제에 집중한 비교적 작은 분석용 저장소를 데이터 마트라고 합니다. DW의 하위 집합으로 만들어지는 경우가 많습니다.
암기 장치: “특정 사용자 그룹” + “작은 저장소” → 데이터 마트.
핵심: 합계는 요약, “10만 원 이상이면 우수고객”이라는 의미·규칙을 붙이면 파생.
아래 정의가 가리키는 데이터 마트의 구성요소로 가장 적절한 것은?
“특정한 의미를 갖는 작위적 정의에 의한 변수로, 사용자가 특정 조건을 만족하거나 특정 함수에 의해 값을 만들어 의미를 부여한 변수”
정답 이유: 파생변수(Derived Variable)는 기존 정보에 분석 목적에 따른 규칙, 함수, 지식 등을 적용하여 새로운 의미를 담도록 만든 변수입니다.
암기 장치: “사용자가 조건을 정한다” + “의미를 부여한다” → 파생변수.
핵심: 데이터 구조를 분석에 맞게 길게 펼치거나, 다시 기준별로 열을 만드는 기능.
변수를 조합해 변수명을 만들고, 변수들을 시간·상품 등의 차원에 결합해 다양한 요약변수와 파생변수를 쉽게 생성하여 데이터 마트를 구성할 수 있는 R 패키지는 무엇인가?
정답 이유: reshape 패키지는 melt()·cast()를 사용하여 데이터의 긴/넓은 형태를 바꾸고, 원하는 차원으로 결합·집계하는 데 활용합니다. 유사한 이름의 reshape2 패키지에서는 dcast()도 사용합니다.
암기 장치: 녹이기 melt + 형태 만들기 cast = reshape 계열.