OPEN HYPER STEP
← 목록으로 (수익화)
MONETIZATION · 61 / 69
monetization
CHAPTER 61 / 69
읽기 약 2
FUNCTION

사용자 피드백 루프


핵심 개념

제품의 다음 단계를 결정하는 가장 강력한 신호 — 수집·분류·우선순위·실행·릴리스 5단계 루프.

본문

5단계 피드백 루프

📋 코드 (5줄)
1. 수집 (Collect): 인앱 설문 + NPS + 인터뷰 + 사용 데이터
2. 분류 (Classify): 버그 / 기능요청 / UX / 가격 / 기타
3. 우선순위 (Prioritize): ICE 또는 RICE 점수
4. 실행 (Execute): 다음 스프린트에 반영
5. 릴리스 (Release): 릴리스 노트 + 피드백 준 사용자에 멘션

인앱 NPS 위젯

TYPESCRIPT📋 코드 (54줄)
// nps-widget.tsx
'use client';
import { useState } from 'react';

export default function NPSWidget({ userId }: { userId: string }) {
  const [score, setScore] = useState<number | null>(null);
  const [reason, setReason] = useState('');
  const [done, setDone] = useState(false);

  const submit = async () => {
    await fetch('/api/feedback/nps', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({ userId, score, reason }),
    });
    setDone(true);
    gtag('event', 'nps_submit', { score, category: classify(score!) });
  };

  const classify = (s: number) =>
    s >= 9 ? 'promoter' : s >= 7 ? 'passive' : 'detractor';

  if (done) return <p>고마워요! 답변이 다음 업데이트에 반영됩니다.</p>;

  return (
    <div className="fixed bottom-4 right-4 bg-white p-4 border rounded-lg shadow-xl max-w-sm">
      <h3>이 서비스를 친구에게 추천하시겠어요?</h3>
      <div className="flex gap-1 my-3">
        {Array.from({ length: 11 }).map((_, i) => (
          <button
            key={i}
            onClick={() => setScore(i)}
            className={`w-8 h-8 border ${score === i ? 'bg-indigo-600 text-white' : ''}`}
          >
            {i}
          </button>
        ))}
      </div>
      {score !== null && (
        <>
          <textarea
            value={reason}
            onChange={e => setReason(e.target.value)}
            placeholder="이유를 한 줄로..."
            className="w-full p-2 border rounded"
          />
          <button onClick={submit} className="mt-2 bg-indigo-600 text-white px-4 py-2 rounded">
            제출
          </button>
        </>
      )}
    </div>
  );
}

RICE 우선순위 점수

PYTHON📋 코드 (27줄)
# rice-scoring.py
def rice_score(reach, impact, confidence, effort):
    """
    Reach: 영향받는 사용자 수 (1개월)
    Impact: 1=miminal, 2=low, 3=medium, 4=high, 5=massive
    Confidence: 0.5=low, 0.8=medium, 1.0=high
    Effort: 사람-주(person-week)
    """
    return (reach * impact * confidence) / effort


features = [
    {'name': '결제 페이지 개선', 'reach': 500, 'impact': 4, 'confidence': 1.0, 'effort': 2},
    {'name': '다크 모드', 'reach': 300, 'impact': 2, 'confidence': 0.8, 'effort': 3},
    {'name': '브로큰 링크 수정', 'reach': 100, 'impact': 3, 'confidence': 1.0, 'effort': 0.5},
    {'name': 'AI 자동완성', 'reach': 1000, 'impact': 5, 'confidence': 0.5, 'effort': 8},
]

ranked = sorted(
    [{**f, 'score': rice_score(f['reach'], f['impact'], f['confidence'], f['effort'])} for f in features],
    key=lambda x: x['score'],
    reverse=True,
)

for f in ranked:
    print(f"{f['name']:30} {f['score']:.0f}")
# 결과: 브로큰 링크 수정 → 결제 페이지 → 다크 모드 → AI 자동완성

릴리스 노트 5요소

MARKDOWN📋 코드 (18줄)
## v1.4.0 — 2026-04-27

🎉 새 기능
- 다크 모드 (요청한 분: @user1, @user2 ... 12명)
- CSV 내보내기

🐛 버그 수정
- 결제 후 영수증 미발송 (보고: @user3)
- 모바일 메뉴 깜빡임

⚡ 성능
- 대시보드 로딩 2.3s → 0.8s

💔 변경 / 제거
- 구 설정 페이지 → 새 설정 페이지로 통합

🙏 감사
- 이번 릴리스 피드백 준 23명에게 감사 (DM으로 1개월 Pro 무료)

사용자 인터뷰 30분 가이드

📋 코드 (4줄)
0~5분: 라포 형성 + 동의 (녹화 OK?)
5~15분: 사용 맥락 — "어떤 상황에서 우리 제품 쓰나?"
15~25분: 페인 포인트 — "가장 짜증났던 순간 5개"
25~30분: 마법 같은 순간 — "내일 사라지면 가장 그리울 기능"

AI 프롬프트
🤖 AI에게 잘 물어보는 법 — 모델·전략별 프롬프트
Claude

무료: Sonnet 4.6 / Pro $20/mo: Opus 4.6

내 사용자 피드백 100개를 분류해서
버그/기능/UX/가격 비율과
RICE 점수 Top 10을 만들어줘.
ChatGPT

무료: GPT-5.5 / Plus $20/mo: GPT-5.5 Pro

한국 SaaS 5개의 NPS 운영 방식과
인터뷰 빈도·시간을 비교해서
내 단계에 맞는 베스트 프랙티스를 알려줘.
Gemini

무료: 2.5 Flash / Pro $19.99/mo: 3.1 Pro

내 제품 데이터·피드백·NPS·이탈 데이터를 종합해서
제품 다음 분기 로드맵 3개 시나리오와
각 ROI 예상치를 만들어줘.
Grok

무료: Grok 4.1 / SuperGrok $30/mo

2026년 한국 인디해커가 사용자 피드백 모으는
실제 시간 투입과 가장 큰 함정 1가지를
솔직히 알려줘.

⭐ 이것만 기억하세요
사용자 피드백 루프 이 3가지만 확실히 잡으세요
1.피드백 수집보다 분류·우선순위·실행이 90% — 들어오는 피드백을 즉각 처리하지 못하면 신뢰 잃음
2.릴리스 노트에 "이 기능 요청한 사용자" 멘션은 충성도와 입소문을 동시에 만든다
3.다음 챕터에서 그로스 해킹 기법으로 피드백에서 발견한 인사이트를 빠른 실험으로 검증한다


공유하기
진행도 61 / 69