이 글은 누구를 위한 것인가
- 동적 가격 도입을 검토 중이거나 이미 운영 중인 커머스 PM·기획자
- 가격 알고리즘의 출력을 어디까지 자동 적용할지 결정해야 하는 운영자
- 가격 차별·다크 패턴 규제 변화를 따라가야 하는 법무·정책 담당
들어가며
동적 가격은 한 줄로 요약된다. 수요·재고·경쟁·시간에 따라 가격을 자동으로 조정한다. 이론은 단순하지만 현실 운영은 어디까지 자동에 맡기느냐의 문제로 매번 멈춘다.
2026년 들어 항공·OTA의 가격 차별 이슈가 다시 부상했다. 같은 검색을 다른 기기로 했더니 다른 가격이 떴다는 사용자 보고가 SNS에 반복적으로 올라온다. 회사 측은 "디바이스 차별이 아니라 시간차 캐시 영향"이라고 해명하지만, 사용자 입장에서 왜 가격이 달랐는지는 회사가 설명할 책임이다.
동적 가격 자체가 잘못은 아니다. 다만 알고리즘이 만들 수 있는 것과 만들면 안 되는 것의 선을 미리 그어야 한다. 이 글은 그 선을 어떻게 그을지 정리한다.

1. 동적 가격이 해결하는 문제와 만드는 문제
동적 가격이 잘 푸는 문제는 다음이다.
| 문제 | 동적 가격의 효과 |
|---|---|
| 재고 회전 부진 | 재고 많을수록 자동 인하 |
| 경쟁사 가격 변동 | 경쟁가에 즉시 추종 |
| 시간대별 수요 격차 | 피크 시 인상, 비수기 인하 |
| 카테고리별 마진 편차 | 마진 낮은 상품 자동 보호 |
반대로 동적 가격이 만드는 문제도 있다.
| 문제 | 발생 원인 |
|---|---|
| 같은 상품 시간차 가격 차이 | 1시간 전 본 가격과 결제 가격이 다름 |
| 사용자별 가격 차이 의심 | 로그인 vs 비로그인 가격 차이 |
| 재구매 시 신뢰 손상 | 어제 본 가격보다 오늘 가격 ↑ |
| 회계·VAT 처리 복잡도 | 단가 변동이 잦아 정산 대조 어려움 |
알고리즘 도입 전에 해결하려는 문제와 만들 문제를 같은 표에 적는다. 만드는 문제가 더 크면 알고리즘이 아니라 수동 정책이 답이다.
2. 가격 변동의 최대 폭과 최대 빈도를 미리 정한다
알고리즘이 출력하는 가격을 그대로 적용하면 사고가 난다. 출력값에 다음 두 가드를 둔다.
def apply_price_change(sku, new_price):
last_price = get_last_applied_price(sku)
last_changed_at = get_last_change_time(sku)
# 1. 변동 폭 가드
delta_pct = abs(new_price - last_price) / last_price
if delta_pct > MAX_DELTA_PCT: # 예: 15%
new_price = last_price * (1 + sign(new_price - last_price) * MAX_DELTA_PCT)
# 2. 빈도 가드
if (now() - last_changed_at) < MIN_INTERVAL: # 예: 1시간
return # 변경 보류
set_price(sku, new_price)
MAX_DELTA_PCT와 MIN_INTERVAL은 카테고리별로 다르다. 신선식품은 변동 폭·빈도 모두 크고, 가전은 보수적이다. 이 두 값은 코드가 아니라 운영 설정에 둔다. 운영자가 캠페인 직전에 조정할 수 있어야 한다.
3. 사용자 단위 가격 차별은 기본 금지
동적 가격은 상품 단위면 합법·정당하다. 사용자 단위가 되는 순간 다른 영역이 된다. 같은 상품을 누가 보느냐에 따라 다른 가격을 매기는 것은 다음 위험을 동반한다.
- 법적 위험: EU DSA, 한국 전자상거래법, 미국 주별 소비자 보호법이 알고리즘 가격 차별을 규제 대상으로 본다. 합리적 사유 설명 의무가 있다.
- 신뢰 위험: SNS 시대에 사용자별 가격 차이는 캡처 한 장으로 PR 사고가 된다.
- 회계 위험: 같은 상품의 판매 단가가 사용자마다 다르면 정산·세무 처리 복잡도가 폭증한다.
다음은 사용자 단위가 아닌 정당한 가격 차별이다.
| 정당 | 부당 |
|---|---|
| 회원 등급별 할인 (정책 공개) | 디바이스·OS별 가격 |
| 쿠폰·프로모션 코드 | 검색 이력 기반 가격 |
| 지역별 배송비 (원가 반영) | IP 위치 기반 가격 |
| 최초 구매·재구매 할인 (정책 공개) | 결제 의향 점수 기반 가격 |
오른쪽 컬럼이 동적 가격 알고리즘이 자주 만들어내는 모양이다. 알고리즘 입력 피처에 사용자 식별성이 들어가는지 매 분기 점검한다.
4. 가격 근거를 사용자에게 보여주는 패턴
가격 변동이 잦으면 사용자는 왜 지금 가격이 이런지 묻는다. 이 질문에 답을 미리 준비한 사이트는 신뢰를 얻는다.
자주 쓰이는 패턴은 다음이다.
- 가격 추이 그래프: "이 상품의 30일 가격 변동" — 항공·호텔에서 흔함
- 할인율 명시: "정가 대비 ↓15%" — 정가 표시 의무 충족
- 재고 신호: "남은 수량 12개" — 가격 인상 가능성 암시
- 마감 신호: "오늘 23:59까지" — 동적이 아니라 시한 정책
위 네 가지는 가격이 변동한다는 사실 자체를 숨기지 않는다. 사용자는 변동 자체보다 숨겨진 변동을 싫어한다.
5. 운영자 수동 오버라이드 채널
알고리즘이 잘못 판단하는 경우가 있다. 캠페인·재난·갑작스러운 경쟁사 행보 같은 상황이다. 운영자가 즉시 가격을 묶거나 풀 수 있어야 한다.
[알고리즘 출력]──┐
▼
[Price Service]
- 변동 폭 가드
- 빈도 가드
- 카테고리 정책
│
▼
[수동 오버라이드 레이어]
- 운영자 고정 가격
- 캠페인 강제 가격
- 카테고리 동결
│
▼
[최종 가격]
수동 오버라이드는 알고리즘 위에 위치한다. 알고리즘은 다음 라운드에서도 새 가격을 제안하지만, 오버라이드가 있는 한 적용되지 않는다. 오버라이드 해제 조건도 같이 정한다(시간 만료, 운영자 해제, 특정 이벤트).

6. 같은 상품이 동시 노출되는 위치의 가격 일치
옴니채널 환경에서 동적 가격의 가장 큰 함정이다. 검색 결과에서 본 가격, 카테고리 페이지의 가격, 상품 상세 페이지의 가격, 장바구니 가격, 결제 직전 가격이 모두 같아야 한다.
같은 상품의 가격이 한 흐름 안에서 다르면 사용자는 가격을 의심한다. 다음 가드를 둔다.
- 가격은 세션 시작 시점에 한 번 잠근다 (예: 30분)
- 잠긴 가격이 결제 직전까지 유지된다
- 잠금 만료 직전 알림 ("가격이 곧 갱신됩니다")
- 잠금 후 가격 인상 시 기존 가격 유지, 인하 시 낮은 가격으로 자동 갱신
마지막 줄이 핵심이다. 잠금 정책이 사용자에게 유리한 방향으로만 작동하면 신뢰가 쌓인다. 양방향으로 작동하면 사용자는 잠금을 위험으로 인식한다.
7. A/B 테스트의 윤리적 경계
동적 가격을 도입하면 자연스럽게 가격 A/B 테스트 유혹이 생긴다. "100원과 110원 어느 쪽 전환율이 높은가." 통계적으로 답을 얻을 수 있다. 그러나 다음을 미리 결정한다.
- A/B 분배는 세션 단위여야 한다 (한 사용자가 같은 페이지에서 다른 가격을 보면 안 됨)
- 같은 사용자에 대해 다음 방문 시 같은 그룹 유지 (재구매 시 가격 일관성)
- A/B 결과 결정 후 지는 가격으로 본 사용자에게 사후 보상 정책 (선택적이지만 권장)
- A/B 진행 사실은 모든 직원이 알 필요 없지만 법무·CS는 알아야 한다
가격 A/B는 제품 A/B보다 윤리적 부담이 한 단계 무겁다. 사용자에게 지불 의향 자체를 실험하는 행위라는 점을 항상 의식한다.
8. 회계·정산 영향
가격 변동이 잦으면 다음이 복잡해진다.
| 영역 | 영향 |
|---|---|
| 매출 인식 | 단가 변동이 잦아 매출 대조 시간 ↑ |
| VAT·세금 | 단가별 세액 계산 자동화 필수 |
| 셀러 정산 | 마켓플레이스 셀러 정산 단가 합의 필요 |
| 환불 | 결제 단가 vs 환불 단가 차이 처리 |
| 회계 감사 | 단가 변동 근거 로그 보관 의무 |
마지막 항목이 가장 자주 빠진다. 가격 변동 시점·근거·승인자를 로그로 보관한다. 감사·분쟁 시 왜 이 가격이었는지를 설명할 수 있어야 한다. 알고리즘 자동 변동도 "알고리즘 v3.2 출력 + 변동 폭 가드 적용"같이 기록한다.
9. 도입·운영 체크리스트
- 동적 가격이 해결하려는 문제가 한 줄로 적혀 있다
- 카테고리별 최대 변동 폭·빈도가 설정에 있다
- 사용자 식별 피처가 알고리즘 입력에 없다
- 가격 추이·할인율이 사용자에게 공개된다
- 운영자 수동 오버라이드 흐름이 있다
- 세션 단위 가격 잠금이 적용돼 있다
- 가격 A/B 테스트 윤리 가이드라인이 문서화돼 있다
- 가격 변동 근거 로그가 감사용으로 보관된다
- PR 사고 발생 시 응답 매뉴얼이 있다
- 분기마다 알고리즘 출력 vs 적용 가격 차이를 검증한다
마무리
동적 가격은 운영 도구다. 마법이 아니다. 알고리즘이 출력하는 숫자를 그대로 받지 말고, 가드·오버라이드·공개·로그를 같이 설계한다. 매출 +N%의 단기 성과보다 신뢰 손상으로 잃는 장기 매출이 훨씬 크다.
여름 시즌 캠페인 전에 가격 정책 문서를 한 번 다시 읽어 보길 권한다. 알고리즘이 어디까지 일하고, 사람이 어디부터 결정하는지를 한 페이지로 적을 수 있어야 한다. 한 페이지로 못 적으면 정책이 없는 것이다.