> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 아이디어 설명하기

> Conversation을 사용해 초기 커피숍 아이디어를 구체적인 컨셉과 출시 관련 질문으로 발전시켜 보세요.

export const PromptingCover = () => <div className="chat-mkt" role="img" aria-label="Prompt box with context cues and a generated result, representing prompting in Replit" style={{
  margin: "28px 0 42px",
  borderTop: 0,
  paddingTop: 0
}}>
    <div className="chat-use-case-visual" style={{
  aspectRatio: "auto",
  minHeight: "clamp(220px, 34vw, 320px)",
  overflow: "hidden",
  background: "radial-gradient(circle at 50% -18%, rgba(255,255,255,.82), transparent 42%), radial-gradient(circle at 4% 96%, rgba(255,184,146,.48), transparent 38%), linear-gradient(140deg, #ff764d, #ff3c00 60%, #c92d00)"
}}>
      <div aria-hidden="true" style={{
  position: "absolute",
  inset: 0,
  background: "linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 48%, rgba(111,24,0,.2))"
}} />
      <div aria-hidden="true" style={{
  position: "absolute",
  width: "min(76%, 560px)",
  height: "64%",
  left: "50%",
  top: "18%",
  transform: "translateX(-50%) rotate(-4deg)",
  opacity: 0.42,
  border: "1px solid rgba(255,255,255,.34)",
  borderRadius: 26
}} />
      <div aria-hidden="true" style={{
  position: "relative",
  zIndex: 1,
  display: "flex",
  width: "100%",
  minHeight: "inherit",
  alignItems: "center",
  justifyContent: "center",
  padding: "clamp(14px, 3vw, 28px)"
}}>
        <div style={{
  width: "clamp(260px, 66%, 680px)",
  maxWidth: "calc(100% - 20px)",
  boxSizing: "border-box"
}}>
          <div style={{
  display: "flex",
  justifyContent: "center",
  gap: 10,
  marginBottom: 12
}}>
            <span style={{
  width: 18,
  height: 18,
  border: "1px solid rgba(255,255,255,.54)",
  borderRadius: 6,
  background: "rgba(255,255,255,.18)"
}} />
            <span style={{
  width: 18,
  height: 18,
  border: "1px solid rgba(255,255,255,.54)",
  borderRadius: 999,
  background: "rgba(255,255,255,.14)"
}} />
            <span style={{
  width: 18,
  height: 18,
  border: "1px solid rgba(255,255,255,.54)",
  borderRadius: 5,
  background: "rgba(255,255,255,.12)"
}} />
          </div>
          <div style={{
  padding: "clamp(18px, 4vw, 30px)",
  border: "1px solid rgba(255,255,255,.58)",
  borderRadius: 24,
  background: "linear-gradient(180deg, rgba(255,255,255,.28), rgba(255,255,255,.1))",
  boxShadow: "0 18px 36px rgba(55,27,18,.2)",
  backdropFilter: "blur(5px)"
}}>
            <div style={{
  display: "grid",
  gap: 9
}}>
              <span style={{
  width: "55%",
  height: 9,
  borderRadius: 999,
  background: "rgba(255,255,255,.84)"
}} />
              <span style={{
  width: "88%",
  height: 9,
  borderRadius: 999,
  background: "rgba(255,255,255,.42)"
}} />
            </div>
            <div style={{
  display: "flex",
  alignItems: "center",
  justifyContent: "space-between",
  gap: 12,
  marginTop: "clamp(22px, 4vw, 32px)",
  padding: "13px 14px",
  border: "1px solid rgba(255,255,255,.64)",
  borderRadius: 16,
  background: "rgba(255,255,255,.18)"
}}>
              <span style={{
  width: "68%",
  height: 8,
  borderRadius: 999,
  background: "rgba(255,255,255,.78)"
}} />
              <span style={{
  display: "grid",
  width: 27,
  height: 27,
  placeItems: "center",
  flex: "0 0 auto",
  borderRadius: 9,
  background: "rgba(255,255,255,.9)",
  color: "#4b5563",
  fontSize: 16,
  fontWeight: 700
}}>
                ↑
              </span>
            </div>
          </div>
          <div style={{
  display: "flex",
  alignItems: "center",
  gap: 10,
  width: "74%",
  margin: "14px auto 0",
  padding: "10px 12px",
  border: "1px solid rgba(255,255,255,.46)",
  borderRadius: 14,
  background: "rgba(255,255,255,.14)"
}}>
            <span style={{
  display: "grid",
  width: 20,
  height: 20,
  placeItems: "center",
  flex: "0 0 auto",
  borderRadius: 999,
  background: "rgba(255,255,255,.86)",
  color: "#4b5563",
  fontSize: 13,
  fontWeight: 700
}}>
              ✓
            </span>
            <span style={{
  width: "68%",
  height: 7,
  borderRadius: 999,
  background: "rgba(255,255,255,.68)"
}} />
          </div>
        </div>
      </div>
    </div>
  </div>;

export const PromptingCardVisual = () => <div className="chat-use-case-visual" aria-hidden="true" style={{
  background: "radial-gradient(circle at 48% -30%, rgba(255,255,255,.78), transparent 54%), linear-gradient(140deg, #ff764d, #ff3c00 60%, #c92d00)"
}}>
    <div style={{
  position: "relative",
  width: "72%",
  margin: "auto",
  padding: 12,
  border: "1px solid rgba(255,255,255,.56)",
  borderRadius: 14,
  background: "rgba(255,255,255,.2)"
}}>
      <span style={{
  display: "block",
  width: "66%",
  height: 7,
  borderRadius: 999,
  background: "rgba(255,255,255,.8)"
}} />
      <span style={{
  display: "block",
  width: "92%",
  height: 7,
  marginTop: 7,
  borderRadius: 999,
  background: "rgba(255,255,255,.38)"
}} />
      <span style={{
  display: "block",
  width: "82%",
  height: 22,
  marginTop: 12,
  border: "1px solid rgba(255,255,255,.62)",
  borderRadius: 8,
  background: "rgba(255,255,255,.16)"
}} />
    </div>
  </div>;

export const chatIcon = (name, size = 19) => {
  const paths = {
    MessageCircle: <path d="M7.9 20A9 9 0 1 0 4 16.1L2 22Z" />,
    ChartNoAxesCombined: <>
        <path d="M12 16v5" />
        <path d="M16 14v7" />
        <path d="M20 10v11" />
        <path d="m22 3-8.646 8.646a.5.5 0 0 1-.708 0L9.354 8.354a.5.5 0 0 0-.708 0L2 15" />
        <path d="M4 18v3" />
        <path d="M8 14v7" />
      </>,
    Workflow: <>
        <rect width="8" height="8" x="3" y="3" rx="2" />
        <path d="M7 11v4a2 2 0 0 0 2 2h4" />
        <rect width="8" height="8" x="13" y="13" rx="2" />
      </>,
    Lightbulb: <>
        <path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5" />
        <path d="M9 18h6" />
        <path d="M10 22h4" />
      </>,
    Code2: <>
        <path d="m18 16 4-4-4-4" />
        <path d="m6 8-4 4 4 4" />
        <path d="m14.5 4-5 16" />
      </>,
    Presentation: <>
        <path d="M2 3h20" />
        <path d="M21 3v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V3" />
        <path d="m7 21 5-5 5 5" />
      </>,
    PanelsTopLeft: <>
        <rect width="18" height="18" x="3" y="3" rx="2" />
        <path d="M3 9h18" />
        <path d="M9 21V9" />
      </>,
    Keyboard: <>
        <rect width="20" height="14" x="2" y="5" rx="2" />
        <path d="M6 9h.01M10 9h.01M14 9h.01M18 9h.01M6 13h.01M10 13h.01M14 13h.01M18 13h.01M8 17h8" />
      </>,
    Layers3: <>
        <path d="m12 2 9 5-9 5-9-5 9-5Z" />
        <path d="m3 12 9 5 9-5M3 17l9 5 9-5" />
      </>,
    CalendarClock: <>
        <path d="M16 2v4M8 2v4M3 10h18" />
        <rect width="18" height="19" x="3" y="4" rx="2" />
        <path d="M12 14v3l2 1" />
      </>,
    ConversationProject: <>
        <path d="M3 4h8v6H6l-3 2V4Z" />
        <rect width="9" height="9" x="12" y="11" rx="1.5" />
        <path d="M12 14h9M15 11v9" />
      </>,
    CursorDesign: <>
        <path d="m5 3 13 7-6 2-2 6L5 3Z" />
        <path d="M15 16h6M18 13v6" />
      </>,
    AppWindow: <>
        <rect width="20" height="18" x="2" y="3" rx="2" />
        <path d="M2 8h20M6 5.5h.01M9 5.5h.01" />
      </>,
    CloudUpload: <>
        <path d="M12 13v8M8 17l4-4 4 4" />
        <path d="M20 16.5A5 5 0 0 0 18 7h-1.3A7 7 0 0 0 3.3 9.4 4.5 4.5 0 0 0 5 18h2" />
      </>,
    Image: <>
        <rect width="18" height="18" x="3" y="3" rx="2" ry="2" />
        <circle cx="9" cy="9" r="2" />
        <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" />
      </>,
    FileUp: <>
        <path d="M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z" />
        <path d="M14 2v4a2 2 0 0 0 2 2h4" />
        <path d="M12 12v6" />
        <path d="m15 15-3-3-3 3" />
      </>,
    Search: <>
        <circle cx="11" cy="11" r="8" />
        <path d="m21 21-4.3-4.3" />
      </>,
    Sparkles: <path d="M9.937 15.5A2 2 0 0 0 8.5 14.063l-6.135-1.582a.5.5 0 0 1 0-.962L8.5 9.936A2 2 0 0 0 9.937 8.5l1.582-6.135a.5.5 0 0 1 .963 0L14.063 8.5A2 2 0 0 0 15.5 9.937l6.135 1.581a.5.5 0 0 1 0 .964L15.5 14.063a2 2 0 0 0-1.437 1.437l-1.582 6.135a.5.5 0 0 1-.963 0z" />,
    Briefcase: <>
        <path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" />
        <rect width="20" height="14" x="2" y="6" rx="2" />
      </>,
    WandSparkles: <>
        <path d="m21.64 3.64-1.28-1.28a1.21 1.21 0 0 0-1.72 0L2.36 18.64a1.21 1.21 0 0 0 0 1.72l1.28 1.28a1.2 1.2 0 0 0 1.72 0L21.64 5.36a1.2 1.2 0 0 0 0-1.72" />
        <path d="m14 7 3 3" />
        <path d="M5 6v4" />
        <path d="M19 14v4" />
        <path d="M10 2v2" />
        <path d="M7 8H3" />
        <path d="M21 16h-4" />
        <path d="M11 3H9" />
      </>
  };
  return <svg width={size} height={size} viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.8" strokeLinecap="round" strokeLinejoin="round" aria-hidden="true">
      {paths[name] ?? paths.Sparkles}
    </svg>;
};

export const CoffeeShopScreenshotFrame = ({src, alt}) => <div style={{
  margin: "28px 0",
  overflow: "hidden",
  borderRadius: "24px",
  background: "radial-gradient(circle at 50% -18%, rgba(255,255,255,.82), transparent 42%), radial-gradient(circle at 4% 96%, rgba(255,184,146,.48), transparent 38%), linear-gradient(140deg, #ff764d, #ff3c00 60%, #c92d00)",
  boxShadow: "0 16px 32px rgba(112,36,13,.18)"
}}>
    <div style={{
  padding: "clamp(10px, 2vw, 18px)",
  background: "linear-gradient(180deg, rgba(255,255,255,.14), rgba(255,255,255,0) 48%, rgba(111,24,0,.2))"
}}>
      <a href={src} target="_blank" rel="noreferrer" aria-label={`Open ${alt} at full size`} style={{
  display: "block",
  overflow: "hidden",
  border: "1px solid rgba(255,255,255,.62)",
  borderRadius: "16px",
  background: "rgba(255,255,255,.96)",
  boxShadow: "0 12px 28px rgba(55,27,18,.2)",
  cursor: "zoom-in"
}}>
        <img src={src} alt={alt} style={{
  display: "block",
  width: "100%",
  height: "auto"
}} />
      </a>
    </div>
  </div>;

export const AiPrompt = ({children}) => {
  return <CodeBlock className="relative block max-w-full overflow-x-hidden font-sans !whitespace-pre-wrap !break-words" style={{
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
      <div className="pr-7" style={{
    whiteSpace: "pre-wrap",
    overflowWrap: "anywhere",
    wordBreak: "break-word"
  }}>
        {children}
      </div>
    </CodeBlock>;
};

<PromptingCover />

Conversation을 시작했습니다. 이제 Replit에 명확한 출발점을 제공하세요.

이 프로젝트의 목표는 따뜻하고 차분하며 편안한 느낌의 동네 커피숍을 여는
것입니다. 이 아이디어를 설명하고, Replit의 질문에 답하고, 그 결과를 바탕으로
다음에 무엇을 탐색할지 결정하게 됩니다.

## 첫 프롬프트 작성하기

간단하게 시작하세요. 시작하기 전에 완벽한 사업 계획이 필요한 것은 아닙니다.
좋은 첫 프롬프트는 원하는 결과를 명시하고, 이미 가지고 있는 맥락을 공유하며,
유용한 경계를 설정합니다.

이 첫 프롬프트가 전체 계획은 아닙니다. Replit이 유용한 질문을 하고 아이디어를
구체화하도록 돕는 데 필요한 방향을 제공할 뿐입니다.

<AiPrompt>
  <span
    style={{
  backgroundColor: "#FDE9D9",
  borderRadius: "0.25rem",
  padding: "0.05rem 0.25rem",
}}
  >
    저는 동네 커피숍을 열고 싶습니다. 컨셉을 구체화하고 출시 계획을 세우는 것을
    도와주세요.
  </span>

  {" "}

  <span
    style={{
  backgroundColor: "#FEF3C7",
  borderRadius: "0.25rem",
  padding: "0.05rem 0.25rem",
}}
  >
    \[내 동네] 근처의 위치를 고려하고 있으며, 카페가 따뜻하고 차분하며 편안한
    느낌이면 좋겠습니다.
  </span>

  {" "}

  <span
    style={{
  backgroundColor: "#DCFCE7",
  borderRadius: "0.25rem",
  padding: "0.05rem 0.25rem",
}}
  >
    이 결과를 활용해 다음에 무엇을 조사하고 계획할지 결정하겠습니다.
  </span>
</AiPrompt>

이 프롬프트는 **결과**로 시작해서 유용한 **맥락**을 공유하고 명확한
**경계**를 설정합니다. 또한 그 응답을 어떻게 활용할지도 설명합니다. 모든
질문을 한 번에 할 필요는 없습니다.

## Replit의 질문에 답하기

Replit은 더 많은 맥락이 필요할 때 질문합니다. 질문은 아이디어에 따라
달라집니다. 커피숍의 경우 다음과 같이 물었습니다:

* 이 장소를 가장 먼저 사랑해야 할 사람은 누구인가요?
* 어떤 가격대가 적절하게 느껴지나요?
* 음식 메뉴는 얼마나 야심차게 구성해야 할까요?
* 어떤 제약 조건을 고려해서 계획해야 하나요?

계획에 가장 중요한 질문에 답하세요. 각 답변은 Replit에게 다음 응답을 위한
더 많은 맥락을 제공합니다.

<CoffeeShopScreenshotFrame src="/images/coffee-shop-launch/follow-up-question.png" alt="Replit이 커피숍 음식 메뉴를 얼마나 야심차게 구성할지 묻고 있으며, 소규모 콜드 메뉴, 더 폭넓은 브런치 메뉴, 또는 풀 브런치 주방이라는 선택지를 제시하는 화면" />

## 첫 결과 검토하기

프롬프트와 답변을 바탕으로 Replit은 편집 가능한 출시 워크북을 만들었습니다.
여기에는 12개월 모델, \$100k 예산, 위치 스코어카드, 출시 체크리스트, 공식
규제 출처가 포함되었습니다.

<CoffeeShopScreenshotFrame src="/images/coffee-shop-launch/launch-workbook.png" alt="컨셉 요약과 시간대별 경험 표가 포함된, 커피숍 출시를 위한 편집 가능한 스프레드시트 워크북" />

기본 시나리오에는 \$5k의 오너 급여가 포함되었습니다. 이 시나리오는 카페가
다음과 같을 것으로 추정했습니다:

* 손익분기점에 도달하려면 하루 약 110–120건의 거래가 필요함
* 하루 170건의 거래에서 월 매출 \$46.4k에 도달함
* 오픈 초기 기간 동안 최소 \$17.6k의 현금 보유고를 유지함

또한 매장 부지를 가장 큰 리스크로 파악했고, 방문 전에 매물이나 주소를
평가해 주겠다고 제안했습니다. 이제 초기 아이디어는 검증할 수 있는 일련의
가정이 되었습니다.

Replit은 또한 최신 웹 조사와 출처 링크를 활용해 이러한 가정을 검증했습니다.
다음 후속 질문은 조사 범위를 지역 시장으로 좁힙니다.

## Conversation 계속하기

결과를 활용해 다음 질문을 정하세요. 여기서는 다음 후속 질문이 지역 시장,
주변 대안, 출시 계획의 가정에 비추어 컨셉을 검증합니다:

<AiPrompt>
  지역 시장, 주변 대안, 그리고 제 커피숍 컨셉의 기반이 되는 가정을 조사해
  주세요. 무엇이 유망해 보이는지, 무엇을 검증해야 하는지, 다음에 무엇을
  결정해야 하는지 알려주세요.
</AiPrompt>

## 조사 결과로 방향 정하기

Replit은 최신 조사와 출처 링크로 Conversation을 이어갑니다. 이 예시에서는
조사 결과 지역 수요는 있었지만, 기존 컨셉이 임대 계약을 정당화할 만큼 아직
차별화되지 않았다는 것이 밝혀졌습니다.

이 결과는 새로운 결정으로 이어졌습니다: 부지를 확정하기 전에 더 빠른 역세권
바, 동네 카페, 또는 두 가지 모두를 검증하는 것입니다.

<CoffeeShopScreenshotFrame src="/images/coffee-shop-launch/choose-neighborhood-model.png" alt="Replit이 결정을 내리기 전에 역세권 통근자 바, 동네 카페, 또는 둘 다를 검증할지 묻는 화면" />

**동네 카페** 모델을 선택했습니다. 이제 출시 계획의 방향이 정해졌으니 더
많은 맥락을 추가하기 시작할 수 있습니다.

[Web Search](/ko/features/agent/web-search)에 대해 자세히 알아보세요.

## 관련 문서

<section className="chat-mkt chat-workflow-grid has-visuals">
  <a className="chat-example has-visual" href="/ko/home/integrations">
    <div className="chat-use-case-visual">
      <div className="chat-use-case-icon">
        {chatIcon("Paperclip", 32)}
      </div>
    </div>

    <div className="chat-example-tag">다음 단계</div>
    <div className="chat-card-title">통합</div>

    <p>
      출시 계획의 기반이 되는 도구와 정보를 연결하는 방법을 알아보세요.
    </p>

    <div className="chat-card-link">계속하기 →</div>
  </a>

  <a className="chat-example has-visual" href="/prompting">
    <PromptingCardVisual />

    <div className="chat-example-tag">프롬프팅</div>
    <div className="chat-card-title">프롬프팅에 대해 자세히 알아보기</div>
    <p>몇 가지 간단한 기법으로 모든 후속 질문을 더 유용하게 만들어 보세요.</p>
    <div className="chat-card-link">자세히 알아보기 →</div>
  </a>

  <a className="chat-example has-visual" href="/ko/features/agent/web-search">
    <div className="chat-use-case-visual">
      <div className="chat-use-case-icon">
        {chatIcon("Search", 32)}
      </div>
    </div>

    <div className="chat-example-tag">Web Search</div>
    <div className="chat-card-title">최신 출처로 조사하기</div>
    <p>웹 조사를 활용해 최신 정보에 비추어 아이디어를 검증하세요.</p>
    <div className="chat-card-link">자세히 알아보기 →</div>
  </a>
</section>
