Chapter 12: 점을 연결하기

현대 분석 워크플로우에서 SQL의 역할

이 책 전반에 걸쳐 우리는 Excel에서 데이터베이스, SQL, 그리고 대시보드로의 여정을 탐색했습니다. 이 마지막 장에서는 이러한 모든 요소들이 현대 분석 워크플로우에서 어떻게 함께 작동하는지를 연결해 보겠습니다.

원시 데이터로부터 실행 가능한 인사이트에 도달하기까지의 과정에는 여러 단계가 있으며, 이 중 여러 지점에서 SQL이 핵심적인 역할을 수행합니다. 이 워크플로우를 살펴보며 각 요소가 전체 그림에 어떻게 기여하는지 알아보겠습니다.

전체 분석 워크플로우

일반적인 현대 분석 워크플로우는 다음과 같은 주요 단계를 포함합니다:

  1. 데이터 수집 및 저장: 다양한 소스로부터 데이터를 수집하고 데이터베이스에 저장
  2. 데이터 준비 및 변환: 분석을 위한 데이터 정제 및 구조화
  3. 데이터 모델링: 관계 및 비즈니스 로직 정의
  4. 분석 및 시각화: 대시보드 및 리포트 생성
  5. 공유 및 협업: 인사이트를 이해관계자와 공유

SQL은 이들 단계 중 다수에서 연결 고리 역할을 하며, 원시 데이터를 의미 있는 인사이트로 전환하는 언어로 작동합니다.

예시: Raw Data → SQL Query → Clean Table → Dashboard

구체적인 예시를 통해 각 구성 요소가 실무에서 어떻게 함께 작동하는지를 살펴보겠습니다.

시나리오: 이커머스 판매 분석

당신은 온라인 소매업체에서 근무하고 있으며, 다양한 제품 카테고리, 지역, 시점에 따른 판매 실적을 보여주는 대시보드를 만들어야 한다고 가정해 봅시다.

Step 1: 데이터 수집 및 저장

회사에서는 다음과 같은 다양한 소스로부터 데이터를 수집합니다:

  • 이커머스 플랫폼의 거래 데이터
  • CRM 시스템의 고객 정보
  • 재고 관리 시스템의 제품 정보
  • 광고 플랫폼의 마케팅 캠페인 데이터

이 데이터는 고객(customers), 제품(products), 주문(orders), 주문 항목(order_items), 마케팅 캠페인(marketing_campaigns)에 대한 테이블로 구성된 관계형 데이터베이스에 저장됩니다.

Step 2: SQL을 이용한 데이터 준비

대시보드를 만들기 전에 관련 테이블을 조인하고 주요 지표를 계산하여 데이터를 준비해야 합니다. 다음은 이를 위한 SQL 쿼리 예시입니다:

-- 판매 분석용 뷰 생성
CREATE VIEW sales_analysis AS
SELECT 
    o.order_id,
    o.order_date,
    c.customer_id,
    c.name AS customer_name,
    c.city,
    c.state,
    c.country,
    p.product_id,
    p.name AS product_name,
    p.category,
    p.subcategory,
    oi.quantity,
    oi.unit_price,
    (oi.quantity * oi.unit_price) AS sales_amount,
    m.campaign_name
FROM 
    orders o
JOIN 
    customers c ON o.customer_id = c.customer_id
JOIN 
    order_items oi ON o.order_id = oi.order_id
JOIN 
    products p ON oi.product_id = p.product_id
LEFT JOIN 
    marketing_campaigns m ON o.campaign_id = m.campaign_id;

이 SQL 쿼리는 다음과 같은 작업을 수행합니다:

  • 여러 테이블을 조인하여 관련 정보를 통합
  • 각 주문 항목의 매출액을 계산
  • 대시보드 생성에 사용할 수 있는 포괄적인 뷰 생성

Step 3: 데이터 모델링

데이터가 준비되면, 이제 관계를 정의하고 계산된 지표를 생성해야 합니다. Power BI 또는 Tableau와 같은 툴에서 다음과 같은 작업을 수행할 수 있습니다:

  1. 관계 정의: sales_analysis 뷰를 날짜, 제품, 고객 등의 차원 테이블과 연결
  2. 계산 지표 생성: 다음과 같은 지표 정의
    • 연간 누적 매출 (Year-to-date sales)
    • 매출 성장률
    • 이익률 (Profit margin)
    • 고객 획득 비용 (Customer acquisition cost)

예: Power BI에서 DAX를 사용하여

YTD Sales = 
TOTALYTD(SUM(sales_analysis[sales_amount]), 'Date'[Date])

Sales Growth % = 
DIVIDE(
    SUM(sales_analysis[sales_amount]) - [Sales Same Period Last Year],
    [Sales Same Period Last Year]
)

Step 4: 대시보드 생성

이제 데이터를 시각화하여 생생하게 표현할 수 있습니다:

  1. 판매 추세 차트: 시간에 따른 매출을 보여주며 제품 카테고리로 필터링 가능
  2. 제품 카테고리 분포: 각 제품 카테고리별 매출 비중 표시
  3. 지역별 매출 지도: 지역별 성과 시각화
  4. 상위 고객 테이블: 가장 많은 소비를 한 고객 목록
  5. 캠페인 성과 비교: 다양한 마케팅 캠페인의 성과 비교

Step 5: 대시보드 상호작용 기능 추가

대시보드를 더 유용하게 만들기 위한 상호작용 요소 추가:

  1. 날짜 범위 선택기: 특정 기간에 집중할 수 있도록 지원
  2. 제품 카테고리 필터: 카테고리 및 서브카테고리 필터링 가능
  3. 지역 필터: 국가, 주, 도시 단위로 분석 가능
  4. 드릴다운 기능: 요약에서 세부 정보로 탐색 가능

Step 6: 공유 및 협업

마지막으로 대시보드를 이해관계자와 공유합니다:

  1. 공유 플랫폼에 게시: Power BI Service, Tableau Server, Looker 등에 업로드
  2. 자동 새로고침 설정: 정기적인 데이터 업데이트 예약
  3. 접근 권한 구성: 적절한 사람들에게 적절한 접근 권한 부여
  4. 이메일 구독 생성: 주요 이해관계자에게 정기 업데이트 발송

분석 워크플로우 전반에서의 SQL 역할

각 단계에서 SQL이 어떻게 기여하는지 살펴봅시다:

1. 데이터 접근 및 조회

SQL은 관계형 데이터베이스에 저장된 데이터에 접근하는 기본 언어입니다. Excel의 데이터 연결 기능이나 BI 툴을 사용할 때, SQL 쿼리가 백그라운드에서 실행되며 데이터를 가져옵니다.

예: Power BI가 SQL 데이터베이스에서 테이블을 선택할 때 생성하는 쿼리

SELECT * FROM customers WHERE country = 'USA'

2. 데이터 변환

SQL은 원시 데이터를 분석 가능한 형태로 변환하는 데 탁월합니다:

-- 제품 카테고리별 월간 매출 계산
SELECT 
    DATE_TRUNC('month', order_date) AS month,
    category,
    SUM(sales_amount) AS monthly_sales
FROM 
    sales_analysis
GROUP BY 
    DATE_TRUNC('month', order_date),
    category
ORDER BY 
    month, category;

이러한 변환은 다음에서 수행될 수 있습니다:

  • 데이터베이스 내 (뷰나 저장 프로시저 사용)
  • BI 툴 내 (SQL 쿼리 자동 생성)
  • ETL(추출-변환-적재) 과정의 일부로

3. 데이터 모델링 지원

데이터 모델링은 주로 BI 툴에서 이루어지지만, SQL은 이를 다음과 같이 지원할 수 있습니다:

  • 비즈니스 엔티티를 나타내는 뷰 생성
  • 외래 키를 통한 관계 정의
  • 공통 지표의 사전 계산
  • 비즈니스 로직의 DB 수준 구현

예:

-- 고객 세그먼트용 뷰 생성
CREATE VIEW customer_segments AS
SELECT 
    customer_id,
    name,
    CASE 
        WHEN total_purchases > 10000 THEN 'Premium'
        WHEN total_purchases > 5000 THEN 'Gold'
        WHEN total_purchases > 1000 THEN 'Silver'
        ELSE 'Bronze'
    END AS segment
FROM 
    (SELECT 
        c.customer_id,
        c.name,
        SUM(oi.quantity * oi.unit_price) AS total_purchases
    FROM 
        customers c
    JOIN 
        orders o ON c.customer_id = o.customer_id
    JOIN 
        order_items oi ON o.order_id = oi.order_id
    GROUP BY 
        c.customer_id, c.name) AS customer_totals;

4. 성능 최적화

SQL은 대시보드 성능 최적화에 중요한 역할을 합니다:

-- 빠른 대시보드 쿼리를 위한 인덱스된 머터리얼라이즈드 뷰 생성
CREATE MATERIALIZED VIEW sales_summary AS
SELECT 
    DATE_TRUNC('month', order_date) AS month,
    category,
    country,
    SUM(sales_amount) AS total_sales,
    COUNT(DISTINCT order_id) AS order_count,
    COUNT(DISTINCT customer_id) AS customer_count
FROM 
    sales_analysis
GROUP BY 
    DATE_TRUNC('month', order_date),
    category,
    country;

CREATE INDEX idx_sales_summary ON sales_summary(month, category, country);

이러한 최적화는 대시보드가 대용량 데이터셋에서도 빠르게 반응할 수 있도록 도와줍니다.

첫 번째 간단한 대시보드 만들기 (또는 먼저 Excel에서 흉내 내보기)

Excel에서 더 발전된 분석 툴로 전환하기 전, Excel에서 간단한 대시보드를 먼저 만들어 보는 것이 도움이 될 수 있습니다.

Excel에서 대시보드 만들기

기본적인 판매 대시보드를 Excel에서 만드는 방법은 다음과 같습니다:

  1. 데이터 준비:

    • 데이터를 표 형태로 정리
    • Excel 테이블 (삽입 > 표) 기능 활용
    • 데이터 준비를 위해 Power Query 사용 권장 (데이터 > 가져오기 및 변환)
  2. 피벗 테이블(PivotTable) 생성:

    • 삽입 > 피벗 테이블
    • 관련 필드를 행, 열, 값 영역에 추가
    • 필요한 경우 계산 필드 생성
  3. 시각화 추가:

    • 피벗 테이블 데이터를 선택
    • 삽입 > 차트를 통해 적절한 시각화 생성
    • 추세 표시를 위해 스파크라인 사용 고려
  4. 상호작용 요소 추가:

    • 삽입 > 슬라이서를 통해 필터 추가
    • 여러 피벗 테이블에 슬라이서를 연결하여 동기화된 필터링 구현
    • 날짜 필터링을 위한 타임라인 슬라이서 사용 고려
  5. 대시보드 포맷팅:

    • 시각화를 논리적으로 배치
    • 일관된 서식 및 색상 사용
    • 제목 및 설명 추가
    • 조건부 서식을 통한 시각적 강조 고려

BI 툴로 전환하기

Excel에서 대시보드를 만든 경험을 바탕으로 BI 툴로의 전환을 진행할 수 있습니다:

  1. 같은 데이터셋 사용:

    • Excel 대시보드에 사용한 동일한 데이터를 활용
    • 결과 비교를 통해 정확성 확보 가능
  2. 유사한 시각화 재현:

    • Excel에서 만든 차트와 테이블을 동일하게 구현
    • 익숙한 시작점 제공
  3. 추가 기능 탐색:

    • Excel에서 제공하지 않는 상호작용 기능 추가
    • 다양한 시각화 유형 실험
    • 더 복잡한 필터링 및 드릴다운 구현
  4. 성능 최적화:

    • 효율적인 데이터 모델링 방법 학습
    • 최적화된 측정값 작성 방법 이해
    • 대용량 데이터 처리 옵션 탐색

Excel-SQL-대시보드의 연결

Excel 사용자가 SQL과 대시보드로 전환할 때, 이 도구들이 서로 어떻게 관련되어 있고 각각을 언제 사용하는지 이해하는 것이 중요합니다.

Excel이 유용한 경우

Excel은 다음 상황에서 여전히 유용합니다:

  • 애드혹 분석: 빠른 계산 및 탐색
  • 개인 생산성: 개인 분석 작업
  • 소규모 데이터셋: 제한된 데이터 볼륨일 때
  • 특수 계산: 복잡한 금융 모델 또는 통계 분석
  • 데이터 입력: 데이터 수집 및 정리
  • 프로토타이핑: 다른 도구에 구현하기 전 분석 접근 방식 테스트

SQL이 필요한 경우

SQL은 다음과 같은 경우 필수적입니다:

  • 대용량 데이터 처리: 수백만 행의 데이터 처리
  • 데이터베이스 접근: 사내 DB에서 데이터 추출
  • 데이터 준비: 분석 전 정제 및 변환
  • 데이터 처리 자동화: 정기적인 데이터 변환 작업 스케줄링
  • 비즈니스 로직 구현: 조직 전체에 일관된 계산 제공
  • 성능 최적화: 사전 집계 데이터를 통한 대시보드 성능 향상

대시보드 툴이 강력한 경우

대시보드 툴은 다음과 같은 경우에 탁월합니다:

  • 인터랙티브 시각화: 동적이고 필터 가능한 뷰 생성
  • 인사이트 공유: 분석 결과를 이해관계자와 공유
  • 실시간 모니터링: KPI 및 지표의 실시간 추적
  • 데이터 통합: 다양한 시스템의 데이터 통합
  • 협업 분석: 팀 기반 데이터 작업 지원
  • 데이터 기반 스토리텔링: 인사이트를 시각적으로 표현

통합 시나리오

이 도구들은 다음과 같이 함께 작동할 수 있습니다:

  1. Excel → SQL → 대시보드:

    • Excel에서 분석 프로토타입 작성
    • SQL로 데이터 준비 구현
    • 대시보드 툴에서 최종 시각화 생성
  2. 대시보드 + Excel 내보내기:

    • 대시보드에서 주요 분석 수행
    • 세부 분석을 위해 특정 데이터를 Excel로 내보내기
  3. SQL 뷰를 Excel과 대시보드에 공유:

    • 비즈니스 로직이 포함된 SQL 뷰 생성
    • Excel과 대시보드 툴 모두 해당 뷰에 연결
    • 분석 전반에 걸쳐 일관된 정의 유지

현대 분석 워크플로우를 위한 베스트 프랙티스

이러한 통합된 분석 접근 방식을 구현할 때 다음의 베스트 프랙티스를 고려하세요:

1. 목적을 명확히 하라

  • 분석 시작 전 명확한 비즈니스 질문 정의
  • 가장 중요한 지표 및 KPI 식별
  • 누가 대시보드를 사용할지, 어떻게 사용할지 이해
  • 사용자의 기술 수준에 맞춘 설계

2. 견고한 데이터 기반 구축

  • 가능한 한 소스에서부터 데이터 품질 확보
  • 데이터 정의 및 비즈니스 규칙 문서화
  • 비즈니스 엔티티를 반영하는 일관된 데이터 모델 구축
  • 적절한 데이터 거버넌스 및 보안 구현

3. 성능에 최적화된 설계

  • 필요한 경우 데이터 사전 집계
  • 자주 조회되는 컬럼에 인덱스 생성
  • 대시보드 성능을 위한 머터리얼라이즈드 뷰 또는 캐시 사용
  • 현실적인 데이터 볼륨으로 테스트

4. 효과적인 대시보드 설계

  • 특정 비즈니스 질문에 답하는 데 집중
  • 각 대시보드에 5~7개의 핵심 시각화로 제한
  • 데이터 특성에 맞는 적절한 시각화 유형 사용
  • 비교 및 목표치를 통해 맥락 제공
  • 직관적인 필터링 및 탐색 기능 제공

5. 데이터 리터러시 증진

  • 사용자가 데이터를 해석할 수 있도록 지원
  • 문서 및 교육 제공
  • 대시보드 내 정의 및 설명 포함
  • 지속적인 피드백을 통해 대시보드 개선

결론: 데이터 여정은 계속된다

이 책 전반에 걸쳐 우리는 익숙한 Excel의 세계에서 시작해, 데이터베이스, SQL, 그리고 대시보드의 강력한 세계로 이동했습니다. 이 도구들이 서로를 어떻게 보완하는지, 그리고 SQL이 원시 데이터와 실행 가능한 인사이트를 연결하는 접착제 역할을 한다는 것을 살펴보았습니다.

데이터 여정을 계속하면서, 각 도구가 현대 분석 생태계에서 어떤 역할을 하는지 기억하세요:

  • Excel은 애드혹 분석에 유연성과 친숙함을 제공
  • 데이터베이스는 구조화된 저장소와 효율적인 데이터 관리를 제공
  • SQL은 강력한 데이터 조회 및 변환 기능을 제공
  • 대시보드 툴은 인터랙티브한 시각화와 인사이트 공유를 가능케 함

이러한 구성 요소가 어떻게 맞물리는지를 이해함으로써, 이제 Excel만으로는 해결할 수 없는 한계를 넘어, 현대 데이터 도구의 전체 기능을 활용할 준비가 되어 있습니다. 이는 더 큰 데이터셋을 다루고, 더욱 임팩트 있는 시각화를 만들며, 더 깊은 인사이트를 통해 비즈니스 의사결정을 이끌 수 있는 역량을 의미합니다.

이 책을 통해 배우게 된 기술들—데이터 구조의 이해, SQL 쿼리 작성, 효과적인 대시보드 구축—은 계속 성장하는 데이터 분석 분야에서 여러분의 탄탄한 기반이 되어줄 것입니다.

여러분이 판매 데이터를 분석하든, 마케팅 성과를 추적하든, 재무 지표를 모니터링하든, 혹은 그 외 다른 데이터 기반 도메인을 탐색하든, 이제 원시 데이터를 실행 가능한 인사이트로 전환하는 데 필요한 도구와 지식을 갖추게 되었습니다.

여러분의 데이터 여정은 여기서 끝이 아닙니다—이제 시작일 뿐입니다. 계속 배우고, 탐구하고, 데이터와 의사결정 사이의 점들을 연결해 나가세요.