OPEN HYPER STEP
← 목록으로 (ai-startup)
AI-STARTUP · 63 / 100
ai-startup
CHAPTER 63 / 100
읽기 약 2
FUNCTION

바이럴 루프: 초대 + 공유 + 임베드


핵심 개념

invite·share·embed·viral coefficient — 자연 성장 메커니즘.

본문

Viral Coefficient (K)

📋 코드 (9줄)
K = 평균 초대 수 × 초대 수락률

K = 1: 안정 (사용자 1명이 1명 가져옴)
K > 1: 바이럴 (지수 성장)
K < 1: 줄어듦 (광고 필요)


목표: K = 0.7~1+
대부분 SaaS: K < 0.5 → 광고 필요

바이럴 루프 종류

📋 코드 (15줄)
1. 협업 초대
- "팀원 초대" — Slack·Notion 패턴
- 자연스럽게 viral

2. 공유 결과물
- "My result" 공유 (Wordle 패턴)
- 친구 호기심 유발

3. 임베드
- 다른 사이트에 위젯
- 광고 + 사용자 유입

4. Refer-a-friend
- 명시적 인센티브
- "친구 1명 초대 = 1개월 무료"

협업 초대 (Slack 모델)

TYPESCRIPT📋 코드 (20줄)
// Slack: 워크스페이스 만들면 자연스럽게 초대
async function inviteTeamMembers(workspace: Workspace, emails: string[]) {
  for (const email of emails) {
    const token = generateInviteToken();

    await db.invitations.create({
      data: { workspace_id: workspace.id, email, token },
    });

    await sendInviteEmail(email, {
      inviter_name: workspace.owner.name,
      workspace_name: workspace.name,
      accept_url: `${URL}/accept-invite?token=${token}`,
    });
  }
}


// 초대 받은 사람 — 가입 → workspace 자동 가입
// → 그 사람도 다른 사람 초대 (viral)

공유 결과물 (Wordle 패턴)

TYPESCRIPT📋 코드 (22줄)
// 사용자가 결과 만들면 → 공유 가능 카드
function ResultCard({ result }: { result: any }) {
  const shareText = `Just used [App] to ${result.summary}.

Try it: ${URL}?ref=${userId}`;

  return (
    <div>
      <h3>Result: {result.outcome}</h3>
      <Image src={result.imageUrl} />

      <ShareButtons>
        <Twitter text={shareText} />
        <LinkedIn text={shareText} />
        <CopyLink url={URL + '/result/' + result.id} />
      </ShareButtons>
    </div>
  );
}


// 공개 페이지로 공유 시 — 친구가 호기심 → 가입

Embed 위젯

TYPESCRIPT📋 코드 (29줄)
// 임베드 코드 제공
const EMBED_CODE = `
<iframe
  src="https://example.com/embed/${userId}"
  width="100%" height="400"
  frameborder="0"
></iframe>

<!-- Powered by [App] — try free at example.com -->
`;


// app/embed/[id]/page.tsx
export default async function EmbedPage({ params }) {
  // CORS 허용
  const data = await getEmbedData(params.id);
  return (
    <div>
      <Widget data={data} />
      <a href={`https://example.com?ref=${params.id}`}>
        Powered by [App]
      </a>
    </div>
  );
}


// → 다른 블로그·사이트에 임베드
// → 그 사이트 visitor 일부가 본인 사이트로

Refer-a-Friend

TYPESCRIPT📋 코드 (22줄)
// 명시적 인센티브
async function generateReferralLink(userId: string) {
  return `https://example.com?ref=${userId}`;
}


// 추천한 사람·받은 사람 모두 보상
async function handleReferral(referrerId: string, newUserId: string) {
  await db.referrals.create({ data: { referrer_id: referrerId, new_user_id: newUserId } });

  // 추천한 사람 — 1개월 무료
  await db.user.update({
    where: { id: referrerId },
    data: { credits_months: { increment: 1 } },
  });

  // 새 사용자 — 50% 할인 첫 달
  await db.user.update({
    where: { id: newUserId },
    data: { discount_percent: 50, discount_expires: addDays(new Date(), 30) },
  });
}

Drop-in CTA

TSX📋 코드 (18줄)
// 사용자가 좋은 결과 만들면 — 공유 유도
function ResultPage() {
  return (
    <>
      <Result />
      {result.quality > 0.8 && (
        <Banner>
          🎉 Great result! Share with friends:
          <ShareButtons />
        </Banner>
      )}
    </>
  );
}


// 자동 — 좋은 결과만 공유 유도
// → 다른 사람도 좋은 결과 보고 가입

Loops 측정

TYPESCRIPT📋 코드 (12줄)
async function measureViralCoefficient() {
  const referrals = await db.referrals.findMany({
    where: { created_at: { gte: lastMonth } },
  });

  const totalUsers = await db.user.count({ where: { created_at: { gte: lastMonth } } });

  const k = referrals.length / totalUsers;
  console.log(`Viral coefficient: ${k}`);

  // 0.7~1+ 목표
}

다음 챕터

CH.64 "이메일 퍼널".


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

월 $0 — 검증·시작 단계

바이럴 루프을 무료 도구만으로
시작하는 방법을 알려줘.
소자본

월 $20~50 — MVP·초기 운영

월 $20~50 예산으로 바이럴 루프을
검증·MVP 단계까지 진행하는 전략은?
프로덕션

월 $200~500 — 성장 단계

바이럴 루프을 프로덕션 단계로
확장할 때 필요한 도구·운영 체계는?
스택

풀스택 — 도구 조합 분석

2026년 바이럴 루프 관련 도구 5개를
조합한 추천 스택을 알려줘.

⭐ 이것만 기억하세요
바이럴 루프: 초대 + 공유 + 임베드 이 3가지만 확실히 잡으세요
1.Viral coefficient (K) 측정 — 0.7+ 목표
2.협업 초대 + 공유 결과물 + Embed = 자연 성장
3.Refer-a-friend (양쪽 보상) = 명시적 viral


공유하기
진행도 63 / 100