데브포일 홈
DEV MODE - 실서버 영향 없음 📦 배포 관리
요금제 설계 (Free/Basic/Pro)
+250 XP
LEVEL 55 QUEST

요금제 설계 (Free/Basic/Pro)

가격 심리학을 활용한 3단계 요금제 설계와 업그레이드/다운그레이드 로직을 구현합니다.

가격 전략 심리학

앵커링 효과 (Anchoring Effect)

사람은 처음 본 가격을 기준점(앵커)으로 삼아 이후 가격을 판단합니다. Pro 요금제(월 25만원)를 먼저 보여주면, Basic(월 10만원)이 합리적으로 느껴집니다.

실전 적용: 가격표에서 Pro를 가장 왼쪽이나 가운데에 크게 배치하고, Basic을 "가장 인기 있는" 플랜으로 표시합니다.

3가지 법칙 (Rule of Three)

선택지가 2개면 저렴한 것을 고르고, 4개 이상이면 결정을 미룹니다. 3가지가 가장 효과적입니다:

1. Free - 진입 장벽 제거, 사용자 확보
2. Basic - 대부분의 사용자가 선택 (목표 요금제)
3. Pro - 앵커링 + 고가치 고객 포획

주 50만원 달성 시나리오

Basic(월 10만원) x 3개 + Pro(월 25만원) x 1개 = 월 55만원 (주 약 14만원)
Pro(월 25만원) x 2개 + Basic(월 10만원) x 5개 = 월 100만원 (주 약 25만원)
Pro(월 25만원) x 4개 + Basic(월 10만원) x 10개 = 월 200만원 (주 50만원 달성!)

plans 테이블 설계

-- 요금제 테이블
CREATE TABLE plans (
    id              INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    name            VARCHAR(50) NOT NULL,           -- 'free', 'basic', 'pro'
    display_name    VARCHAR(100) NOT NULL,          -- '무료', '베이직', '프로'
    price_monthly   INT UNSIGNED NOT NULL DEFAULT 0,  -- 월 가격 (원)
    price_yearly    INT UNSIGNED NOT NULL DEFAULT 0,  -- 연 가격 (원, 할인 적용)
    api_calls_limit INT UNSIGNED NOT NULL DEFAULT 0,  -- 월 API 호출 한도 (0=무제한)
    storage_mb      INT UNSIGNED NOT NULL DEFAULT 0,  -- 스토리지 한도 (MB)
    max_users       INT UNSIGNED NOT NULL DEFAULT 1,  -- 최대 사용자 수
    features_json   JSON NOT NULL,                     -- 기능 플래그 JSON
    sort_order      TINYINT UNSIGNED DEFAULT 0,
    is_active       TINYINT(1) DEFAULT 1,
    created_at      DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 기본 요금제 데이터 삽입
INSERT INTO plans (name, display_name, price_monthly, price_yearly, api_calls_limit, storage_mb, max_users, features_json, sort_order) VALUES
('free',  '무료',    0,      0,       100,   100,   1, '{"ai_agent":false,"custom_domain":false,"api_access":false,"support":"community","analytics":"basic"}', 1),
('basic', '베이직',  100000, 960000,  5000,  5000,  5, '{"ai_agent":true,"custom_domain":false,"api_access":true,"support":"email","analytics":"advanced"}',  2),
('pro',   '프로',    250000, 2400000, 0,     50000, 20, '{"ai_agent":true,"custom_domain":true,"api_access":true,"support":"priority","analytics":"full"}',   3);

-- 구독(결제) 테이블
CREATE TABLE subscriptions (
    id              INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
    tenant_id       INT UNSIGNED NOT NULL,
    plan_id         INT UNSIGNED NOT NULL,
    billing_cycle   ENUM('monthly','yearly') DEFAULT 'monthly',
    status          ENUM('active','past_due','cancelled','trialing') DEFAULT 'active',
    current_period_start DATETIME NOT NULL,
    current_period_end   DATETIME NOT NULL,
    cancelled_at    DATETIME DEFAULT NULL,
    created_at      DATETIME DEFAULT CURRENT_TIMESTAMP,

    FOREIGN KEY (tenant_id) REFERENCES tenants(id),
    FOREIGN KEY (plan_id) REFERENCES plans(id),
    INDEX idx_tenant_status (tenant_id, status)
);
        
🔒
여기까지는 미리보기입니다
요금제 설계 (Free/Basic/Pro)
무료 가입하면 이어서 볼 수 있고, 강의를 완료할 때마다 XP와 레벨이 쌓입니다.
Google로 3초 만에 시작 →🧵 Threads로 시작무료 공개 강의 둘러보기 (Lv.1~3)