Supabase와 PowerBI 대시보드

발행: (2025년 12월 11일 오후 11:54 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

실시간 매출 및 재고 대시보드

Supabase (PostgreSQL)를 클라우드 백엔드로, Microsoft Power BI를 프런트엔드 데이터 시각화 도구로 사용한 풀스택 비즈니스 인텔리전스 데모입니다. 이 프로젝트는 매출을 실시간으로 추적하고 재고 수준을 모니터링하는 방법을 보여줍니다.

프로젝트 개요

  • 백엔드: AWS에 호스팅된 Supabase (PostgreSQL)
  • 프런트엔드: Microsoft Power BI Desktop
  • 목표: 클라우드 데이터를 활용해 매출 추세, 카테고리별 실적, 저재고 알림을 시각화

기술 스택

설정 방법

파트 1: Supabase 설정 (백엔드)

  1. Supabase에서 새 프로젝트를 생성합니다.
  2. 왼쪽 사이드바의 SQL Editor 로 이동합니다.
  3. 다음 SQL 스크립트를 실행하여 스키마를 만들고 더미 데이터를 삽입합니다:
-- 1. Create Tables
CREATE TABLE public.products (
    id SERIAL PRIMARY KEY,
    name TEXT NOT NULL,
    category TEXT NOT NULL,
    unit_price DECIMAL(10, 2) NOT NULL,
    stock_quantity INT NOT NULL,
    created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);

CREATE TABLE public.orders (
    id SERIAL PRIMARY KEY,
    product_id INT REFERENCES public.products(id),
    quantity INT NOT NULL,
    total_amount DECIMAL(10, 2) NOT NULL,
    order_date DATE NOT NULL DEFAULT CURRENT_DATE
);

-- 2. Insert Dummy Data
INSERT INTO public.products (name, category, unit_price, stock_quantity)
VALUES 
    ('Wireless Mouse', 'Electronics', 25.50, 150),
    ('Mechanical Keyboard', 'Electronics', 85.00, 40),
    ('Gaming Monitor', 'Electronics', 300.00, 15),
    ('Ergonomic Chair', 'Furniture', 150.00, 10),
    ('Desk Lamp', 'Furniture', 45.00, 80),
    ('USB‑C Cable', 'Accessories', 12.00, 200);

INSERT INTO public.orders (product_id, quantity, total_amount, order_date)
VALUES 
    (1, 2, 51.00, CURRENT_DATE - INTERVAL '3 days'),
    (2, 1, 85.00, CURRENT_DATE - INTERVAL '3 days'),
    (1, 1, 25.50, CURRENT_DATE - INTERVAL '2 days'),
    (3, 1, 300.00, CURRENT_DATE - INTERVAL '2 days'),
    (5, 4, 180.00, CURRENT_DATE - INTERVAL '1 day'),
    (4, 1, 150.00, CURRENT_DATE),
    (6, 10, 120.00, CURRENT_DATE);

파트 2: Power BI 연결 (프런트엔드)

  1. Supabase에서 연결 풀링 활성화:

    • Project Settings → Database 로 이동
    • Use connection pooling 을 켜고 ModeSession 으로 설정
    • Pooler Host (예: aws-0-us-east-1.pooler.supabase.com) 와 데이터베이스 사용자를 복사
  2. Power BI에서 연결:

    • Get Data → PostgreSQL database
    • Server: 복사한 Pooler Host URL 붙여넣기
    • Database: postgres
    • Data Connectivity Mode: Import
    • Authentication: Database (User/Password)

대시보드 시각화

  • KPI 카드: 총 매출액 (total_amount 합계)
  • 파이 차트: 카테고리별 매출 비중 (Electronics vs. Furniture)
  • 테이블: 저재고 알림 (stock_quantity < 20 인 항목)

first load
초기 대시보드 화면.

schema
데이터베이스 스키마 다이어그램.

문제 해결

“The remote certificate is invalid”

Supabase는 SSL을 사용하며 Power BI가 기본적으로 인증서를 거부할 수 있습니다.

해결 방법:
File → Options and settings → Data source settings → 해당 소스 선택 → Edit PermissionsEncrypt connections 체크 해제.

“Host not found”

Supabase 데이터베이스 설정에서 직접 연결 문자열이 아닌 Pooler URL (포트 5432 또는 6543) 을 사용하고 있는지 확인하세요.

Back to Blog

관련 글

더 보기 »