[Tips] Lovable Prompting Tips ๊ณต๊ฐ!! : Prompting 1.1
์๋ณธ ๊ฒ์๊ธ: https://velog.io/@euisuk-chung/Tips-Lovable-Prompting-101
Lovable ํ๋กฌํํธ ์ ๋ต
ํ๋กฌํํธ ๊ตฌ์กฐ, ๋จ๊ณ๋ณ ํ๋กฌํํ , ๋ฉํ/์ญ ๋ฉํ ํ๋กฌํํ ๋ฐ ์์ ๋ฅผ ํตํ ๊ธฐ์ด ์ ๋ต
์ด ๊ธ์ Lovable์ ๊ณต์ ๋ฌธ์์ธ Prompting 1.1์ ๋ฒ์ญํ๊ณ ์ ๋ฆฌํ ์ฝํ ์ธ ์ ๋๋ค. Lovable์ ๊ฐ๋ ฅํ Large Language Model(LLM)์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ํจ๊ณผ์ ์ธ ํ๋กฌํํ ์ ๋ต์ ํตํด ๊ทธ ์ ์ฌ๋ ฅ์ ์ต๋ํ ๋ฐํํ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ํ๋กฌํํธ ๊ตฌ์กฐ, ๋จ๊ณ๋ณ ํ๋กฌํํ , ๋ฉํ/์ญ ๋ฉํ ํ๋กฌํํ ๋ฑ Lovable์ ํจ์จ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํ ๊ธฐ์ด ์ ๋ต๊ณผ ์์ ๋ฅผ ์๊ฐํฉ๋๋ค. Lovable ํ๊ณผ ์ปค๋ฎค๋ํฐ์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก ๊ตฌ์ฑ๋ ์ด ๊ฐ์ด๋๋ ์ฌ์ฉ์๊ฐ ๋ ์ ํํ๊ณ ํจ์จ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์๋๋ก ๋๊ธฐ ์ํด ์ค๊ณ๋์์ต๋๋ค.
๋ณธ ๊ธ์ ๋ฒ์ญ๊ธ์ด๋ฏ๋ก, ๋ณธ๋ฌธ์์ ์ธ๊ธ๋ โ์ ํฌ/์ฐ๋ฆฌโ๋ ๋ฒ์ญ๋ ๋ด์ฉ์ผ๋ก, ์ค์ Lovable ํ์ ์ง์นญํฉ๋๋ค.
โ ๏ธ ์ฐธ๊ณ ์ฌํญ!
ํด๋น ๊ธ์ Lovable์ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ํ๋กฌํํ
์ ๋ต๊ณผ ์ ๊ทผ๋ฒ ๋ชฉ๋ก์ ์ ๋ฆฌํ ๊ธ์
๋๋ค. ์ด ์ค ์ผ๋ถ๋ ์ ํฌ ํ์ด ์ง์ ๊ฒฝํํ ๋ด์ฉ์ ํตํด ์์ฑํ๊ณ , ์ผ๋ถ๋ ์ปค๋ฎค๋ํฐ ๊ตฌ์ฑ์๋ค์ด ๊ณต์ ํด์ค ๋ด์ฉ์ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค. Lovable
์ Large Language Model(LLM)์ ์์กดํ๋ฏ๋ก, ํจ๊ณผ์ ์ธ ํ๋กฌํํ
์ ๋ต์ ํตํด ํจ์จ์ฑ๊ณผ ์ ํ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
ํ๋กฌํํ ์ด๋ ๋ฌด์์ธ๊ฐ?
ํ๋กฌํํ
์ AI ์์คํ
์ด ์์
์ ์ํํ๋๋ก ์ ๊ณตํ๋ ํ
์คํธ ์ง์์ฌํญ์ ์๋ฏธํฉ๋๋ค.
- Lovable(AI ๊ธฐ๋ฐ ์ฑ ๋น๋)์์ ํ๋กฌํํธ๋ UI ์์ฑ๋ถํฐ ๋ฐฑ์๋ ๋ก์ง ์์ฑ๊น์ง
AI์๊ฒ ๋ฌด์์ ํ ์ง "์๋ ค์ฃผ๋" ๋ฐฉ๋ฒ
์ ๋๋ค. - Lovable์ Large Language Model(LLM)์ ์ฌ์ฉํ๋ฏ๋ก ํจ๊ณผ์ ์ธ ํ๋กฌํํ ์ด ์ค์ํฉ๋๋ค.
๋ช
ํํ๊ณ ์ ์์ฑ๋ ํ๋กฌํํธ๋ ์ฑ ๊ตฌ์ถ ์ AI์ ํจ์จ์ฑ๊ณผ ์ ํ์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๊ฐ๋จํ ๋งํด, ๋ ๋์ ํ๋กฌํํธ๊ฐ ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ญ๋๋ค.
ํ๋กฌํํ ์ด ์ค์ํ ์ด์
๋๋ถ๋ถ์ ์ฌ๋๋ค์ ํ๋กฌํํ ์ด โ๋จ์ํ AI์๊ฒ ์์ฒญ์ ์ ๋ ฅํ๊ณ ์ต์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ผ๋ ๊ฒโ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค - ํ์ง๋ง, ๊ทธ๋ ์ง ์์ต๋๋ค.
- ํ๋ฒํ AI ์๋ต๊ณผ AI๊ฐ ์ ์ฒด ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ถํ๋๋ก ํ๋ ๊ฒ์ ์ฐจ์ด๋ โ์ด๋ป๊ฒ ํ๋กฌํํธ๋ฅผ ์์ฑํ๋๋โ์ ๋ฌ๋ ค ์์ต๋๋ค.
๊ฐ๋ฐ์๋ ๋น๊ธฐ์ ์๋ , Lovable์์ ํ๋กฌํํธ ์์ง๋์ด๋ง์ ๋ง์คํฐํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ๋์์ ๋ฐ์ ์ ์์ต๋๋ค:
- AI์๊ฒ ์ ํํ ๋ฌด์์ ํด์ผ ํ๋์ง ์ง์ํ์ฌ ๋ฐ๋ณต ์์ ์ ์๋ํ
- AI๊ฐ ์์ฑํ ์ธ์ฌ์ดํธ์ ์๋ฃจ์ ์ผ๋ก ๋ ๋น ๋ฅด๊ฒ ๋๋ฒ๊ทธ
- ์ ์ ํ ์๋ด๋๋ฉด AI๊ฐ ๋ฌด๊ฑฐ์ด ์์ ์ ์ฒ๋ฆฌํ๊ฒ ํ์ฌ ์์ฝ๊ฒ ์ํฌํ๋ก์ฐ๋ฅผ ๊ตฌ์ถํ๊ณ ์ต์ ํ
โ ๊ทธ๋ผ Lovable์ ์ฌ์ฉํ ๋, ๊ฐ์ฅ ์ข์ ์ ์?
- ์ ๋ฌธ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ ํ์๊ฐ ์๋ค๋ ๊ฒ์ ๋๋ค.
- ์ฌ๋ฐ๋ฅธ ํ๋กฌํํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ฉด ์ํ์ฐฉ์ค ์์ด Lovable์์ AI์ ๋ชจ๋ ์ ์ฌ๋ ฅ์ ๋ฐํํ ์ ์์ต๋๋ค.
AI๊ฐ ์ด๋ป๊ฒ ์๊ฐํ๋์ง ์ดํดํ๊ธฐ
๊ธฐ์กด ์ฝ๋ฉ๊ณผ ๋ฌ๋ฆฌ, AI์ ์์ ํ๋ ๊ฒ(working with AI)์ ์ฐ๋ฆฌ์ ์๋๋ฅผ ๋ช ํํ๊ฒ ์ ๋ฌ/์ํตํ๋ ๊ฒ์ ๋๋ค.
Lovable์ ๊ตฌ๋ํ๋ ๊ฒ๊ณผ ๊ฐ์ Large Language Model(LLM)
/Artificial Intelligence(AI)
๋ ์ธ๊ฐ์ ๊ด์ ์์ โ์ดํด(understand)โํ์ง ์์ต๋๋ค - ํ๋ จ ๋ฐ์ดํฐ์ ํจํด์ ๊ธฐ๋ฐ์ผ๋ก ์ถ๋ ฅ์ ์์ธกํฉ๋๋ค.
์ด๋ฌํ LLM์ ํน์ง์, ์ฐ๋ฆฌ๊ฐ ํ๋กฌํํธ๋ฅผ ์์ฑํจ์ ์์ด์ ์ค์ํ ์๋ฏธ๋ฅผ ๊ฐ์ต๋๋ค:
์ผ๊ด๋ ๋ต๋ณ ๊ฒฐ๊ณผ(consistent outcomes)๋ฅผ ์ํด์๋ ํ๋กฌํํธ๋ฅผ ๋ช ํํ ์น์ ์ผ๋ก ๊ตฌ์กฐํํ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค. ๊ถ์ฅ๋๋ ํ์(eg. ํ๋กฌํํ ์ ์ํ โ์์ ๊ฑฐ ๋ณด์กฐ๋ฐํด(training wheels)โ์ฒ๋ผ)์ Context, Task, Guidelines, Constraints์ ๋ํ ๋ผ๋ฒจ์ด ๋ถ์ ์น์ ์ ์ฌ์ฉํฉ๋๋ค:
https://www.google.com/search?q=%E2%80%9Ctraining+wheels%E2%80%9D
-
์ปจํ ์คํธ์ ์ธ๋ถ์ฌํญ ์ ๊ณต:
- AI ๋ชจ๋ธ์ ์ฌ์ฉ์๊ฐ ์ ๊ณตํ๋ ๊ฒ ์ด์ธ์๋ ์์์ด๋ ์์์ ์ปจํ ์คํธ๊ฐ ์์ต๋๋ค.
- ํญ์ ๊ด๋ จ ๋ฐฐ๊ฒฝ์ด๋ ์๊ตฌ์ฌํญ์ ์ ๊ณตํ์ธ์.
- ์๋ฅผ ๋ค์ด,
- โ๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌ์ถโ์ด๋ผ๊ณ ๋ง ๋งํ๋ ๋์ ์ธ๋ถ์ฌํญ์ ๋ช
์ํ์ธ์
(eg. โReact๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฉ์ผ/๋น๋ฐ๋ฒํธ ์ธ์ฆ๊ณผ JWT ์ฒ๋ฆฌ๊ฐ ์๋ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ์์ฑํ์ธ์.โ) - ๊ธฐ์ ์คํ์ด๋ ๋๊ตฌ๋ฅผ ๋ช
์์ ์ผ๋ก ํฌํจํ์ธ์.
(eg. โ์ธ์ฆ์ ์ํด Supabase ์ฌ์ฉํ์ธ์.โ)
- โ๋ก๊ทธ์ธ ํ์ด์ง ๊ตฌ์ถโ์ด๋ผ๊ณ ๋ง ๋งํ๋ ๋์ ์ธ๋ถ์ฌํญ์ ๋ช
์ํ์ธ์
- ์๋ฅผ ๋ค์ด,
-
์ง์์ฌํญ๊ณผ ์ ์ฝ์กฐ๊ฑด์ ๋ช ์์ ์ผ๋ก ์ ๊ณต:
- AI๊ฐ โ๋ชฉํ๋ฅผ ์ถ๋ก ํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ง ๋ง์ธ์โ.
์ ์ฝ์กฐ๊ฑด
์ด๋์ ํธ์ฌํญ
์ด ์๋ค๋ฉด ์ง์ ํ ์คํธ๋ก ๋ช ์ํ์ธ์.- ์๋ฅผ ๋ค์ด,
- ์ถ๋ ฅ์ด ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ํน์ ๋ฒ์ ๋ด์ ๋จธ๋ฌผ๋ฌ์ผ ํ๋ค๋ฉด ๋ชจ๋ธ์๊ฒ ๋ฏธ๋ฆฌ ์๋ ค์ฃผ์ธ์.
- AI๋ ์ง์์ฌํญ์ ๋ฌธ์ ๊ทธ๋๋ก ๋ฐ๋ฅผ ๊ฒ์
๋๋ค -
๋ช ๋ น์ ๋ชจํธํจ
์ โ์์น ์๋ ๊ฒฐ๊ณผโ๋ โAI ํ๊ฐโ(์๋ชป๋ ์ ๋ณด ์์ฑ)์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด,
-
๊ตฌ์กฐ๊ฐ ์ค์ํจ (์์์ ๊ฐ์กฐ):
- Transformer ์ํคํ
์ฒ ๋๋ถ์ ๋ชจ๋ธ์ ํ๋กฌํํธ์
์์
๊ณผ๋
์ ํน๋ณํ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ ๋๋ค.- ๊ฐ์ฅ ์ค์ํ ์ธ๋ถ์ฌํญ์ด๋ ์์ฒญ์ ์์ ๋ถ๋ถ์ ๋๊ณ , ๊ฐ์กฐ๊ฐ ํ์ํ๋ค๋ฉด ์ ๋์ ์๊ตฌ์ฌํญ์ ๋์์ ๋ค์ ๊ฐ์กฐํ์ฌ ์ด๋ฅผ ํ์ฉํ์ธ์. (DO NOT, NEVER)
- ๋ํ ๋ชจ๋ธ์ ๊ณ ์ ๋
์ปจํ ์คํธ ์๋์ฐ
๋ฅผ ๊ฐ์ง๊ณ ์์์ ๊ธฐ์ตํ์ธ์- ์ง๋์น๊ฒ ๊ธด ํ๋กฌํํธ๋ ๋งค์ฐ ๊ธด ๋ํ๋ AI๊ฐ ์ด์ ์ธ๋ถ์ฌํญ์ ์๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
- ํ๋กฌํํธ๋ฅผ ์ง์ค์ ์ผ๋ก ์ ์งํ๊ณ ํ์ํ ๋ ์ปจํ ์คํธ๋ฅผ ์๋ก ๊ณ ์น์ธ์. (eg. ์ธ์ ์ด ๊ธธ์ด์ง๋ฉด ์ฃผ์ ํฌ์ธํธ๋ฅผ ๋ชจ๋ธ์๊ฒ ์๊ธฐ์ํค๊ธฐ)
- Transformer ์ํคํ
์ฒ ๋๋ถ์ ๋ชจ๋ธ์ ํ๋กฌํํธ์
-
๋ชจ๋ธ์ ํ๊ณ ์๊ธฐ:
- AI์ ์ง์์ ํ๋ จ ๋ฐ์ดํฐ์์ ๋์ต๋๋ค.
(๋ฌผ๋ก ์์ฆ์ web search๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌ๊ณ ์๊ธดํ์ง๋ง)- ์ด๋ฌํ ์ด์ ๋ก ์ต๊ทผ ์ฌ๊ฑด์ด๋ ์ ๊ณตํ์ง ์์ ๋ ์ ์ ๋ณด๋ ์ ์ ์์ต๋๋ค.
- ์ถ์ธกํ๊ณ ์๋๋ผ๋ ์์ ์๊ฒ ๋ค๋ฆฌ๋ ค๊ณ ํ ๊ฒ์ ๋๋ค(์ด๋ ๋ชจ๋ธ ํ๊ฐ ํ์์ผ๋ก ์ด์ด์ง - eg. ์ธ์ข ๋์ ๋งฅ๋ถํ๋ก ๋์ง ์ฌ๊ฑด ๋ฑ).
- AI์ ์ง์์ ํ๋ จ ๋ฐ์ดํฐ์์ ๋์ต๋๋ค.
- ์ฌ์ค์ ์ง๋ฌธ์ ์ํด์๋ ํญ์ ์ฐธ์กฐ ํ ์คํธ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ณตํ๊ฑฐ๋ ์ถ๋ ฅ์ ๊ฒ์ฆํ ์ค๋น๋ฅผ ํ์ธ์.
- ํ๋กฌํํ ์ ๋งค์ฐ ๋ฌธ์ ๊ทธ๋๋ก ์ดํดํ๋ ์ธํด์๊ฒ ์ ํํ ๋ฌด์์ด ํ์ํ์ง ๋งํ๋ ๊ฒ์ฒ๋ผ ์๊ฐํ์ธ์.
- ์ง์นจ์ด ๋ช ํํ๊ณ ๊ตฌ์กฐ์ ์ผ์๋ก ๊ฒฐ๊ณผ๊ฐ ๋ ์ข์์ง๋๋ค.
๋ค์์ผ๋ก ํ๋กฌํํธ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๋ง๋๋ ํต์ฌ ์์น๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํต์ฌ ํ๋กฌํํ ์์น: C.L.E.A.R. ํ๋ ์์ํฌ
ํ๋ฅญํ ํ๋กฌํํธ๋ ๊ฐ๋จํ ์์น๋ค์ ๋ฐ๋ฆ ๋๋ค. ์ด๋ฅผ ๊ธฐ์ตํ๋ ํธ๋ฆฌํ ๋ฐฉ๋ฒ์ CLEAR: Concise, Logical, Explicit, Adaptive, Reflective์ ๋๋ค.
์ง์์ฌํญ์ ์์ฑํ ๋ ์ด๋ฅผ ์ฒดํฌ๋ฆฌ์คํธ๋ก ์ฌ์ฉํ์ธ์:
-
C
- ๊ฐ๊ฒฐํจ(Concise):- ๋ช ํํ๊ณ ์์ ์ ์ ๋ฌํ์ธ์.
- ๋ถํ์ํ ๋ด์ฉ์ด๋ ๋ชจํธํ ์ธ์ด๋ ๋ชจ๋ธ์ ํผ๋์ค๋ฝ๊ฒ ํ ์ ์์ต๋๋ค.
- ์ง์ ์ ์ธ ์ธ์ด๋ฅผ ์ฌ์ฉํ์ธ์. ์๋ฅผ ๋ค์ด:
- Bad Case: โ๊ณผํ ์ฃผ์ ์ ๋ํด ๋ญ๊ฐ ์ฌ๋ฐ๋ ์๊ธฐํด๋ด.โ
- Good Case: โ์ฐ์ ๋์์ ๋ํ ๊ธฐํ ๋ณํ ์ํฅ์ 200๋จ์ด ์์ฝ์ ์์ฑํ์ธ์.โ
- ๋ถํ์ํ ๋จ์ด๋ ํผํ์ธ์ - ์ธ๋ถ์ฌํญ์ด ์ง์์ ์ด์ง ์๋ค๋ฉด ์ฐ๋งํ ๋ฟ์ ๋๋ค. ์ํ๋ ๊ฒ์ ์ค๋ช ํ ๋ ์ ํ์ฑ๊ณผ ๊ฐ๊ฒฐ์ฑ์ ๋ชฉํ๋ก ํ์ธ์.
-
L
- ๋ ผ๋ฆฌ์ (Logical):- ํ๋กฌํํธ๋ฅผ ๋จ๊ณ๋ณ ๋๋ ์ ๊ตฌ์กฐํ๋ ๋ฐฉ์์ผ๋ก ์ ๋ฆฌํ์ธ์.
- ๋ณต์กํ ์์ฒญ์ ์์๊ฐ ์๋ ๋จ๊ณ๋ ๋ถ๋ฆฟ ํฌ์ธํธ๋ก ๋๋์ด AI๊ฐ ์ฝ๊ฒ ๋ฐ๋ผํ ์ ์๋๋ก ํ์ธ์.
- ํ๋์ ๊ธธ๊ณ ์ฐ๊ฒฐ๋ ์์ฒญ๋ณด๋ค๋ ๊ด์ฌ์ฌ๋ฅผ ๋ถ๋ฆฌํ์ธ์. ์๋ฅผ ๋ค์ด:
- Bad Case: โ์ฌ์ฉ์ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๊ณ ์ฌ์ฉ๋ ํต๊ณ๋ ๋ณด์ฌ์ค.โ
- Good Case: โ๋จผ์ Supabase๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ๋ก ์ฌ์ฉ์ ๊ฐ์ ์์์ ๊ตฌํํ์ธ์. ๊ทธ ๋ค์, ์ฑ๊ณต์ ์ธ ๊ฐ์ ํ ์ฌ์ฉ์ ์ ํต๊ณ๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋์๋ณด๋๋ฅผ ํ์ํ์ธ์.โ
- ๋ ผ๋ฆฌ์ ํ๋ฆ์ ๋ชจ๋ธ์ด ์์ฒญ์ ๊ฐ ๋ถ๋ถ์ ์ฒด๊ณ์ ์ผ๋ก ์ฒ๋ฆฌํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
-
E
- ๋ช ์์ (Explicit):- ์ํ๋ ๊ฒ๊ณผ ์ํ์ง ์๋ ๊ฒ์ ์ ํํ ๋ช ์ํ์ธ์.
- ์ค์ํ ๊ฒ์ด ์๋ค๋ฉด ์์ธํ ์ค๋ช ํ์ธ์.
- ๊ฐ๋ฅํ๋ค๋ฉด ํ์์ด๋ ๋ด์ฉ์ ์์๋ฅผ ์ ๊ณตํ์ธ์.
- ๋ชจ๋ธ์ ๋ฐฉ๋ํ ์ง์์ ๊ฐ์ง๊ณ ์์ง๋ง ์ธ๋ถ์ฌํญ์ ๋ํ ๋น์ ์ ๋ง์์ ์ฝ์ง๋ ๋ชปํฉ๋๋ค. ์๋ฅผ ๋ค์ด:
- Bad Case: โ๊ฐ์ ๋ํด ์๋ ค์ค.โ (๋๋ฌด ๊ฐ๋ฐฉ์ ์.)
- Good Case: โ๊ณจ๋ ๋ฆฌํธ๋ฆฌ๋ฒ์ ๋ํ 5๊ฐ์ง ๋ ํนํ ์ฌ์ค์ ๋ถ๋ฆฟ ํฌ์ธํธ๋ก ๋์ดํ์ธ์.โ
- ๋ง์ฐฌ๊ฐ์ง๋ก ์ํ๋ ์ถ๋ ฅ ์คํ์ผ์ด ์๋ค๋ฉด ๋ช
์ํ์ธ
(์: โJSON ํ์์ผ๋ก ์๋ตโ ๋๋ โ์บ์ฃผ์ผํ ํค ์ฌ์ฉโ). - AI๋ฅผ ์ด๋ณด์์ฒ๋ผ ์ทจ๊ธํ์ธ์: ์๋ฌด๊ฒ๋ ๋น์ฐํ๋ค๊ณ ๊ฐ์ ํ์ง ๋ง์ธ์.
-
A
- ์ ์์ (Adaptive):- ์ฒซ ๋ฒ์งธ ๋ต๋ณ์ด ์๋ฒฝํ์ง ์๋ค๋ฉด ์์ฃผํ์ง ๋ง์ธ์.
- ํ๋กฌํํธ๋ ๋ฐ๋ณต์ ์ผ๋ก ๊ฐ์ ๋ ์ ์์ต๋๋ค. (๋ง ๋ฉํฐํด!!)
- Lovable์ AI(๋ฐ ์ผ๋ฐ์ ์ธ LLM)์ ํฐ ์ฅ์ ์ ๋ํํ ์ ์๋ค๋ ๊ฒ์ ๋๋ค.
- ์ด๊ธฐ ์ถ๋ ฅ์ด ๋ชฉํ๋ฅผ ๋์ณค๋ค๋ฉด ์ ๊ทผ๋ฒ์ ์ ์์ํค์ธ์:
- ํ์ ํ๋กฌํํธ์์
์ง์์ฌํญ์ ๋ช ํํ
ํ๊ฑฐ๋์ค๋ฅ๋ฅผ ์ง์
ํ์ธ์. - ์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ด ์ค๋ฅ๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.:
- ์ง๊ธ ์์ฑ๋ ๋ฒ์ ์ ์ ๊ณตํ ์๋ฃจ์ ์ ์ธ์ฆ ๋จ๊ณ๊ฐ ๋น ์ ธ์์ต๋๋ค. (์ค๋ฅ ์ง์ )
- ์ฝ๋์ ์ฌ์ฉ์ ์ธ์ฆ์ ํฌํจํด์ฃผ์ธ์. (์ง์ ๋ช ํ)
- ํ์ ํ๋กฌํํธ์์
- ๋ฐ๋ณต์ ํตํด ๋ชจ๋ธ์ ๋ ๋์ ๊ฒฐ๊ณผ๋ก ์๋ดํ ์ ์์ต๋๋ค.
- ์ฌ์ง์ด AI์๊ฒ ํ๋กฌํํธ ์์ฒด๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฌผ์ด๋ณผ ์๋ ์์ต๋๋ค
(์ด๋ ๋ฉํ ํ๋กฌํํ ์ผ๋ก, ๋์ค์ ๋ค๋ฃฐ ์์ ).
(์ฐธ๊ณ ) ๋ฉํ(Meta-)์ด๋?
- โ๋ฉํ(meta-)โ๋ผ๋ ์ ๋์ฌ๋ ์๋ ๊ทธ ์์ฒด๋ฅผ ๋์ด์์, ๋ ๋์ ์ฐจ์์์ ๋ค๋ฃจ๋ ๊ฒ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
- ์ฒ ํ, ์ธ์ดํ, ์ปดํจํฐ ๊ณผํ ๋ฑ ์ฌ๋ฌ ๋ถ์ผ์์ ์ฐ์ด๋๋ฐ, ๊ณตํต์ ์ผ๋ก๋ โ๋์์ ๋ํ ๋์โ, ์ฆ ์๊ธฐ ์์ ์ ๋ฐ๋ผ๋ณด๋ ๊ด์ ์ ๋ํ๋ ๋๋ค.
- ๋ ๋ฉํ๋ ์ธ์ ์ฐ์์๊น์? ์๋ฅผ ๋ค์ด:
- ๋ฉํ-๋ฐ์ดํฐ (meta-data)
- ๊ธฐ๋ณธ ๋์: ๋ฐ์ดํฐ(์ ๋ณด ๊ทธ ์์ฒด)
- ๋ฉํ ์๋ฏธ: ๋ฐ์ดํฐ์ ๋ํ ๋ฐ์ดํฐ(์์ฑ, ์ค๋ช , ๋ถ๊ฐ ์ ๋ณด)
- ์์: ์ฌ์ง ํ์ผ์ด ๋ฐ์ดํฐ๋ผ๋ฉด, ์ดฌ์ ์๊ฐยท์์น(GPS)ยทํด์๋ยทํ์ผ ํฌ๊ธฐ ๊ฐ์ ์ ๋ณด๊ฐ ๋ฉํ๋ฐ์ดํฐ
- ๋ฉํ-์ธ์ง (metacognition)
- ๊ธฐ๋ณธ ๋์: ์ธ์ง(์๊ฐํ๊ณ ์๋ ํ์)
- ๋ฉํ ์๋ฏธ: ์๊ฐ์ ๋ํ ์๊ฐ(์๊ธฐ ๊ฐ๊ดํ, ์๊ธฐ ์ ๊ฒ)
- ์์: โ๋ ์์ ์ ์๋ผโ์ ๊ฐ์ ๋ฉํ์ธ์ง(์๊ธฐ ์ฑ์ฐฐ)
- ๋ฉํ-ํ์ต (meta-learning)
- ๊ธฐ๋ณธ ๋์: ํ์ต(์ง์์ ๋ฐฐ์ฐ๋ ํ์)
- ๋ฉํ ์๋ฏธ: ํ์ต์ ๋ํ ํ์ต(ํ์ต ๋ฐฉ๋ฒ ์์ฒด๋ฅผ ๋ฐฐ์ฐ๊ณ ๊ฐ์ )
- ์์: โ์๊ฐ ์๋ฃ๋ฅผ ๋ณด๋ฉด ๋ ์ ์ธ์ด๋คโ๋ผ๋ ๋ณธ์ธ๋ง์ ํ์ต ์ ๋ต์ ๋ฐฐ์ฐ๋ ๊ฒ์ด ๋ฉํํ์ต
(์ฐธ๊ณ ) ๊ทธ๋ ๋ค๋ฉด ๋ฉํ-ํ๋กฌํํ ์ด๋?
- ๋ฉํ ํ๋กฌํํ (Meta-Prompting)์ ๋ง ๊ทธ๋๋ก โํ๋กฌํํธ ์์ฒด๋ฅผ ๋ค๋ฃจ๋ ํ๋กฌํํธโ๋ฅผ ์๋ฏธํฉ๋๋ค.
- aka, ํ๋กฌํํ ์ ์ํ ํ๋กฌํํ
- ๋ณดํต LLM์๊ฒ โ์ด ์์ ์ ํด์คโ๋ผ๊ณ ์ง์ ์ง์ํ๋ ๋์ , โ๋ด๊ฐ ๋ง๋ ํ๋กฌํํธ๋ฅผ ๋ ํจ๊ณผ์ ์ด๊ฒ ๊ณ ์ณ์คโ ๋๋ โ์ด ๋ฌธ์ ์ ๋ง๋ ์ต์ ์ ํ๋กฌํํธ๋ฅผ ์์ฑํด์คโ๋ผ๊ณ ์์ฒญํ๋ ๋ฐฉ์์ ๋๋ค.
- ์ผ๋ฐ ํ๋กฌํํ : ๋ชจ๋ธ์ ์ง์ ํน์ ์์ ์ ์ง์ โ โ์ด ๊ธ์ ์์ฝํด์ค.โ
- ๋ฉํ ํ๋กฌํํ : ํ๋กฌํํธ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ์ง์ โ โ๋ด๊ฐ ์ค ๊ธ์ ์์ฝํ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ํ๋กฌํํธ๋ฅผ ์์ฑํด์ค.โ
- ์ฆ, ํ๋กฌํํธ ์์ง๋์ด๋ง์ ์ฌ๋์ด ์ง์ ํ๋ ๊ฒ ์๋๋ผ, AI์๊ฒ ํ๋กฌํํธ ์์ง๋์ด ์ญํ ์ ๋งก๊ธฐ๋ ๊ฑฐ์ฃ .
R
- ์ฑ์ฐฐ์ (Reflective):- ๊ฐ AI ์ํธ์์ฉ ํ์ ๋ฌด์์ด ํจ๊ณผ์ ์ด์๊ณ ๋ฌด์์ด ๊ทธ๋ ์ง ์์๋์ง ๊ฒํ ํ๋ ์๊ฐ์ ๊ฐ์ง์ธ์.
- ์ด๋ ๋ชจ๋ธ๋ณด๋ค๋ ๋น์ (you)์ ๊ดํ ๊ฒ์ ๋๋ค - ํ๋กฌํํธ ์์ง๋์ด๋ก์ ์ด๋ค ํ๋กฌํํธ ํํ์ด ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์๊ณ ์ด๋ค ๊ฒ์ด ํผ๋์ ์ด๋ํ๋์ง ์ฃผ๋ชฉํ์ธ์.
- ๋ณต์กํ ์ธ์
ํ์๋ AI์๊ฒ ์ต์ข
์๋ฃจ์
์ด๋ ์ถ๋ก ์ ์์ฝํ๋๋ก ์์ฒญํ ์๋ ์์ต๋๋ค.
(์์์๋ ์ด์ง ์ธ๊ธ์ ํ์ง๋ง, ๋ค์ ๋ฉํ ํ๋กฌํํ ์ฑํฐ์์ ๋ ผ์ํ ์์ ) - ์ฑ์ฐฐ์ ์ด ๋๋ ๊ฒ์ ๋ฏธ๋์ ๋ ๋์ ํ๋กฌํํธ๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ, AI ์ํต์์ ์ง์์ ์ธ ๊ฐ์ ์ ์ฌ์ดํด์ ๊ตฌ์ถํฉ๋๋ค.
ํ๋กฌํํธ๋ฅผ ๊ฐ๋ฐํ ๋ ์ด๋ฌํ CLEAR: Concise, Logical, Explicit, Adaptive, Reflective ์์น๋ค์ ์ผ๋์ ๋์ธ์.
๋ค์์ผ๋ก๋ ๊ธฐ๋ณธ๋ถํฐ ๊ณ ๊ธ๊น์ง์ ํน์ ํ๋กฌํํ
๊ธฐ๋ฒ๋ค์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ฌ๊ธฐ์๋ ํ๋กฌํํธ ๊ตฌ์กฐํ ๋ฐฉ๋ฒ๊ณผ AI๋ฅผ ํ๋ ฅ์๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ด ํฌํจ๋ฉ๋๋ค.
ํ๋กฌํํ ์ ๋ค ๋จ๊ณ
ํจ๊ณผ์ ์ธ ํ๋กฌํํ ์ ์ฐ์ต์ ํตํด ์ฑ์ฅํ๋ ๊ธฐ์ ์ ๋๋ค.
์ฌ๊ธฐ์๋ ๊ตฌ์กฐํ๋ โTraining Wheelsโ(์ดํ, ๋ณด์กฐ๋ฐํด)๋ถํฐ ๊ณ ๊ธ ๋ฉํ ๊ธฐ๋ฒ๊น์ง ํ๋กฌํํ ์๋ จ๋์ ๋ค ๋จ๊ณ๋ฅผ ๊ฐ์๋ก ์ ์ํฉ๋๋ค. ๊ฐ ๋จ๊ณ๋ ๊ณ ์ ํ USE CASE๊ฐ ์์ต๋๋ค - ํ์์ ๋ฐ๋ผ ์กฐํฉํ์ธ์:
1. ๊ตฌ์กฐํ๋ โ๋ณด์กฐ๋ฐํดโ ํ๋กฌํํ (๋ช ์์ ํ์)
์์ํ๊ฑฐ๋ ๋งค์ฐ ๋ณต์กํ ์์ ์ ๋ค๋ฃฐ ๋๋ ํ๋กฌํํธ์ ๋ผ๋ฒจ์ด ๋ถ์ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ๋์์ด ๋ฉ๋๋ค. ์ด๋ ํ์ํ ๋ชจ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋๋ก ๋ณด์ฅํ๋ ๋ณด์กฐ๋ฐํด ์ญํ ์ ํฉ๋๋ค.
๐ฒ ์ โ๋ณด์กฐ๋ฐํดโ์ผ๊น?
โ๋ณด์กฐ๋ฐํด ํ๋กฌํํ โ์ด๋ผ๋ ๋ณ์นญ์ ์ด๋ณด์๊ฐ ์์ ๊ฑฐ๋ฅผ ํ ๋ ๋ฌ์์ฃผ๋ ์์ ๋ฐํด์์ ๋ฐ์จ ๋ง์ ๋๋ค.
- ๋ณด์กฐ๋ฐํด๋ ๊ท ํ์ ์ก์์ฃผ์ด ๋์ด์ง์ง ์๋๋ก ๋์ง๋ง, ๊ฒฐ๊ตญ ๋ชฉํ๋ ๋ณด์กฐ๋ฐํด๋ฅผ ๋ผ๊ณ ์์ ๋กญ๊ฒ ํ๋ ๊ฒ์ ๋๋ค. ๊ตฌ์กฐํ๋ ํ๋กฌํํ ๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
- ์ฒ์์๋ ๋งฅ๋ฝ(Context), ์์ (Task), ๊ฐ์ด๋๋ผ์ธ(Guidelines), ์ ์ฝ์กฐ๊ฑด(Constraints) ๊ฐ์ ๋ผ๋ฒจ์ ๋ถ์ฌ AI์๊ฒ ๋ช ํํ ๊ธธ์ ์ ์ํฉ๋๋ค.
- ์ด๋ ๊ฒ ํ๋ฉด AI๊ฐ ์๋ฑํ ๊ธธ๋ก ์๋ ๊ฑธ ๋ง๊ณ , ์ํ๋ ๋ฐฉํฅ์ผ๋ก โ๊ท ํ ์กํโ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
Lovable์์ ๊ฒ์ฆ๋ ํ์์ ํ๋กฌํํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ ์น์ ์ผ๋ก ๋๋๋ ๊ฒ์ ๋๋ค:
- Context: AI๋ฅผ ์ํ ๋ฐฐ๊ฒฝ์ด๋ ์ญํ ์ค์ .
(์: โ๋น์ ์ ์ธ๊ณ์ ์์ค์ Lovable AI ์ฝ๋ฉ ์ด์์คํดํธ์ ๋๋ค.โ) - Task: ๋ฌ์ฑํ๊ณ ์ ํ๋ ๊ตฌ์ฒด์ ์ธ ๋ชฉํ.
(์: โ์ฌ์ฉ์ ๋ก๊ทธ์ธ๊ณผ ์ค์๊ฐ ๋๊ธฐํ๊ฐ ์๋ ํ์คํ ํ ์ผ ๋ชฉ๋ก ์ฑ์ ๊ตฌ์ถํ์ธ์.โ) - Guidelines: ์ ํธํ๋ ์ ๊ทผ๋ฒ์ด๋ ์คํ์ผ.
(์: โํ๋ก ํธ์๋๋ React, ์คํ์ผ๋ง์ Tailwind, ์ธ์ฆ๊ณผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ Supabase๋ฅผ ์ฌ์ฉํ์ธ์.โ) - Constraints: ์๊ฒฉํ ์ ํ์ฌํญ์ด๋ ๊ธ์ง์ฌํญ.
(์: โ์ ๋ฃ API๋ ์ฌ์ฉํ์ง ๋ง์ธ์. ์ฑ์ ๋ชจ๋ฐ์ผ๊ณผ ๋ฐ์คํฌํฑ์์ ์๋ํด์ผ ํฉ๋๋ค.โ)
๊ฐ ๋ถ๋ถ์ ๋ช ํํ ๋ผ๋ฒจ๋งํจ์ผ๋ก์จ ์คํด์ ์ฌ์ง๋ฅผ ๊ฑฐ์ ๋จ๊ธฐ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ํ๋กฌํํธ๋ ๋ค์๊ณผ ๊ฐ์ ์ ์์ต๋๋ค:
1
2
3
4
5
# ํ๊ธ ํ๋กฌํํธ
Context: ๋น์ ์ Lovable์ ์ฌ์ฉํ๋ ์ ๋ฌธ ํ์คํ ๊ฐ๋ฐ์์
๋๋ค.
Task: Supabase๋ฅผ ์ฌ์ฉํ์ฌ React์์ ์์ ํ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ์์ฑํ์ธ์(์ด๋ฉ์ผ/๋น๋ฐ๋ฒํธ ์ธ์ฆ).
Guidelines: UI๋ ๋ฏธ๋๋ฉํด์ผ ํ๋ฉฐ Tailwind CSS ๊ท์น์ ๋ฐ๋ผ์ผ ํฉ๋๋ค. ๊ฐ ๋จ๊ณ์ ๋ํ ๋ช
ํํ ์ฝ๋ ์ฃผ์์ ์ ๊ณตํ์ธ์.
Constraints: `LoginPage` ์ปดํฌ๋ํธ๋ง ์์ ํ๊ณ ๋ค๋ฅธ ํ์ด์ง๋ ๋ณ๊ฒฝํ์ง ๋ง์ธ์. ์ต์ข
์ถ๋ ฅ์ Lovable ์๋ํฐ์์ ์๋ํ๋ ํ์ด์ง์ฌ์ผ ํฉ๋๋ค.
1
2
3
4
5
# ์์ด ํ๋กฌํํธ
Context: You are an expert full-stack developer using Lovable.
Task: Create a secure login page in React using Supabase (email/password auth).
Guidelines: The UI should be minimalistic, and follow Tailwind CSS conventions. Provide clear code comments for each step.
Constraints: Only modify the LoginPage component; do not change other pages. Ensure the final output is a working page in the Lovable editor.
์ง์ ์คํํ ์ด๋ฏธ์ง - 1๋จ๊ณ
์ด ์์ค์ ์ธ๋ถ์ฌํญ์ AI๋ฅผ ๋จ๊ณ๋ณ๋ก ์๋ดํฉ๋๋ค. ๋ณด์กฐ๋ฐํด ํ๋กฌํํ ์ ์ด๋ณด์๋ ๋ณต์กํ ๋ค์ค ๋ถ๋ถ ์์ (multi-part tasks)์ ํ์ํฉ๋๋ค - ์ ํํ ๋ฌด์์ด ํ์ํ์ง ์๊ฐํ๋๋ก ๊ฐ์ ํ๊ณ , ์์ฒญ์ ๊ตฌ์กฐํํ์ฌ ๋ชจ๋ธ์ ๋์์ค๋๋ค.
2. ๋ํํ ํ๋กฌํํ (๋ณด์กฐ๋ฐํด ์์)
์ต์ํด์ง๋ฉด ํญ์ ๊ทธ๋ ๊ฒ ์๊ฒฉํ ๊ตฌ์กฐ๊ฐ ํ์ํ์ง ์์ต๋๋ค. ๋ํํ ํ๋กฌํํ ์ ์ฌ์ ํ ๋ช ํ์ฑ๊ณผ ์์ ์ฑ์ ์ ์งํ๋ฉด์ ์ ์์์ฒ๋ผ ๊ณต์์ ์ธ ๋ผ๋ฒจ ์์ด ๋๋ฃ์๊ฒ ์์ ์ ์ค๋ช ํ๋ ๊ฒ์ฒ๋ผ AI์๊ฒ ๋ ์์ฐ์ค๋ฝ๊ฒ ์์ฑํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด:
1
2
3
4
5
# ํ๊ธ ํ๋กฌํํธ
1. ํ๋กํ ์ฌ์ง์ ์
๋ก๋ํ๋ ๊ธฐ๋ฅ์ ๊ตฌ์ถํด๋ด
์๋ค.
2. ์ด๋ฏธ์ง ํ์ผ ์
๋ ฅ๊ณผ ์ ์ถ ๋ฒํผ์ด ์๋ ์์์ด ํฌํจ๋์ด์ผ ํฉ๋๋ค.
3. ์ ์ถ๋๋ฉด ์ด๋ฏธ์ง๋ฅผ Supabase storage์ ์ ์ฅํ๊ณ ์ฌ์ฉ์ ํ๋กํ์ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค.
4. ์ด์ ํ์ํ React ์ปดํฌ๋ํธ์ ๋ฐฑ์๋ ํจ์๋ฅผ ์์ฑํด์ฃผ์๊ณ , ์ค๋ฅ(ํ์ผ์ด ๋๋ฌด ํฐ ๊ฒฝ์ฐ ๋ฑ)๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ๋๋ก ํด์ฃผ์ธ์.
1
2
3
4
5
# ์์ด ํ๋กฌํํธ
1. Letโs build a feature to upload a profile picture.
2. It should include a form with an image file input and a submit button.
3. When submitted, it should store the image in Supabase storage and update the user profile.
4. Please write the necessary React component and any backend function needed for this, and ensure to handle errors (like file too large) gracefully.
์ง์ ์คํํ ์ด๋ฏธ์ง - 2๋จ๊ณ
์ด๋ ์์ ๋ณธ 1๋จ๊ณ๋ณด๋ค ์๋์ ์ผ๋ก ์์ ๋ก์ด ํ์์ ํ๋กฌํํธ์ด์ง๋ง, ์ฌ์ ํ ์๊ตฌ์ฌํญ์ ๋ ผ๋ฆฌ์ ์์์ ๋ฐ๋ผ ๋ช ํํ ์ ์ํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
- ๋ํํ ํ๋กฌํํธ๋ ์ค์ํ ์ธ๋ถ์ฌํญ์ ๋น ๋จ๋ฆฌ์ง ์์ ๊ฒ์ด๋ผ๊ณ ์ ๋ขฐํ ๋ ํจ๊ณผ์ ์ผ๋ก ์๋ํฉ๋๋ค.
- ํนํ ๊ฒฐ๊ณผ๋ฅผ ์ฌ๋ฌ ๋ฒ ์์ ยท๋ฐ๋ณตํ๋ ๊ณผ์ ์์๋ ์ํธ์์ฉ์ ๋ณด๋ค ์์ฐ์ค๋ฝ๊ฒ ์ด์ด๊ฐ ์ ์์ต๋๋ค.
์ด ์คํ์ผ์ ๋น ๋ฅธ ์์ ์ ํ๊ฑฐ๋, ์ด๋ฏธ AI๊ฐ ํ์ํ ๋งฅ๋ฝ์ ์ถฉ๋ถํ ์ดํดํ๊ณ ์์ ๋ ์ ์ฉํฉ๋๋ค. ๋ํํ ์คํ์ผ์ด๋ผ๋ ์์ฒญ ๋ด์ฉ์ ๋จ๋ฝ์ด๋ ๋ถ๋ฆฟ ํฌ์ธํธ๋ก ๋๋์ด ๊ตฌ์กฐ๊ฐ์ ํ๋ด๋ผ ์ ์์ผ๋ฉฐ, ๊ถ๊ทน์ ์ธ ๋ชฉํ๋ ๋ช ํํ ์ํต์ด๋ผ๋ ์ ์์ ๋์ผํฉ๋๋ค.
3. ๋ฉํ ํ๋กฌํํ (AI ์ง์ ํ๋กฌํํธ ๊ฐ์ )
๋ฉํ ํ๋กฌํํ ์ ๋ง ๊ทธ๋๋ก, โAI์๊ฒ ํ๋กฌํํธ๋ฅผ ๋ ๋ค๋ฌ๊ฑฐ๋ ๊ณํ์ ์ธ์ฐ๋ ๋ฐ ๋์์ ์์ฒญํ๋ ๊ณ ๊ธ ๊ธฐ๋ฒโ์ ๋๋ค. Lovable์ AI(ChatGPT์ ๊ฐ์)๋ ์ธ์ด๋ฅผ ๋ถ์ํ๊ณ ์ถ๋ก ํ ์ ์๊ธฐ ๋๋ฌธ์, ์ง์๋ฌธ์ ๋ ์ ๊ตํ๊ฒ ๊ฐ์ ํ๋ ๋ฐ ํ์ฉํ ์ ์์ต๋๋ค.
๐ค ๋ฉํ ํ๋กฌํํ ์ ์ ์ - ์์ ์๊ฐํ <ํต์ฌ ํ๋กฌํํ ์์น: C.L.E.A.R. ํ๋ ์์ํฌ> ์ฑํฐ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค
์ด ๋ฐฉ๋ฒ์ ํนํ ์ํ๋ ๊ฒฐ๊ณผ์ ๋ค๋ฅธ ์ถ๋ ฅ์ ๋ฐ์์ ๋ ์ ์ฉํฉ๋๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ๋ ๋๊ฐ ํ๋กฌํํธ๊ฐ ๋ชจํธํ๊ฑฐ๋ ๋ถ์ถฉ๋ถํ๋ค๋ ์ ํธ์ผ ์ ์์ต๋๋ค.
์ด๋ด ๋๋, ๋ค์๊ณผ ๊ฐ์ด ์์ฒญํ์ฌ ํ๋กฌํํธ ๊ฐ์ ์ ์๋ํด๋ณผ ์ ์์ต๋๋ค.:
1
2
3
4
5
6
# ๋ฐฉ๋ฒ - 1
๋ด ๋ง์ง๋ง ํ๋กฌํํธ๋ฅผ ๊ฒํ ํ๊ณ ๋ชจํธํ๊ฑฐ๋ ๋น ์ง ๋ถ๋ถ์ด ์๋์ง ํ์ธํด ์ฃผ์ธ์.
๋ ๊ฐ๊ฒฐํ๊ณ ์ ํํ๊ฒ ๋ค์ ์ฐ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ๋์?
Review my last prompt and identify any ambiguity or missing info.
How can I rewrite it to be more concise and precise?
1
2
3
4
5
6
# ๋ฐฉ๋ฒ - 2
์ด ํ๋กฌํํธ๋ฅผ ๋ ๊ตฌ์ฒด์ ์ด๊ณ ์์ธํ๊ฒ ๋ค์ ์์ฑํด ์ฃผ์ธ์:
โSupabase๋ฅผ ์ฌ์ฉํด React์์ ์ญํ ๊ธฐ๋ฐ ์ธ์ฆ์ ๋ณด์ฅํ๋ ์์ ํ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๋ง๋ค์ด๋ผ.โ
Rewrite this prompt to be more specific and detailed:
โCreate a secure login page in React using Supabase, ensuring role-based authentication.
AI๋ ์ด๋ฌํ ์์ฒญ์ ๋ฐํ์ผ๋ก ๋ ๊ตฌ์กฐํ๋๊ณ ๊ตฌ์ฒด์ ์ธ ๋ฒ์ ์ ์ ์ํด ์ค ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ์๋ ํ๋กฌํํธ์์ ๋ถ๋ถ๋ช ํ๋ ๋ถ๋ถ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ณธ์ง์ ์ผ๋ก AI๋ฅผ ํ๋กฌํํธ ํธ์ง์๋ก ํ์ฉํ๋ ์ ์ ๋๋ค.
Lovable์์๋ ์ด๋ฅผ Chat mode์์ ์์ ํ๊ฒ ์๋ํ ์ ์์ต๋๋ค. (ํ๋ก์ ํธ ํ์ผ์ ์ง์ ์์ ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋๋ค - ์ฑํ /ํ ์ ๋ชฉ์ ์ ๋ชจ๋)
๋ฉํ ํ๋กฌํํ
์ AI๋ฅผ ๋จ์ํ ์๋ต์๊ฐ ์๋๋ผ ํจ๊ป ๋ ๋์ ์ง๋ฌธ์ ๋ง๋ค์ด๊ฐ๋ ํ๋ ฅ์๋ก ๋ฐ๊ฟ์ค๋๋ค.
- ๋๋ถ์ ์์ ์ด ๋ฏธ์ฒ ๊ณ ๋ คํ์ง ๋ชปํ ๊ฐ์ ์ ์ ๋ฐ๊ฒฌํ ์ ์์ผ๋ฉฐ, ์ด๋ ํ๋กฌํํธ ์์ง๋์ด๋ง ๋ฅ๋ ฅ์ ๋น ๋ฅด๊ฒ ์ฑ์ฅ์ํค๋ ๊ฐ๋ ฅํ ๋ฐฉ๋ฒ์ ๋๋ค.
4. ์ญ ๋ฉํ ํ๋กฌํํ (๋ฌธ์ํ ๋๊ตฌ๋ก์์ AI)
์ญ ๋ฉํ ํ๋กฌํํ (Reverse meta prompting)์ ์ฐ๋ฆฌ๊ฐ ์ฑํ /์ฝ๋ฉ ๋ฑ์ ์์ ์ ๋๋ธ ๋ค, AI์๊ฒ ๊ทธ ๊ณผ์ ์ ์์ฝํ๊ฑฐ๋ ๋ฌธ์ํํ๋๋ก ํ์ฌ ๋์ค์ ํ์ตํ๊ฑฐ๋ ์ฌ์ฌ์ฉํ ์ ์๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์ฝ๊ฒ ๋งํด, AI์๊ฒ โ๋ฐฉ๊ธ ๊ณผ์ ์ ๋์ง๊ณ ๋ค์๋ฒ์ ์ํ ์ค๋ช ์ด๋ ํ๋กฌํํธ๋ฅผ ๋ง๋ค์ด ๋ฌ๋ผโ๋ผ๊ณ ์์ฒญํ๋ ๊ฒ์ด์ฃ . ์ด๋ ํนํ
๋๋ฒ๊น
๊ณผ์ง์ ์ถ์
์ ๊ฐ๋ ฅํ ํจ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
์๋ฅผ ๋ค์ด Lovable์์ ๊น๋ค๋ก์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ํ ์ด๋ ๊ฒ ์์ฒญํ ์ ์์ต๋๋ค:
์์ฒญ ์์
1
2
์ง๊ธ๊น์ง ์ฐ๋ฆฌ๊ฐ JWT(Json Web Token) ์ธ์ฆ์ ์ค์ ํ๋ฉด์ ๊ฒช์ ์ค๋ฅ๋ฅผ ์์ฝํ๊ณ , ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์ค๋ช
ํด ์ฃผ์ธ์.
๊ทธ๋ฆฌ๊ณ ๊ฐ์ ์ค์๋ฅผ ํผํ ์ ์๋๋ก, ์์ผ๋ก ์ฌ์ฉํ ์ ์๋ ํ๋กฌํํธ๋ฅผ ์์ฑํด ์ฃผ์ธ์.
AI๋ ๋ฌธ์ ์ ํด๊ฒฐ ๊ณผ์ ์ ๊ฐ๊ฒฐํ ์ ๋ฆฌํ ๋ค, โContext: building authโฆ Task: avoid X error by doing Yโฆโ (Context: ์ธ์ฆ ๊ตฌ์ถโฆ Task: Y๋ฅผ ์ํํ์ฌ X ์ค๋ฅ ๋ฐฉ์งโฆ) ์ ๊ฐ์ ํ ํ๋ฆฟ ํ๋กฌํํธ๋ฅผ ์ ์ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋กฌํํธ์ ๊ตํ์ ๊ฐ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์์ ๋๋ค.
์ถ๋ ฅ ์์
1
2
3
4
5
6
Context: JWT ๊ธฐ๋ฐ ์ธ์ฆ์ React + Supabase๋ก ๊ตฌ์ถ
Task:
- .env์ ์ฌ๋ฐ๋ฅธ JWT ์ํฌ๋ฆฟ ํค ์ค์
- Supabase auth ๋ชจ๋์ ์ด๊ธฐํํ์ฌ ๋ก๊ทธ์ธ ์์ฒญ ์ ์ํ
Constraint:
- ๋ณด์ ํ๊ฒฝ๋ณ์๋ git์ ๋
ธ์ถ๋์ง ์๋๋ก ํ ๊ฒ
์ด ์ ๊ทผ๋ฒ์ Lovable์์ ํนํ ๋น์ ๋ฐํฉ๋๋ค. ๋ค์์ ๋น์ทํ ์์ ์ ๋ง์ฃผํ์ ๋, ์ด๋ฏธ ๊ฒ์ฆ๋ ํ๋กฌํํธ๋ฅผ ๊ทธ๋๋ก ํ์ฉํ๊ฑฐ๋ ์ต์ํ ๋ฐ๋ผ๊ฐ ์ ์๋ ๋ช ํํ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ๊ฐ๊ฒ ๋๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ง ๊ทธ๋๋ก ์ค๋ฌด์์ ๊ธ ๊ฐ์ ์์ฐ์ด ๋๋ ์ ์ด์ฃ .
๋ ๋ค๋ฅธ ์๋ก, API ํธ์ถ์ด ์คํจํ ์ด์ ๋ฅผ ํ ์๊ฐ ๋์ ๋๋ฒ๊น ํ๋ค๊ณ ํฉ์๋ค.
์์ฒญ ์์
1
API ํธ์ถ์ด ์คํจํ ์ด์ ์ ํด๊ฒฐ ๊ณผ์ ์ ์ ๋ฆฌํ๊ณ , ์์ผ๋ก ๊ฐ์ ์ค์๋ฅผ ๋ฐฉ์งํ ์ ์๋ ํ๋กฌํํธ๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์งํ AI์๊ฒ ๊ทธ ๊ณผ์ ์ ๋ฌธ์ํํ๋๋ก ์์ฒญํ๋ฉด, ์์ ์ ์ดํด๋ฅผ ๊ฐํํ๋ ๋์์ Knowledge Base๋ ํฅํ ํ๋ก์ ํธ์ ๋ฐ๋ก ํ์ฉํ ์๋ฃ๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค. ๋๋ถ์ ๊ฐ์ ์ค๋ฅ๋ฅผ ๋ํ์ดํ์ง ์๊ฒ ๋๋ ๊ฒ์ด์ฃ .
์ถ๋ ฅ ์์
1
2
3
4
5
6
Context: ์ธ๋ถ REST API ํธ์ถ
Task:
- ์์ฒญ ์ ๋ฐ๋์ "Content-Type": "application/json" ํค๋ ํฌํจ
- ์ต์ API ํค๋ฅผ ํ๊ฒฝ๋ณ์์ ์ ์ฅ ํ ์ฐธ์กฐ
Constraint:
- ํค๋ ์ ๋ ์ฝ๋์ ํ๋์ฝ๋ฉํ์ง ์์ ๊ฒ
๊ณ ๊ธ ํ๋กฌํํ ๊ธฐ๋ฒ
๊ธฐ๋ณธ ์ฌํญ์ ์ตํ๋ค๋ฉด, ์ด์ Lovable์ AI๋ฅผ ์ต๋ํ ํ์ฉํ๊ธฐ ์ํ ๋ ๊ณ ๊ธ ์ ๋ต์ ํ์ฉํ ๋์ ๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฒ๋ค์ ๋ณต์กํ ์๋๋ฆฌ์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ , (ํ๊ฐ๊ณผ ๊ฐ์) ์ค๋ฅ๋ฅผ ์ค์ด๋ฉฐ, AI์ ์ถ๋ ฅ์ ํ์์ ๋ง๊ฒ ์กฐ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Zero-Shot vs. Few-Shot ํ๋กฌํํ
-
Zero-Shot ํ๋กฌํํ ์ ์์ ์์ด ๋ชจ๋ธ์๊ฒ ์์ ์ ์ํํ๋๋ก ์์ฒญํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ชจ๋ธ์ ์ผ๋ฐ์ ์ธ ํ๋ จ์ ์์กดํ์ฌ ๋ฌด์์ ํด์ผ ํ๋์ง ์๋๋ก ํฉ๋๋ค.
- ์ด๋ ๋๋ถ๋ถ์ ํ๋กฌํํธ์ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค: ์์ฒญ์ ๋ช ์ํ๋ฉด AI๊ฐ ํ๋กฌํํธ์์ โ์๋โ ๊ฒ๊ณผ ์ดํดํ๋ ๊ฒ์ผ๋ก๋ถํฐ ์์ ํ ๋ต๋ณ์ ์์ฑํฉ๋๋ค.
- Zero-shot์ ํจ์จ์ ์ด๊ณ ์์ ์ด ์ผ๋ฐ์ ์ด๊ฑฐ๋ ๋ช ํํ ์ค๋ช ๋ ๊ฒฝ์ฐ ์ ์๋ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด: โ๋ค์ ๋ฌธ์ฅ์ ์คํ์ธ์ด๋ก ๋ฒ์ญํ์ธ์: โI am learning to code.โโ๋ zero-shot ํ๋กฌํํธ์ ๋๋ค - ๊ฐ๋จํ ๋ช ๋ น์ด๋ฉฐ, AI๋ ์ง์์ ์ฌ์ฉํ์ฌ ์๋ตํฉ๋๋ค(์์๊ฐ ํ์ํ์ง ์์).
-
Few-Shot ํ๋กฌํํ ์ ํ๋กฌํํธ์ ๋ช ๊ฐ์ง ์์๋ ์์ฐ์ ์ ๊ณตํ์ฌ AI์๊ฒ ์ํ๋ ํ์์ด๋ ์คํ์ผ์ ์ ํํ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
- ๋ณธ์ง์ ์ผ๋ก ํ๋กฌํํธ ์์ฒด์์ ์์๋ก ๊ฐ๋ฅด์น๋ ๊ฒ์ ๋๋ค. ์ด๋ ํน์ ํ์์ด๋ ์์ ์ด ํน์ดํ ๋ ์ถ๋ ฅ ํ์ง์ ๊ทน์ ์ผ๋ก ํฅ์์ํฌ ์ ์์ต๋๋ค.
- Few-shot ํ๋กฌํํธ์์๋ ๋ค์๊ณผ ๊ฐ์ด ๋งํ ์ ์์ต๋๋ค:
- ๋ค์ ๋ฌธ์ฅ๋ค์ ๋ฌธ๋ฒ์ ์์ ํ์ธ์:
- Input: โthe code not working goodโ โ Output: โThe code is not working well.โ
- Input: โAPI give error in loginโ โ Output: โThe API gives an error during login.โ
- Input: โuser not found in databaseโ โ Output: โ
๋ ๊ฐ์ง ์ ๋ ฅ-์ถ๋ ฅ ์์๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ AI๋ ์ธ ๋ฒ์งธ์ ๋ํด ๋น์ทํ ํจํด์ผ๋ก ๊ณ์ํ๋๋ก ์ค๋น๋ฉ๋๋ค. Few-shot ํ๋กฌํํ ์ ํน์ ์๋ต ์คํ์ผ์ด ํ์ํ ๋(์: ํน์ ํ์์ ์ฝ๋ ์ฃผ์์ด๋ ์ปค๋ฐ ๋ฉ์์ง ์์) Lovable์์ ์ ์ฉํฉ๋๋ค. ๋ ๋ง์ ํ๋กฌํํธ ํ ํฐ์ ์๋ชจํ์ง๋ง(๊ทธ ์์๋ค์ ํฌํจํ๊ธฐ ๋๋ฌธ) ์ข ์ข ๋ ์ผ๊ด๋ ๊ฒฐ๊ณผ๋ฅผ ์ฐ์ถํฉ๋๋ค.
๐ค ์ธ์ ์ด๋ค ๊ฒ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์๊น?
๊ฐ๋จํ ์์ ์ด๋ ๋ชจ๋ธ์ ๋ด์ฅ ๋ฅ๋ ฅ์ ์ ๋ขฐํ ๋๋ ๋จผ์ zero-shot์ ์๋ํ์ธ์. ๊ฒฐ๊ณผ๊ฐ ์ํ๋ ํ์์ด๋ ๊น์ด๊ฐ ์๋๋ผ๋ฉด ์์๋ฅผ ์ถ๊ฐํ์ฌ few-shot์ผ๋ก ์ ํํ์ธ์.
- ์๋ฅผ ๋ค์ด, ํจ์๋ฅผ ์์ฒญํ๋๋ฐ ์ถ๋ ฅ์ด ์ ํธํ๋ ์คํ์ผ์ ๋ฐ๋ฅด์ง ์๋๋ค๋ฉด, ์ข์ํ๋ ์คํ์ผ์ ์์ ํจ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋ค์ ํ๋กฌํํธํ์ธ์.
- Few-shot์ ๋ณต์กํ ์ถ๋ ฅ(ํ ์คํธ ์ผ์ด์ค ์์ฑ์ฒ๋ผ - ํ๋์ ์ํ ํ ์คํธ๋ฅผ ์ ๊ณตํ ๋ค์ ๋ ๋ง์ด ์์ฑํ๋๋ก ์์ฒญ)์์ ๋น๋ฉ๋๋ค.
- ์์ฝํ๋ฉด, ๋น ๋ฅธ ์ง์ ๋ต๋ณ์๋
zero-shot
, ์ ์ด๋ ์คํ์ผ์ด๋ ๋ณต์กํ ์ง์์ฌํญ์๋few-shot
.
ํ๊ฐ ๊ด๋ฆฌ ๋ฐ ์ ํ์ฑ ๋ณด์ฅ
๋ชจ๋ธ์ด ์ ํํ์ง ์์ ์ ๋ณด๋ ์ฝ๋๋ฅผ ์์ ์๊ฒ ์ ์ (์์ฒญ์)์๊ฒ ์ ๊ณตํ๋ ๊ฒ์ ์ฐ๋ฆฌ๋ AIํ๊ฐ์ด๋ผ๊ณ ํฉ๋๋ค.
Lovable๊ณผ ๊ฐ์ ์ฝ๋ฉ ํ๋ซํผ์์ ํ๊ฐ์?
AI๊ฐ ์กด์ฌํ์ง ์๋ ํจ์๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, ์กด์ฌํ์ง ์๋ API๋ฅผ ํธ์ถํ๊ฑฐ๋, ์์ฝ์์ ์ธ๋ถ์ฌํญ์ ์กฐ์ํ๋ ๊ฒ์ ์๋ฏธํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์์ ํ ์ ๊ฑฐํ ์๋ ์์ง๋ง(AI์ ํ๊ณ์), ํ๊ฐ์ ์ค์ด๋ ๋ฐฉ์์ผ๋ก ํ๋กฌํํธํ ์ ์์ต๋๋ค. (์๋ ์ฐธ๊ณ )
โ 1. ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ ๊ณต
์ ๋ต:
- AI๊ฐ ์ถ์ธกํ์ง ์๋๋ก Knowledge Base์ ํ๋ก์ ํธ ๊ด๋ จ ๋ฌธ์๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ํ๊ฐ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
์์:
-
PRD์ โ์ฑ์
Next.js
์Prisma
ORM์ ์ฌ์ฉํ๋คโ๋ฅผ ํฌํจ์ํจ ๋ค,1 2
"Prisma ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉ์ ๋ฑ๋ก API๋ฅผ ์์ฑํด์ฃผ์ธ์. ์๋๋ User ๋ชจ๋ธ ์ ์์ ๋๋ค: model User { id Int @id @default(autoincrement()) email String @unique password String }"
โ ์ด๋ ๊ฒ ํ๋ฉด AI๊ฐ ์กด์ฌํ์ง ์๋ ORM ๋ฉ์๋๋ฅผ ๋ฐ๋ช ํ์ง ์์.
โ 2. ํ๋กฌํํธ ๋ด ์ฐธ์กฐ
์ ๋ต:
- ์ค์ API ์๋ต ์์๋ฅผ ํ๋กฌํํธ์ ํฌํจ์์ผ, ํ๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
์์:
1
2
3
4
5
6
7
์๋ ์ ๊ณต๋ JSON ์๋ต์ ์ฌ์ฉํ์ฌ User ๊ฐ์ฒด๋ฅผ ํ์ฑํ๋ TypeScript ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์:
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
}
โ ์ค์ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ณด์ฌ์ค์ผ๋ก์จ AI๊ฐ ์๋ชป๋ ํ๋๋ช
(์: username
)์ ์ง์ด๋ด์ง ์์.
โ 3. ๋จ๊ณ๋ณ ์ถ๋ก ์์ฒญ
์ ๋ต:
- ์ต์ข ์ฝ๋ ์ ์ ์ ๊ทผ๋ฒ์ ์ค๋ช ํ๊ฒ ํด์, ํ๊ฐ ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์์:
1
2
Postgres์์ ํน์ ๋ ์ง ๋ฒ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ต์ข
์ฟผ๋ฆฌ๋ฅผ ์ฃผ๊ธฐ ์ ์ ์ ๊ทผ ๋ฐฉ๋ฒ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช
ํ๊ณ , ๋ถํ์คํ ์ ์ด ์๋ค๋ฉด ๋จผ์ ์ง์ด์ฃผ์ธ์.
โ AI๊ฐ ๋ง๋ฌด๊ฐ๋ด๋ก SQL์ ๋ด๋์ง ์๊ณ , WHERE date BETWEEN ...
๊ฐ์ ๋ก์ง์ ๋จผ์ ์ค๋ช
ํด์ค.
โ 4. ์ ์งํจ ์ง์
์ ๋ต:
- ์ ๋ชจ๋ฅผ ๋ ๊พธ๋ฉฐ๋ด์ง ๋ง๋ผ๊ณ ์ง์ ์ ์ผ๋ก ๋ช ์ํด์ฃผ์ด, ํ๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
์์:
1
2
๋ง์ฝ ์ ํํ ํจ์ ์๊ทธ๋์ฒ๋ฅผ ํ์ ํ์ง ๋ชปํ๋ค๋ฉด, ์์๋ก ๋ง๋ค์ง ๋ง๊ณ ์ด๋ค ๋ฌธ์๊ฐ ํ์ํ์ง ์๋ ค์ฃผ์ธ์.
์๋ชป๋ ์ฝ๋ ๋์ "ํ์ ํ์ง ๋ชปํฉ๋๋ค"๋ผ๊ณ ๋ตํด๋ ๋ฉ๋๋ค.
โ ์ด๋ ๊ฒ ํ๋ฉด AI๊ฐ โfetchUserData ํจ์๋ ์ ํํ ์กด์ฌํ๋์ง ํ์คํ์ง ์์ต๋๋ค.
(eg. API ๋ฌธ์ ํ์ธ์ด ํ์ํฉ๋๋คโ๋ผ๊ณ ๋๋ตํ ์ ์์.)
โ 5. ๋ฐ๋ณต์ ๊ฒ์ฆ
์ ๋ต:
- ๋ต๋ณ ํ ๊ฒํ ๋ฅผ ํ๋๋ก ์์ฒญํ๋ฉด, ํ๊ฐ์ ์ต์ํํ ์ ์์ต๋๋ค.
- ํ๊ฐ์ด ๋ฐ์ํ๋๋ผ๋, ์ด๋ฅผ ์ก์๋ผ ์๋ ์์ต๋๋ค.
์์:
1
2
์์์ ์์ฑํ ๋ก๊ทธ์ธ ํจ์ ์ฝ๋๊ฐ ๋ณด์ ์๊ตฌ์ฌํญ(๋น๋ฐ๋ฒํธ ํด์, SQL ์ธ์ ์
๋ฐฉ์ง)์ ์ถฉ์กฑํ๋์ง ๊ฒํ ํด ์ฃผ์ธ์.
๋ฌธ์ ๊ฐ ์์ ์ ์๋ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ค๋ช
ํด์ฃผ์ธ์.
โ AI๊ฐ ์๊ธฐ ์ถ๋ ฅ์ ๋ค์ ์ ๊ฒํ๋ฉด์ ๋ณด์ ํฌ์ธํธ๋ฅผ ์๋ ค์ค.
Lovable์์ ํ๊ฐ์ ๋ํ AI๊ฐ ์์ฒญํ์ง ์์ ํ์ผ์ด๋ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ฑฐ๋ ์๋๋์ง ์์ ์ฐฝ์์ ์์ ๋ฅผ ์ทจํ๋ ๊ฒ์ ์๋ฏธํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง, ํญ์ AI๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ ์์ฑ ํ์ธํ์ธ์.
(Always review AI-generated code for sanity.)
๋ญ๊ฐ ๋๋ฌด โ๋ง๋ฒ์ โ์ด๊ฑฐ๋ ์์์น ๋ชปํ ๊ฒ ๊ฐ๋ค๋ฉด ์๋ฌธ์ ์ ๊ธฐํ์ธ์. ์ด๋ฌํ ์ ๋ต์ผ๋ก ํ๊ฐ์ ๊ด๋ฆฌํจ์ผ๋ก์จ ํ๋ก์ ํธ์ ๋ํ ์ ์ด๋ฅผ ์ ์งํ๊ณ ์ ํ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
๋ชจ๋ธ ์ธ์ฌ์ดํธ ํ์ฉ (AI ๋๊ตฌ ์๊ธฐ)
๋ชจ๋ AI ๋ชจ๋ธ์ด ๋์ผํ๊ฒ ๋์ํ๋ ๊ฒ์ ์๋๋ฉฐ, ๊ฐ์ ๋ชจ๋ธ์ด๋ผ๋ ์ค์ ์ ๋ฐ๋ผ ์ ํ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ผ ์ ์์ต๋๋ค. ์ํ๋ ์์ค์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด, Lovable์์ ์ ๊ณตํ๋ ๋๊ตฌ๋ค์ ์ด๋ป๊ฒ ํ์ฉํ ์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
-
Chat Mode
vsDefault Mode
:
ํ์ฌ Lovable์๋ ๋ ๊ฐ์ง ์ฃผ์ ๋ชจ๋๊ฐ ์์ต๋๋ค. Chat mode(๋ํํ AI ์ด์์คํดํธ)์ Default/Editor mode(์ค์ ๋ก ์ฝ๋ ๋ณ๊ฒฝ์ ์ ์ฉ). ๊ฐ ๋ชจ๋๋ ๋ชฉ์ ์ด ๋ค๋ฅด๋ฏ๋ก ์ ์ ํ ๊ตฌ๋ถํด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.-
Chat Mode๋
๋ธ๋ ์ธ์คํ ๋ฐ
,๋์์ธ ๋ ผ์
,๋๋ฒ๊น
์ ์ ํฉํฉ๋๋ค. ์ด ๋ชจ๋์์๋ AI๊ฐ ์ง์ ์ฝ๋๋ฅผ ์์ ํ์ง ์๊ณ , ์์ด๋์ด๋ ๋ถ์์ ์์ ๋กญ๊ฒ ์ ์ํฉ๋๋ค.- ์๋ฅผ ๋ค์ด ์ค๋ฅ ๋ก๊ทธ๋ฅผ ๋ถ์ฌ๋ฃ๊ณ _โ์ด ์ค๋ฅ ๋ก๊ทธ๋ฅผ ๋ถ์ํ๊ณ ์์ธ์ด ๋ฌด์์ธ์ง ์ค๋ช ํด์คโ_๋ผ๊ณ ์์ฒญํ๋ฉด, AI๊ฐ ๊ฐ๋ฅํ ๋ฌธ์ ์์ธ์ ๋จ๊ณ๋ณ๋ก ์ค๋ช ํด ์ค ์ ์์ต๋๋ค.
-
Default Mode๋ ์ค์ ๋ก ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ํฌํ๋ก์ฐ๋ ์ด๋ ์ต๋๋ค: Chat mode์์ ์์ด๋์ด๋ฅผ ๊ตฌ์ฒดํํ๊ณ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ๋ค, ๊ณํ์ด ๋ช ํํด์ง๋ฉด Default mode๋ก ์ ํํด ๊ฐ๋จํ ํ๋กฌํํธ๋ก ๋ฐ๋ก ๊ตฌํํฉ๋๋ค. (Default mode๋ ํ๋ก์ ํธ ํ์ผ์ ์ง์ ์์ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.)
-
-
์ด๋ค ๋ชจ๋๋ฅผ ์ธ์ ์ธ์ง ์๊ณ ์์ผ๋ฉด ๊ฐ๋ฐ ํ๋ฆ์ ํจ์ฌ ํจ์จ์ ์ด๊ณ ์์ ํ๊ฒ ์ ์งํ ์ ์์ต๋๋ค.
-
ํ ํฐ ๊ธธ์ด์ ์๋ต: ์๋ต์ ๊ธธ์ด๋ฅผ ํญ์ ์์ํ์ธ์.
- ๋๋ฌด ํฐ ์ถ๋ ฅ(์: ์ ์ฒด ์ฝ๋ ๋ชจ๋)์ ํ ๋ฒ์ ์์ฒญํ๋ฉด ํ ํฐ ์ ํ ๋๋ฌธ์ ๋ต๋ณ์ด ์๋ฆฌ๊ฑฐ๋ ๋ด์ฉ์ด ๋ค์์ผ ์ ์์ต๋๋ค. => ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์์
์ ๋ ์์ ๋จ์๋ก ์ชผ๊ฐ๋ ๊ฒ ์ข์ต๋๋ค.
- ์๋ฅผ ๋ค์ด โํ ๋ฒ์ ํจ์ ํ๋์ฉ ์์ฑโ ๊ฐ์ ๋ฐฉ์์ ๋๋ค (e.g., generate code for one function at a time).
- ๋ํ, Lovable์ ์ฑํ ์ด๋ ํ๋กฌํํธ UI๋ ์ถ๋ ฅ์ด ์๋ ธ์ ๋ ๊ฒฝ๊ณ ๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ๋ ํ๋๋ฐ, ์ด๋ ๊ณง โ๋จ์ ๋ถ๋ถ์ ๋ค์ ์์ฒญํ๊ฑฐ๋ ์์ ์ ๋ถํ ํด์ผ ํ๋คโ๋ ์ ํธ๋ก ๋ณด๋ฉด ๋ฉ๋๋ค.
- ๋๋ฌด ํฐ ์ถ๋ ฅ(์: ์ ์ฒด ์ฝ๋ ๋ชจ๋)์ ํ ๋ฒ์ ์์ฒญํ๋ฉด ํ ํฐ ์ ํ ๋๋ฌธ์ ๋ต๋ณ์ด ์๋ฆฌ๊ฑฐ๋ ๋ด์ฉ์ด ๋ค์์ผ ์ ์์ต๋๋ค. => ์ด๋ฐ ๊ฒฝ์ฐ์๋ ์์
์ ๋ ์์ ๋จ์๋ก ์ชผ๊ฐ๋ ๊ฒ ์ข์ต๋๋ค.
-
ํ์ ๋ฐ ์ฝ๋ ์ ํธ์ฌํญ: AI๋ ๋ช ์๋ ํ์์ ์ ๋ฐ๋ผ๊ฐ๋๋ค.
- ์๋ฅผ ๋ค์ด โ๋งํฌ๋ค์ด ํ์์ผ๋ก ์ฝ๋ ์ถ๋ ฅํด์คโ๋ผ๋ ๊ฐ โ์ด ํ๋ก์ ํธ์ ESLint ๊ท์น์ ์ง์ผ์คโ๋ผ๊ณ ์๋ ค์ฃผ๋ฉด ๊ทธ๋๋ก ์ ์ฉํฉ๋๋ค. (eg. โoutput code in markdown formatโ or โfollow the projectโs ESLint rulesโ)
- ๋ฐ๋๋ก ์๋ฌด ๋ง๋ ํ์ง ์์ผ๋ฉด ํ๋ก์ ํธ์ ์คํ์ผ ๊ฐ์ด๋๋ฅผ AI๊ฐ ์ค์ค๋ก ์ง์ํ ์๋ ์์ต๋๋ค.
- ๋ณ์๋ช ๊ท์น์ด๋ ํน์ ์ฝ๋ ํจํด์ ์ ํธํ๋ค๋ฉด ๋ฐ๋์ ํ๋กฌํํธ์ ์ ์ด๋์ธ์.
- ์๊ฐ์ด ์ง๋๋ฉด(์ฑํ ์ด ๊ธธ์ด์ง์๋ก) AI๊ฐ ํ๋ก์ ํธ์์ ๋ฐ๋ณต๋๋ ์คํ์ผ์ ํ์ตํด ๋ชจ๋ฐฉํ์ง๋ง, ํ๋กฌํํธ์์ ๊ฐ๋ณ๊ฒ ๋ฆฌ๋ง์ธ๋ํด ์ฃผ๋ฉด ์ ๋ ฌ ์๋๊ฐ ํจ์ฌ ๋นจ๋ผ์ง๋๋ค.
์ ๋ฆฌํ์๋ฉด, AI๋ ๋งค์ฐ ๊ฐ๋ ฅํ์ง๋ง ๋ณธ์ง์ ์ผ๋ก ๋ฌธ์ ๊ทธ๋๋ก ๋ฐ์๋ค์ด๋ ๋๊ตฌ์ ๋๋ค.
์ด๋ค ๋ชจ๋์ ๋ชจ๋ธ์ ์ฐ๊ณ ์๋์ง ์ดํดํ๋ฉด์, ๊ฐ์
(๊ตฌ์กฐํ๋ ์
๋ ฅ๊ณผ ํ๋ถํ ์ปจํ
์คํธ)์ ๊ทน๋ํํ๊ณ , ์ฝ์
(๊ฑด๋ง์ฆ, ์ฅํฉํจ, ํ๊ฐ)์ ๋ฐฉ์ดํ๋ ๋ฐฉ์์ผ๋ก ํ๋กฌํํธ๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด ํต์ฌ์
๋๋ค.
์ด์ ์ด ์์น๋ค์ ํ ๋๋ก Lovable์ ๋ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๊ธฐ ์ํ ์ค์ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ถ๊ฐ ํ๋กฌํํ ํ
๋ง์ง๋ง์ผ๋ก, Lovable ํ๋ซํผ์์ ์์ ํ ๋์ ํน์ ํ๊ณผ ๊ธฐ๋ฒ๋ค์ ๋ค๋ค๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก๋ค์ ์ผ๋ฐ์ ์ธ ํ๋กฌํํธ ์์ง๋์ด๋ง ๊ฐ๋ ์ Lovable์ ๊ธฐ๋ฅ๊ณผ ๊ฒฐํฉํ์ฌ ์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ป๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๊ฒฌ๊ณ ํ Knowledge Base๋ก ์์ํ๊ธฐ
ํ๋กฌํํธ๋ฅผ ์์ฑํ๊ธฐ ์ ์ ํ๋ก์ ํธ์ Knowledge Base
(Lovable์ ํ๋ก์ ํธ ์ค์ ์์)๋ฅผ ์ค์ ํ์ธ์.
Project Requirements(PRD), ์ฌ์ฉ์ ํ๋ก์ฐ, ๊ธฐ์ ์คํ ์ธ๋ถ์ฌํญ, UI ๋์์ธ ๊ฐ์ด๋๋ผ์ธ, ๋ฐฑ์๋ ๊ตฌ์ฒด์ฌํญ์ ํฌํจํ์ธ์. ์ด๋ AI๊ฐ ํญ์ ๊ฐ๊ฒ ๋ ์ง์์ ์ธ ์ปจํ ์คํธ ์ญํ ์ ํฉ๋๋ค.
https://www.scalablepath.com/project-management/product-requirements-document-guide
์๋ฅผ ๋ค์ด, PRD์ โ๋ฒ์ ์ธ: ์์ ๋ก๊ทธ์ธ(Out of scope: social login)โ์ด ๋ช ํํ ๋์ด๋์ด ์๋ค๋ฉด, AI๊ฐ ๋ฌด์์ Google ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฐ๋ฅ์ฑ์ด ์ค์ด๋ญ๋๋ค. ์์ํ ๋ ๋ช ์์ ์ผ๋ก ํ๋กฌํํธํ ์๋ ์์ต๋๋ค:
์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ํ๋ก์ ํธ Knowledge Base๋ฅผ ์ฝ๊ณ ์ฑ์ ๋ชฉ์ ๊ณผ ์ ์ฝ์ฌํญ์ ์ดํดํ๋์ง ํ์ธํด์ฃผ์ธ์.
์ด๋ AI๊ฐ ํ๋ก์ ํธ์ ์ปจํ ์คํธ๋ฅผ ๋ด์ฌํํ๊ณ ๊ด๋ จ ์๋ ์ ์์ด๋ ํ๊ฐ๋ ๊ธฐ๋ฅ์ ์ค์ด๋๋ก ๋ณด์ฅํฉ๋๋ค.
๊ตฌ์ฒด์ ์ผ๋ก, ๋ชจํธํจ ํผํ๊ธฐ
๋ชจํธํ ํ๋กฌํํธ๋ ๋ชจํธํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
ํญ์ ๋ฌด์์ ์ํ๊ณ ์ด๋ป๊ฒ ์ํ๋์ง ๋ช ํํ ํ์ธ์.
DONโTs
1
2
3
# ์์ - 1
์ด ์ฑ์ ๋ ์ข๊ฒ ๋ง๋ค์ด์ค.
Make this app better.
1
2
3
# ์์ - 2
์ฌ์ฉ์ ์
๋ ฅ์ ์ํ ์์์ ๋ง๋ค์ด์ค
Create a form for user input
ํ์๋ ๋ฒ์์ ์์ ๊ฒฐ๊ณผ์ ๋ํ ๋ช ํํ ๋ฐฉํฅ์ ์ ๊ณตํฉ๋๋ค.
DOs
1
2
3
4
5
6
# ์์ - 1
Refactor the app to clean up unused components and improve performance
(without changing UI or functionality.)
์ฌ์ฉ๋์ง ์๋ ์ปดํฌ๋ํธ๋ฅผ ์ ๋ฆฌํ๊ณ ์ฑ๋ฅ์ ํฅ์์ํค๋๋ก ์ฑ์ ๋ฆฌํฉํฐ๋งํ์ธ์.
(UI๋ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ง ๋ง์ธ์.)
1
2
3
4
# ์์ - 2
Create a user registration form with fields for username, email, and password and include a submit button.
์ฌ์ฉ์๋ช
, ์ด๋ฉ์ผ, ๋น๋ฐ๋ฒํธ ํ๋์ ์ ์ถ ๋ฒํผ์ด ํฌํจ๋ ์ฌ์ฉ์ ๋ฑ๋ก ์์์ ์์ฑํ์ธ์.
์ ์ง์ ํ๋กฌํํ
ํ ๋ฒ์ ํ๋กฌํํธ๋ก ์ ์ฒด ๋ณต์กํ ์ฑ์ ์์ฒญํ๊ณ ์ถ์ ์ถฉ๋์ ์ต์ ํ์ธ์.
๊ฐ๋ฐ ๊ณผ์ ์ ๋ ผ๋ฆฌ์ ๋จ๊ณ๋ก ๋๋๊ณ ํ ๋ฒ์ ํ๋์ฉ ํ๋กฌํํธํ์ธ์.
DONโTs
1
2
3
Build a CRM app with Supabase, auth, Google Sheets export, and data enrichment.
Build my entire e-commerce app with authentication, product listings, and checkout.
1
2
3
Supabase, ์ธ์ฆ, Google Sheets ๋ด๋ณด๋ด๊ธฐ, ๋ฐ์ดํฐ ๊ฐํ๊ฐ ์๋ CRM ์ฑ์ ๊ตฌ์ถํด์ค.
์ธ์ฆ, ์ ํ ๋ชฉ๋ก, ๊ฒฐ์ ๊ฐ ์๋ ์ ์ฒด ์ ์์๊ฑฐ๋ ์ฑ์ ๊ตฌ์ถํด์ค.
DOs
์ด๋ฌํ ๋จ๊ณ๋ณ ์งํ์ AI๊ฐ ์ง์คํ๊ณ ์ ํํ๊ฒ ์ ์งํ๋ ๋ฐ ๋์์ด ๋๋ฉฐ, ๋ฌธ์ ๋ฅผ ์ผ์ฐ ์ก์ ์ ์์ต๋๋ค:
(์์ - 1)
1.1.
1
2
3
Set up a Supabase-connected CRM backend.
Supabase์ ์ฐ๊ฒฐ๋ CRM ๋ฐฑ์๋๋ฅผ ์ค์ ํด์ฃผ์ธ์.
1.2.
1
2
3
Great! Could you please add a secure authentication flow with user roles?
์ข์ต๋๋ค! ์ฌ์ฉ์ ์ญํ ์ด ์๋ ์์ ํ ์ธ์ฆ ํ๋ก์ฐ๋ฅผ ์ถ๊ฐํด์ฃผ์๊ฒ ์ด์?
1.3.
1
2
3
Thank you! The next step is to integrate Google Sheets to export records.
๊ฐ์ฌํฉ๋๋ค! ๋ค์ ๋จ๊ณ๋ ๋ ์ฝ๋๋ฅผ ๋ด๋ณด๋ด๊ธฐ ์ํด Google Sheets๋ฅผ ํตํฉํ๋ ๊ฒ์
๋๋ค.
(์์ - 2)
2.1.
1
2
3
Set up a database schema for user information.
์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํค๋ง๋ฅผ ์ค์ ํด์ฃผ์ธ์.
2.2.
1
2
3
Develop an API endpoint to retrieve user data please
์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ API ์๋ํฌ์ธํธ๋ฅผ ๊ฐ๋ฐํด์ฃผ์ธ์
์ ์ฝ์กฐ๊ฑด๊ณผ ์๊ตฌ์ฌํญ ํฌํจ
์ ์ฝ์กฐ๊ฑด์ ๋ช ์ํ๋ ๊ฒ์ ํผํ์ง ๋ง์ธ์.
๋ญ๊ฐ๊ฐ ๋ฐ๋์ ํ๊ฑฐ๋ ์ ๋ ํ์ง ๋ง์์ผ ํ๋ค๋ฉด ์ง์ ํ๋กฌํํธ์ ์ ์ผ์ธ์.
์ ์ฝ์กฐ๊ฑด ์ถ๊ฐ
(์์ - 1)
1
2
3
4
5
Create a simple to-do app with a "maximum of 3 tasks visible" at a time.
Include the ability to add, edit, and delete tasks.
"ํ ๋ฒ์ ์ต๋ 3๊ฐ"์ ์์
๋ง ๋ณด์ด๋ ๊ฐ๋จํ ํ ์ผ ์ฑ์ ๋ง๋ค์ด์ฃผ์ธ์.
์์
์ ์ถ๊ฐ, ํธ์ง, ์ญ์ ํ๋ ๊ธฐ๋ฅ์ ํฌํจํ์ธ์.
(์์ - 2)
1
2
3
4
5
Optimize this code, but ensure the "UI and core functionality remain unchanged".
Document each change you make.
์ด ์ฝ๋๋ฅผ ์ต์ ํํ๋ "UI์ ํต์ฌ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝ๋์ง ์๋๋ก ํ์ธ์".
๊ฐ ๋ณ๊ฒฝ์ฌํญ์ ๋ฌธ์ํํด์ฃผ์ธ์.
(์์ - 3)
1
2
3
Use at most 3 API calls for this, and "ensure no external library is required".
์ด๊ฒ์ ์ํด ์ต๋ 3๊ฐ์ API ํธ์ถ์ ์ฌ์ฉํ๊ณ , "์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํ์ง ์๋๋ก ํ์ธ์".
(์์ - 4)
1
2
3
The page should "display a maximum of 3 tasks" at a time.
ํ์ด์ง๋ ํ ๋ฒ์ "์ต๋ 3๊ฐ์ ์์
"์ ํ์ํด์ผ ํฉ๋๋ค.
์ด๋ฌํ ์ ํ์ AI๊ฐ ๊ณผ๋ํ๊ฒ ์์ง๋์ด๋งํ๋ ๊ฒ์ ๋ฐฉ์งํฉ๋๋ค.
์ต๋ ํญ๋ชฉ ์๋ ์ฑ๋ฅ ๋ชฉํ์ ๊ฐ์ ์ ์ฝ์กฐ๊ฑด์ ์ถ๊ฐํ๋ฉด AI๊ฐ ์ค์ํ ๊ฒ์ ์ง์คํ ์ ์์ต๋๋ค.
ํํ์ ๋ชจํธํจ ํผํ๊ธฐ
์ฉ์ด๊ฐ ๋ค์ํ ๋ฐฉ์์ผ๋ก ํด์๋ ์ ์๋ค๋ฉด ๋ช ํํ ํ์ธ์.
๋ ๋ช ํํ ์๋ก AI๊ฐ ์ถ์ธกํด์ผ ํ ๊ฒ์ด ์ค์ด๋ญ๋๋ค.
๋ฐ๋๋ก ๋๋ฌด ๋ชจํธํ๊ฒ ์์ฒญํ๋ฉด, ํ๊ฐ ํ์์ ๋ถ๋ฌ์ผ์ผํฌ ํ๋ฅ ์ด ์ฌ๋ผ๊ฐ๋๋ค.
DONโTs
1
2
Add a profile feature
ํ๋กํ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ค
1
2
Support notifications
์๋ฆผ์ ์ง์ํด์ค
ํ์๋ ๋ฒ์์ ์์ ๊ฒฐ๊ณผ์ ๋ํ ๋ช ํํ ๋ฐฉํฅ์ ์ ๊ณตํฉ๋๋ค.
DOs
1
2
Add a user profile page with fields X, Y, Z.
X, Y, Z ํ๋๊ฐ ์๋ ์ฌ์ฉ์ ํ๋กํ ํ์ด์ง๋ฅผ ์ถ๊ฐํด์ฃผ์ธ์.
1
2
Send an email notification on form submission.
์์ ์ ์ถ ์ ์ด๋ฉ์ผ ์๋ฆผ์ ๋ณด๋ด์ฃผ์ธ์.
ํค๊ณผ ์์ ์ผ๋์ ๋๊ธฐ
AI์ ๊ธฐ๋ฅ ์์ฒด๊ฐ ๋ฌ๋ผ์ง๋ ๊ฒ์ ์๋์ง๋ง, ์ ์คํ ์ดํฌ๊ฐ ์์ธ๋ก ๋ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋์ด๋ผ ๋๊ฐ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด please ๊ฐ์ ํํ์ด๋ ๊ณต์ํ ์์ฒญ์ ํฌํจํ๋ฉด, ํ๋กฌํํธ๊ฐ ์กฐ๊ธ ๋ ์ค๋ช ์ ์ผ๋ก ์ฝํ๊ณ ์ปจํ ์คํธ๊ฐ ํ๋ถํด์ ธ AI์๊ฒ ๋์์ด ๋ฉ๋๋ค.
์์:
1
2
Please refrain from modifying the homepage, focus only on the dashboard component.
ํํ์ด์ง๋ ์์ ํ์ง ๋ง๊ณ , ๋์๋ณด๋ ์ปดํฌ๋ํธ์๋ง ์ง์คํด์ฃผ์ธ์.
์ด๋ฐ ์์ ํํ์ ์ ์คํ๊ฒ ๋ค๋ฆฌ๋ฉด์ ๋์์ AI์๊ฒ ๋ฌด์์ ํ์ง ๋ง์์ผ ํ๋์ง๊น์ง ๋ช ํํ ์๋ ค์ค๋๋ค. ์ค์ํ ๊ฒ์ AI์ ๊ฐ์ ์ด ์๋๋ผ, ํ๋กฌํํธ ์์ ์ธ๋ถ์ฌํญ์ ์ผ๋ง๋ ์ ๋ด์๋ด๋๋์ ๋๋ค. (๋ฌผ๋ก , ์ ์คํ๊ฒ ๋งํ๋ ๊ฒ ์ํด ๋ณผ ์ผ์ ์๊ฒ ์ง์!)
Lovable์ ๋ชจ๋๋ฅผ ์๋์ ์ผ๋ก ์ฌ์ฉ
Use Lovableโs Modes Intentionally
์์ ์ธ๊ธํ๋ฏ์ด, ๊ณํ ๋จ๊ณ์๋ Chat Mode
, ๊ตฌํ ๋จ๊ณ์๋ Default Mode
๋ฅผ ํ์ฉํ๋ ๊ฒ์ด ํจ๊ณผ์ ์
๋๋ค.
- ์๋ฅผ ๋ค์ด, ์๋ก์ด ๊ธฐ๋ฅ์ ์์ํ ๋๋
Chat Mode
์์ ๋จผ์ ์ปดํฌ๋ํธ ๋ถํด๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๋ธ๋ ์ธ์คํ ๋ฐํ ์ ์์ต๋๋ค.
1
2
3
4
5
I want to add a blog section to my app.
Letโs discuss how to structure the data and pages.
๋ด ์ฑ์ ๋ธ๋ก๊ทธ ์น์
์ ์ถ๊ฐํ๊ณ ์ถ์ต๋๋ค.
๋ฐ์ดํฐ์ ํ์ด์ง๋ฅผ ์ด๋ป๊ฒ ์ค๊ณํ ์ง ํจ๊ป ๋
ผ์ํด๋ด
์๋ค.
์ด๋ฐ ์์ผ๋ก ์์ฒญํ๋ฉด AI๊ฐ ์ ์ฒด์ ์ธ ๊ฐ์๋ฅผ ์ ์ํฉ๋๋ค.
- ๊ทธ ๊ฒฐ๊ณผ์ ๋ง์กฑํ๋ค๋ฉด, ์ด์
Default Mode
๋ก ์ ํํด ์ค์ ๊ตฌํ์ ์ง์ํ ์ ์์ต๋๋ค.
1
2
3
Create a BlogPost page and a supabase table or schema for blog posts based on the above plan.
์ ๊ณํ์ ๋ฐํ์ผ๋ก `BlogPost` ํ์ด์ง์ ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ฉ Supabase ํ
์ด๋ธ ๋๋ ์คํค๋ง๋ฅผ ์์ฑํด์ฃผ์ธ์.
ํ์์ ์ ๋ฆฌํ๊ฒ ์ฌ์ฉ
Use formatting to your advantage
์ํฉ์ ๋ง๊ฒ ๋ชฉ๋ก์ด๋ ๋จ๊ณ๋ฅผ ์ฌ์ฉํด ํ๋กฌํํธ๋ฅผ ๊ตฌ์กฐํํ์ธ์.
AI์๊ฒ ๋ชฉ๋ก ํํ์ ์๋ต์ด๋ ์์ฐจ์ ์ ์ฐจ๋ฅผ ์ํ๋ค๋ฉด, ํ๋กฌํํธ์์ ํญ๋ชฉ์ ๋ฒํธ๋ฅผ ๋งค๊ฒจ ๋์ดํ์ธ์. ๋จ๊ณ๋ฅผ ๋ฒํธ๋ก ํ์ํ๋ฉด ๋ชจ๋ธ์ด ๊ฐ์ ํ์์ผ๋ก ์๋ตํ๋๋ก ํํธ๋ฅผ ์ฃผ๋ ํจ๊ณผ๊ฐ ์์ต๋๋ค.
(์์ - 1)
1
2
3
4
5
6
7
8
9
์์ ํ ์ธ์ฆ ์์คํ
์ ์ค์ ํ๋ ๊ณผ์ ์ ๋จ๊ณ๋ณ๋ก ์๊ฐํด๋ด
์๋ค:
1. ํ์ํ ์ปดํฌ๋ํธ๋ ๋ฌด์์ธ๊ฐ์?
2. ์ด๋ค์ด ์ด๋ป๊ฒ ์ํธ์์ฉํด์ผ ํ๋์?
3. ๊ตฌํ ์ฝ๋๋ฅผ ์์ฑํด์ฃผ์ธ์.
Let's think through the process of setting up a secure authentication system:
1. What are the necessary components?
2. How should they interact?
3. Provide the implementation code.
(์์ - 2)
1
2
3
์ฒซ์งธ, ์ ๊ทผ ๋ฐฉ์์ ์ค๋ช
ํ๊ณ , ๋์งธ ์ฝ๋๋ฅผ ๋ณด์ฌ์ฃผ๊ณ , ์
์งธ ํ
์คํธ ์์๋ฅผ ์ ๊ณตํด์ฃผ์ธ์.
First, explain the approach. Second, show the code. Third, give a test example.
์์๋ ์ฐธ์กฐ ํ์ฉ
์ํ๋ ๋์์ธ์ด๋ ์ฝ๋ ์คํ์ผ์ด ์๋ค๋ฉด ๋ฐ๋์ ์ธ๊ธํ๊ฑฐ๋ ์์๋ฅผ ํจ๊ป ์ ๊ณตํ์ธ์.
๊ตฌ์ฒด์ ์ธ ์ฐธ์กฐ(์ด๋ฏธ์ง๋ ์ฝ๋ ์ค๋ํซ)๋ฅผ ๋ณด์ฌ์ฃผ๋ฉด AI๊ฐ ๋จ์ํ ์ถ์ธกํ์ง ์๊ณ , ๊ทธ ์คํ์ผ์ ๋ฐํ์ผ๋ก ๋ต๋ณํ ์ ์์ต๋๋ค. (eg. Few-shot์ฒ๋ผ)
(์์ - 1)
1
2
3
4
5
6
7
8
์ฐ๋ฆฌ๋ ํ์ด ์์
์ ์ถ์ ํ ์ ์๋ ํ๋ก์ ํธ ๊ด๋ฆฌ ๋๊ตฌ๋ฅผ ๋ง๋ค๊ณ ์์ต๋๋ค.
์ด ๋๊ตฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ฐ์ ธ์ผ ํฉ๋๋ค:
- ์ฌ์ฉ์ ์ธ์ฆ
- ํ๋ก์ ํธ ์์ฑ
- ์์
ํ ๋น
- ๋ณด๊ณ ๊ธฐ๋ฅ
์ฒซ ๋ฒ์งธ ๋จ๊ณ๋ก, ํ๋ก์ ํธ ์์ฑ UI๋ฅผ ๋ง๋ค์ด์ฃผ์ธ์.
1
2
3
4
5
6
7
8
We are building a project management tool that helps teams track their tasks.
This tool should have features like:
- user authentication
- project creation
- task assignments
- reporting
Now, for the first task, create the UI for project creation.
(์์ - 2)
1
2
Supabase ํตํฉ๊ณผ ์์ ํ ์ธ์ฆ ํ๋ก์ฐ๊ฐ ํฌํจ๋ CRM ์ฑ์ด ํ์ํฉ๋๋ค.
๋ฐฑ์๋ ์ค์ ๋ถํฐ ์์ํด์ฃผ์ธ์.
1
2
I need a CRM app with Supabase integration and a secure auth flow.
Start by setting up the backend.
(์์ - 3)
1
2
์นํ๊ฒฝ ์ ํ์ ์ด์ ์ ๋ง์ถ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ๊ฐ๋ฐํ๊ณ ์์ต๋๋ค.
์นดํ
๊ณ ๋ฆฌ์ ๊ฐ๊ฒฉ ํํฐ๊ฐ ์๋ ์ํ ๋ชฉ๋ก ํ์ด์ง๋ฅผ ์์ฑํด์ฃผ์ธ์.
1
2
We are developing an e-commerce platform focusing on eco-friendly products.
Generate a product listing page with filters for category and price.
์ด๋ฏธ์ง ํ๋กฌํํธ ์ฌ์ฉ
Lovable์์๋ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ์ฌ ํ๋กฌํํธ์ ํฌํจํ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด ๋์์ธ ์์์ ๋ณด์ฌ์ฃผ๊ณ โ์ด ์คํ์ผ๊ณผ ๋ง์ถฐ์ฃผ์ธ์โ ๋ผ๊ณ ์์ฒญํ๋ฉด ๋ฉ๋๋ค.
์ฌ๊ธฐ์๋ ๋ ๊ฐ์ง ์ ๊ทผ ๋ฐฉ์์ด ์์ต๋๋ค.
1) ๊ฐ๋จํ ์ด๋ฏธ์ง ์ ๋ก๋ ํ๋กฌํํ
(์์ - 1)
1
2
3
์ฒจ๋ถ๋ ์ด๋ฏธ์ง์ ์ต๋ํ ์ ์ฌํ UI๋ฅผ ์์ฑํ๊ณ ๊ตฌํํด์ฃผ์ธ์.
Create and implement a UI that looks as similar as possible to the image attached.
(์์ - 2)
1
2
3
4
5
์ด ์คํฌ๋ฆฐ์ท์ ๋ชจ๋ฐ์ผ์์ ๋ฐ์ํ๋ ๋ ์ด์์ ์ด์ ์ํฉ์ ๋ณด์ฌ์ค๋๋ค.
๊ฐ์ ๋์์ธ ๊ตฌ์กฐ๋ฅผ ์ ์งํ๋ฉด์ ๋ฐ์ํ์ผ๋ก ๋ณด์ด๋๋ก ์ฌ๋ฐฑ๊ณผ ํจ๋ฉ์ ์กฐ์ ํด์ฃผ์ธ์.
This screenshot shows a layout issue on mobile.
Adjust margins and padding to make it responsive while keeping the same design structure.
2) ์์ธ ์ง์์ฌํญ๊ณผ ํจ๊ป ํ๋ ์ด๋ฏธ์ง ํ๋กฌํํ
์ด๋ฏธ์ง ์์ฒด๊ฐ ๋ง์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์์ง๋ง, ์ํ๋ ๊ธฐ๋ฅ์ ๊ธ๋ก ์ถ๊ฐ ์ง์ํ๋ฉด ํจ์ฌ ์ข์ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์์:
1
2
3
4
5
6
7
8
์ด ์คํฌ๋ฆฐ์ท๊ณผ ์ต๋ํ ๋น์ทํ ์ฑ์ ๋ง๋ค์ด์ฃผ์ธ์.
๋ณธ์ง์ ์ผ๋ก ์นธ๋ฐ ๋ณด๋ ํด๋ก ์
๋๋ค.
- ๊ฐ ์ด์ ์ ์นด๋(ํฐ์ผ)๋ฅผ ์ถ๊ฐํ ์ ์์ด์ผ ํฉ๋๋ค.
- ๊ฐ์ ์ด ์์์๋ ์นด๋ ์์๋ฅผ ์์ ๋กญ๊ฒ ๋ฐ๊ฟ ์ ์์ด์ผ ํฉ๋๋ค.
- ์นด๋๋ฅผ ์ด ์ฌ์ด์ ์ฎ๊ธธ ์๋ ์์ด์ผ ํฉ๋๋ค.
๋๋๊ทธ ์ค ๋๋กญ ๊ธฐ๋ฅ์ Pangea home dnd npm ํจํค์ง๋ฅผ ์ฌ์ฉํด๋ ์ข์ต๋๋ค.
1
2
3
4
5
6
7
8
9
I want you to create the app as similar as possible to the one shown in this screenshot.
It's essentially a kanban clone.
It should have the ability
* to add new cards (tickets) in each column,
* have the ability to change the order of those tickets within a single column,
* and even move those cards between columns.
Feel free to use the Pangea home dnd npm package for drag-and-drop functionality.
ํผ๋๋ฐฑ ํตํฉ
AI์ ์ถ๋ ฅ์ ๊ฒํ ํ๊ณ ๊ฐ์ ์ ์ํ ๊ตฌ์ฒด์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ธ์. (๋ฉํฐํด)
1
2
3
๋ก๊ทธ์ธ ์์์ด ์ข์ ๋ณด์ด์ง๋ง ์ด๋ฉ์ผ ํ๋์ ์ ํจํ ์ด๋ฉ์ผ ์ฃผ์๊ฐ ํฌํจ๋๋๋ก ํ๋ ๊ฒ์ฆ์ ์ถ๊ฐํด์ฃผ์ธ์.
The login form looks good, but please add validation for the email field to ensure it contains a valid email address.
์ ๊ทผ์ฑ ๊ฐ์กฐ
์ ๊ทผ์ฑ ํ์ค
(adheres to accessibility standards)๊ณผ ํ๋์ ๋ชจ๋ฒ ์ฌ๋ก
(modern best practices)๋ฅผ ์ค์ํ๋ ์ฝ๋ ์์ฑ์ ์ฅ๋ คํ์ธ์. ์ด๋ ์ถ๋ ฅ์ด ๊ธฐ๋ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ฌ์ฉ์ ์นํ์ ์ด๊ณ ์ ๊ทผ์ฑ ๊ฐ์ด๋๋ผ์ธ์ ์ค์ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
๐ค ์ ๊ทผ์ฑ ํ์ค(adheres to accessibility standards)์ด๋?
์ ๋ฌธ์ฅ์์ ๋งํ๋ โcode that adheres to accessibility standardsโ๋, ์ฝ๋๊ฐ ๊ณต์ ์ ๊ทผ์ฑ ํ์ค(๋ํ์ ์ผ๋กWCAG 2.2
,WAI-ARIA
๋ฑ)๊ณผ ๋ฒยท๊ฐ์ด๋๋ผ์ธ(์:ADA
,EN 301 549
)์ ์ค์ํ๋๋ก ์์ฑ๋ ์ํ๋ฅผ ๋ปํฉ๋๋ค.
=> ์ฆ, ์ฌ์ฉํ๋ ์ฌ๋์ ์ ์ฒดยท์ธ์งยทํ๊ฒฝ์ ์ ์ฝ๊ณผ ์๊ด์์ด ํค๋ณด๋ยท์คํฌ๋ฆฐ๋ฆฌ๋ยท๊ณ ๋ฐฐ์จยท๊ณ ๋๋นยท์๋ง ๋ฑ ๋ณด์กฐ ์๋จ์ผ๋ก ์ ๊ทผํ๊ณ ์ดํดยท์กฐ์ํ ์ ์๊ฒ ๋ง๋๋ ๋ชจ๋ ์ค๊ณยท๊ตฌํ ์์น์ ๊ฐ๋ฆฌํต๋๋ค.
1
2
3
4
์ ์ ํ ARIA ๋ผ๋ฒจ๊ณผ ํค๋ณด๋ ํ์ ์ง์์ ํฌํจํ์ฌ **์ ๊ทผ์ฑ ๋ชจ๋ฒ ์ฌ๋ก**๋ฅผ ๋ฐ๋ฅด๋ ๋ก๊ทธ์ธ ์์์ฉ React ์ปดํฌ๋ํธ๋ฅผ ์์ฑํด์ฃผ์ธ์.
Generate a React component for a login form that follows accessibility best practices,
including appropriate ARIA labels and keyboard navigation support.
๐ค ARIA ๋ ์ด๋ธ(Accessible Rich Internet Applications label)์ด๋?
ARIA ๋ ์ด๋ธ(Accessible Rich Internet Applications label, ํํ aria-label)์ ์คํฌ๋ฆฐ๋ฆฌ๋ ๊ฐ์ ๋ณด์กฐ๊ธฐ์ ์ ์ฝํ๋ ๋์ฒด ํ ์คํธ๋ฅผ ์ ๊ณตํ๊ธฐ ์ํด ์ฐ์ด๋ ์์ฑ์ ๋๋ค.
=> ์ฝ๊ฒ ๋งํ๋ฉด, ์๊ฐ์ ์ผ๋ก๋ ๋ฒํผ์ด๋ ์์ด์ฝ๋ง ๋ณด์ด๋๋ฐ, ํ๋ฉด ์ฝ๊ธฐ ํ๋ก๊ทธ๋จ์๊ฒ๋ โ์ด๊ฑด โ๊ฒ์ ๋ฒํผโ์ด์ผโ๋ผ๊ณ ์๋ ค์ฃผ๋ ์ญํ ์ ํฉ๋๋ค.
๋ฏธ๋ฆฌ ์ ์๋ ์ปดํฌ๋ํธ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
ํ๋ก์ ํธ์์ ์ผ๊ด์ฑ๊ณผ ํจ์จ์ฑ์ ์ ์งํ๊ธฐ ์ํด ํน์ UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ปดํฌ๋ํธ ์ฌ์ฉ์ ๋ช
์ํ์ธ์.
์ด๋ AI๊ฐ ํน์ ๋๊ตฌ๋ฅผ ํ์ฉํ๋๋ก ์ง์ํ์ฌ ํธํ์ฑ๊ณผ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ฐ์ ๊ท ์ผํ ๋์์ธ ์ธ์ด๋ฅผ ๋ณด์ฅํฉ๋๋ค.
1
2
3
Tailwind CSS๋ก ์คํ์ผ๋งํ๋ shadcn/ui ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ํ ๋ค๋น๊ฒ์ด์
๋ฐ๋ฅผ ์์ฑํด์ฃผ์ธ์.
Create a responsive navigation bar using the shadcn/ui library with Tailwind CSS for styling.
๋ค๊ตญ์ด ํ๋กฌํํ
๋ค๊ตญ์ด ํ๊ฒฝ์์ ์์
ํ ๋๋ ์ฝ๋ ์ฃผ์๊ณผ ๋ฌธ์ ๋ชจ๋์ ๋ํด ์ํ๋ ์ธ์ด๋ฅผ ๋ช
์ํ์ธ์.
์ด๋ ์์ฑ๋ ์ฝํ
์ธ ๊ฐ ๋ค๋ฅธ ์ธ์ด๋ฅผ ์ฌ์ฉํ๋ ํ ๊ตฌ์ฑ์๋ค์๊ฒ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ํ์ฌ ํ์
์ ํฅ์์ํต๋๋ค.
1
2
ํผ๋ณด๋์น ์์ด์ ๊ณ์ฐํ๋ Python ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ฃผ์๊ณผ ๋ฌธ์๋ฅผ ํ๋์ค์ด๋ก ์ ๊ณตํด์ฃผ์ธ์.
1
2
Generate a Python script that calculates the Fibonacci sequence.
Provide comments and documentation in French.
ํ๋ก์ ํธ ๊ตฌ์กฐ ๋ฐ ํ์ผ ๊ด๋ฆฌ ์ ์
์๋ก์ด ์ปดํฌ๋ํธ๊ฐ ํ๋ก์ ํธ ๋ด ์ด๋์ ์์นํด์ผ ํ๋์ง์ ๋ํ ๋ช ํ์ฑ์ ์ ๊ณตํ์ฌ ์ผ๊ด๋ ํ์ผ ์กฐ์ง์ ์ ์งํ๋ฉด์ ์ฒด๊ณ์ ์ด๊ณ ์ ์ง๋ณด์ ๊ฐ๋ฅํ ์ฝ๋ ์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ํ์ผ ์ด๋ฆ๊ณผ ๊ฒฝ๋ก๋ฅผ ํฌํจํ ํ๋ก์ ํธ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ๊ฐ์๋ก ์ ์ํ์ธ์.
1
2
'UserProfile'์ด๋ผ๋ ์ React ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ 'components/user-profile.tsx'๋ก ์ ์ฅํด์ฃผ์ธ์.
ํ๋กํ ์ฌ์ง, ์ฌ์ฉ์๋ช
, ์๊ธฐ์๊ฐ ์น์
์ด ํฌํจ๋๋๋ก ํ์ธ์.
1
2
Create a new React component named 'UserProfile' and save it as 'components/user-profile.tsx'.
Ensure it includes a profile picture, username, and bio section.
์ ํํ ํธ์ง ์ง์์ฌํญ ์ ๊ณต (AI ์ง์ค์ํค๊ธฐ)
(์ฃผ์) ๊ธฐ๋ณธ์ ์ผ๋ก Lovable AI์๊ฒ ๋ญ๊ฐ๋ฅผ ๋ณ๊ฒฝํ๋ผ๊ณ ์์ฒญํ๋ฉด ์ ์ฒด ํ์ผ์ด๋ ์ฌ๋ฌ ํ์ผ์ ๋ค์ ์์ฑํ ์ ์์ต๋๋ค.
์๋ํ์ง ์์ ๋ณ๊ฒฝ์ ํผํ๋ ค๋ฉด ์ด๋์ ๊ทธ๋ฆฌ๊ณ ๋ฌด์์ ๋ณ๊ฒฝํ ์ง ๋งค์ฐ ๊ตฌ์ฒด์ ์ผ๋ก ๋ช ์ํ์ธ์.
- Lovable์ โSelect(Edit)โ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ ํ์ผ์ ๊ฐ์กฐํ ๋ค์ ๊ทธ ์ ํ์ ๋ํด์๋ง ํ๋กฌํํธํ ์ ์์ต๋๋ค. ๋๋ ํ๋กฌํํธ์์ ํ์ผ/์ปดํฌ๋ํธ๋ฅผ ๋ช ์์ ์ผ๋ก ๋ช ๋ช ํ์ธ์.
1
2
3
`Header` ์ปดํฌ๋ํธ์์ ๊ฐ์
๋ฒํผ์ ํ
์คํธ๋ฅผ 'Get Started'๋ก ๋ณ๊ฒฝํ๊ณ ๋ค๋น๊ฒ์ด์
๋ฐ์ ์ผ์ชฝ์ผ๋ก ์ด๋ํด์ฃผ์ธ์.
_In the _Headercomponent, change the signup buttonโs text to โGet Startedโ and move it to the left side of the nav bar.
์ด๋ ๊ฒ ํ๋ฉด AI๊ฐ Header
์ปดํฌ๋ํธ์ ์ง์คํ๊ณ ๊ทธ ๋ถ๋ถ๋ง ์กฐ์ ํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ฉ๋๋ค.
๋ฐ๊พธ์ง ๋ง์์ผ ํ ๋ถ๋ถ์, AI์๊ฒ ๊ฑด๋๋ฆฌ์ง ๋ง์์ผ ํ ๊ฒ์ ์๋ ค์ฃผ์ธ์.
1
2
3
ํค๋์ ๊ด๋ จ ์๋ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ ๋ก์ง์ ์์ ํ์ง ๋ง์ธ์.
Do not modify any other components or logic unrelated to the header.
์ด๋ฌํ ๊ดํ(โDiff & Selectโ ์ ๊ทผ๋ฒ์ด๋ผ๊ณ ๋ถ๋ฆฌ๊ธฐ๋ ํจ)์ ์ต์ํ์ ๋ชฉํํ๋ ๋ณ๊ฒฝ์ ๋ณด์ฅํ์ฌ ๋ ๋น ๋ฅธ ์๋ต๊ณผ ๋ ์ ์ ํ๊ท์ ๋ฒ๊ทธ(regression bugs)๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
ํ์ผ ์ ๊ธ (์ฐํ ๋ฐฉ๋ฒ)
ํ์ฌ Lovable์๋ ๋ช ์์ ์ธ ํ์ผ ์ ๊ธ ๊ธฐ๋ฅ์ด ์์ ์ ์์ง๋ง, ํ๋กฌํํธ ํํ์ ํตํด ์๋ฎฌ๋ ์ด์ ํ ์ ์์ต๋๋ค.
AI๊ฐ ์ ๋ ๋ณ๊ฒฝํด์๋ ์ ๋๋ ์ค์ํ ํ์ผ๋ค(์ ์๋ํ๋ ๋ณต์กํ ์ปดํฌ๋ํธ ๊ฐ์)์ด ์๋ค๋ฉด, ๋ชจ๋ ํ๋กฌํํธ์์ ์ง์์ฌํญ์ ๋ฐ๋ณตํ ์ ์์ต๋๋ค:
1
2
3
authentication.js ํ์ผ์ ๋ณ๊ฒฝํ์ง ๋ง์ธ์.
Do not change the authentication.js file.
AI์๊ฒ ์ง์์ ์ผ๋ก ์์ ํ๋ผ๊ณ ๋งํจ์ผ๋ก์จ ์์น ์๋ ํธ์ง์ ๊ฐ๋ฅ์ฑ์ ์ค์
๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก AI๊ฐ ํ๋ก์ ํธ์ ํ ๋ถ๋ถ์์๋ง ์์
ํ๊ธฐ๋ฅผ ์ํ๋ค๋ฉด ๋ช
์์ ์ผ๋ก ์ ํํ์ธ์:
1
2
3
`ProfilePage` ์ปดํฌ๋ํธ์๋ง ๋ณ๊ฒฝ์ฌํญ์ ์ง์คํ๊ณ , ์ฑ์ ๋ค๋ฅธ ๋ชจ๋ ๋ถ๋ถ์ ๊ทธ๋๋ก ์ ์งํ๋ค๊ณ ๊ฐ์ ํ์ธ์.
_Focus changes solely on the _ProfilePagecomponent; assume all other parts of the app remain as is.
ํ๋กฌํํธ์์ ์ด๋ฅผ ๋ฏธ๋ฆฌ ๋ช ์ํ๋ฉด AI๊ฐ ๊ฒฝ๊ณ ๋ด์์ ์์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋์์ธ ๋ฐ UI ์กฐ์
Lovable์์ UI ๋ณ๊ฒฝ์ ์ํ ํ๋กฌํํธ๋ฅผ ์์ฑํ ๋๋ ๊ธฐ๋ฅ์ ๋ง๊ฐ๋จ๋ฆฌ์ง ์๋๋ก ๋ช ํ์ฑ์ด ์ค์ํฉ๋๋ค:
-
์์ ํ ์๊ฐ์ ๋ณ๊ฒฝ์ ์ํ๋ค๋ฉด ๊ทธ๋ ๊ฒ ๋งํ์ธ์.
- โ๋ก๊ทธ์ธ ๋ฒํผ์ ํ๋์์ผ๋ก ๋ง๋ค๊ณ 20% ํฌ๊ฒ ํ๋, ๊ธฐ๋ฅ์ด๋ onClick ๋ก์ง์ ์ ํ ๋ณ๊ฒฝํ์ง ๋ง์ธ์.โ
- ์ด๋ AI๊ฐ ์คํ์ผ๋งํ๋ฉด์ ์ค์๋ก ID๋ฅผ ์ด๋ฆ์ ๋ฐ๊พธ๊ฑฐ๋ ๋ก์ง์ ๋ณ๊ฒฝํ์ง ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
-
๋ฐ์์ฑ(๋์์ธ์ ๋ชจ๋ฐ์ผ ์นํ์ ์ผ๋ก ๋ง๋ค๊ธฐ)์ ๊ฒฝ์ฐ, AI๋ฅผ ๊ณํ์ ํตํด ์๋ดํ์ธ์.
- ์๋ฅผ ๋ค์ด:
- โ๋๋ฉ ํ์ด์ง๋ฅผ ๋ชจ๋ฐ์ผ์ ์ต์ ํํ์ธ์: ๋ชจ๋ฐ์ผ ์ฐ์ ์ ๊ทผ๋ฒ์ ์ฌ์ฉํ์ธ์. ๋จผ์ ๊ฐ ์น์ ์ด ๋ ์์ ํ๋ฉด์์ ์ด๋ป๊ฒ ์ฌ๋ฐฐ์น๋์ด์ผ ํ๋์ง ๊ฐ์๋ฅผ ์์ฑํ ๋ค์ ํด๋น CSS ๋ณ๊ฒฝ์ฌํญ์ ๊ตฌํํ์ธ์. ํ์ค Tailwind ๋ธ๋ ์ดํฌํฌ์ธํธ(sm, md, lg)๋ฅผ ์ฌ์ฉํ๊ณ ์ฌ์ฉ์ ์ ์ ๋ธ๋ ์ดํฌํฌ์ธํธ๋ ํผํ์ธ์. ๊ธฐ๋ฅ์ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์๊ณ ๋ ์ด์์๋ง ๋ณ๊ฒฝ๋๋๋ก ํ์ธ์.โ
- ์ด๋ฐ ์ข ๋ฅ์ ์์ธํ ์ง์์ฌํญ์ ์ ๊ณตํจ์ผ๋ก์จ ๋ฐ์คํฌํฑ ๋ ์ด์์์ ๋ง๊ฐ๋จ๋ฆฌ์ง ์๊ณ ๋ชจ๋ฐ์ผ์ ๋ํ ์ฒ ์ ํ ์ ์์ ์ป์ ์ ์์ต๋๋ค.
- ์๋ฅผ ๋ค์ด:
-
๋์์ธ ๋ณ๊ฒฝ์ ์ผ๋์ ๋๊ณ ์๋ค๋ฉด, ์ํ๋ ๊ฒฐ๊ณผ์ ์ ์ฝ์กฐ๊ฑด(โHTML ๊ตฌ์กฐ๋ ๋์ผํ๊ฒ ์ ์งํ๊ณ CSS๋ง ์ ๋ฐ์ดํธโ ๊ฐ์)์ ์ค๋ช ํ๋ฉด AI๊ฐ ์ฌ๋ฐ๋ฅธ ์๋ฃจ์ ์ ์ง์คํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. AI ๋์์ธ ๋ณ๊ฒฝ ํ์๋ ๋ชจ๋ ๊ฒ์ด ์ฌ์ ํ ์์๋๋ก ์๋ํ๋์ง ํ์ธํ๊ธฐ ์ํด ํญ์ ์ฑ์ ํ ์คํธํ์ธ์.
์ฝ๋ ๋ฆฌํฉํฐ๋ง ๋ฐ ์ต์ ํ
ํ๋ก์ ํธ๊ฐ ๋ฐ์ ํจ์ ๋ฐ๋ผ Lovable์ AI๋ ์ฑ๋ฅ์ด๋ ์ ์ง๋ณด์์ฑ์ ๊ฐ์ ํ๊ธฐ ์ํ ๋ฆฌํฉํฐ๋ง์ ์ ์ํ ์ ์์ต๋๋ค. ๋ฆฌํฉํฐ๋ง์ ์ํ ํ๋กฌํํ ์ ๊ณ ๊ธ์ด์ง๋ง ๊ฐ์น ์๋ ์ฌ์ฉ ์ฌ๋ก์ ๋๋ค:
- ๋์ ๋ณ๊ฒฝ ์์์ ๊ฐ์กฐํ์ธ์: โ๋ช ํ์ฑ๊ณผ ํจ์จ์ฑ์ ์ํด ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ๋, ์ฑ์ ๊ธฐ๋ฅ๊ณผ ์ถ๋ ฅ์ ๋์ผํ๊ฒ ์ ์ง๋์ด์ผ ํฉ๋๋ค.โ ์ด๋ AI์๊ฒ ๋ฆฌํฉํฐ๋ง์ด ๋ฒ๊ทธ๋ ๊ธฐ๋ฅ ๋ณ๊ฒฝ์ ๋์ ํด์๋ ์ ๋๋ค๊ณ ์๋ ค์ค๋๋ค.
- ๋จผ์ ๋ฆฌํฉํฐ๋ง ๊ณํ์ ์์ฒญํ ์ ์์ต๋๋ค: โ
utils/
ํด๋๋ฅผ ์ค์บํ๊ณ ์ฝ๋ ๊ตฌ์กฐ๋ ์ค๋ณต์์ ๊ฐ์ ์ฌํญ์ ์ ์ํ์ธ์. ๋ณ๊ฒฝ์ฌํญ์ ๋์ดํ๋ ์์ง ์ ์ฉํ์ง๋ ๋ง์ธ์.โ AI๊ฐ ๊ฐ์ ํ ๊ฒ์ ๋ํ ๋ณด๊ณ ์๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ฉด ๊ตฌํ์ ์ํด ํ๋กฌํํธํ ๋ณ๊ฒฝ์ฌํญ์ ๊ฒฐ์ ํ ์ ์์ต๋๋ค. -
๋๊ท๋ชจ ๋ฆฌํฉํฐ๋ง์ ๊ฒฝ์ฐ ๋จ๊ณ๋ณ๋ก ์ํํ์ธ์.
- ํ ๋ฒ์ ํ๋์ ๋ชจ๋์ ํ๋กฌํํธํ๊ณ , ํ ์คํธํ ๋ค์ ์งํํ์ธ์. ์ด๋ ๋จ๊ณ๋ณ ์์น๊ณผ ์ด์ธ๋ฆฝ๋๋ค.
- ์๋ฅผ ๋ค์ด:
- ๋จผ์ ์ํ ๊ด๋ฆฌ ๋ก์ง์ ๋ฆฌํฉํฐ๋งํ๊ณ , ๋์ค์ API ํธ์ถ์ ๋ฆฌํฉํฐ๋งํ๋ ๊ฒ์ด ํ ๋ฒ์ ๋ชจ๋ ๊ฒ์ ํ๋ ๊ฒ๋ณด๋ค ๋ซ์ต๋๋ค.
-
๋ฆฌํฉํฐ๋ง ํ์๋ ๋น ๋ฅธ ์ฌํ ํ์ธ(post-check)์ ํ๋กฌํํธํ๋ ๊ฒ์ด ํ๋ช ํฉ๋๋ค.
- ์์:
- โ์ด์ ์ฝ๋๊ฐ ๋ฆฌํฉํฐ๋ง๋์์ผ๋ฏ๋ก ๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์คํธ๋ฅผ ์คํํด๋ณด์ธ์: UI๊ฐ ๋์ผํ๊ฒ ๋ณด์ด๊ณ ๋ชจ๋ ํ ์คํธ๋ ์ฃผ์ ํ๋ก์ฐ๊ฐ ์ฌ์ ํ ํต๊ณผํ๋์?โ
- AI๊ฐ ์์ฒด ๊ฒ์ฆ์ ํ๊ฑฐ๋ ์๋์ผ๋ก ํ์ธํ ๊ฒ๋ค์ ๋์ดํ ์ ์์ต๋๋ค.
- ์์:
AI ์ง์์ผ๋ก ๋๋ฒ๊น
๋ฒ๊ทธ๋ ๋ถ๊ฐํผํฉ๋๋ค. Lovable์๋ ๋น ๋ฅธ ์์ ์ ์ํ โTry to Fix
โ ๊ธฐ๋ฅ์ด ์์ง๋ง, ์ง์ ํ๋กฌํํธ๋ฅผ ํตํด AI๋ฅผ ํ์ฉํ ์๋ ์์ต๋๋ค:
-
์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ์ค๋ฅ ๋ก๊ทธ๋ ๋ฉ์์ง๋ฅผ ํ๋กฌํํธ(์ด์์ ์ผ๋ก๋ Chat mode์์)์ ๋ณต์ฌํ๊ณ ๋ค์๊ณผ ๊ฐ์ด ์์ฒญํ์ธ์:
- ์:
- โ์ฌ๊ธฐ ์ค๋ฅ์ ๊ด๋ จ ์ฝ๋ ์ค๋ํซ์ด ์์ต๋๋ค - ๋ฌด์์ด ์ด๋ฅผ ์ผ๊ธฐํ๊ณ ์ด๋ป๊ฒ ์์ ํ ์ ์๋์?โ
(Hereโs the error and relevant code snippet โ what is causing this and how can we fix it?)
- โ์ฌ๊ธฐ ์ค๋ฅ์ ๊ด๋ จ ์ฝ๋ ์ค๋ํซ์ด ์์ต๋๋ค - ๋ฌด์์ด ์ด๋ฅผ ์ผ๊ธฐํ๊ณ ์ด๋ป๊ฒ ์์ ํ ์ ์๋์?โ
- ์์ธํ ์ค๋ฅ ์ปจํ ์คํธ๋ AI๊ฐ ๋ฌธ์ ๋ฅผ ์ ํํ ์ฐพ์๋ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์:
-
๋๋ฒ๊น ํ๋ฉด์ CLEAR ์์น์ ์ฌ์ฉํ์ธ์:
- ์ฝ๋๊ฐ ๋ฌด์์ ํ๊ธฐ๋ก ๋์ด ์์๋์ง ๋ ์ค์ ๋ก ๋ฌด์์ด ์ผ์ด๋ฌ๋์ง์ ๋ํด ๋ช ์์ ์ผ๋ก ์ค๋ช ํ์ธ์.
- ๋๋๋ก AI์๊ฒ ๋ฒ๊ทธ๋ฅผ ์์ธํ ์ค๋ช ํ๋ ๊ฒ๋ง์ผ๋ก๋ ํด๊ฒฐ์ฑ ์ผ๋ก ์ด์ด์ง ๊ฒ์ ๋๋ค.
-
AI์ ์ฒซ ๋ฒ์งธ ์์ ์ด ์๋ํ์ง ์์ผ๋ฉด ์ ์์ ์์น์ ์ฌ์ฉํ์ธ์:
- ๋ฌด์์ด ๋ณ๊ฒฝ๋์๋์ง ๋๋ ์๋ก์ด ์ค๋ฅ๋ฅผ ์ ๊ณตํ๊ณ , ๋ค์ ์๋ํ๊ฑฐ๋ ๋์์ ์ ๊ทผ๋ฒ์ ์ ์ํ๋๋ก ์์ฒญํ์ธ์.
-
Chat Mode๋ฅผ ํ์ฉํ์ฌ ๋ฒ๊ทธ๋ฅผ ๋ ผ์ํ์ธ์:
- ์:
- โ์์ ์ด ์๋ํ์ง ์์์ต๋๋ค. ๋ฐํ์์ ์ํ๊ฐ ์ฌ์ ํ ์ ์๋์ง ์์์ต๋๋ค. ๋ ๋ค๋ฅธ ์์ธ์ด ๋ฌด์์ผ ์ ์๋์? ๊ฐ๋ฅํ ์์ธ๋ค์ ์๊ฐํด๋ด
์๋ค.โ
(The fix didnโt work. The state is still undefined at runtime. What else could be wrong? Letโs think through possible causes.)
- โ์์ ์ด ์๋ํ์ง ์์์ต๋๋ค. ๋ฐํ์์ ์ํ๊ฐ ์ฌ์ ํ ์ ์๋์ง ์์์ต๋๋ค. ๋ ๋ค๋ฅธ ์์ธ์ด ๋ฌด์์ผ ์ ์๋์? ๊ฐ๋ฅํ ์์ธ๋ค์ ์๊ฐํด๋ด
์๋ค.โ
- ๊ทธ๋ด๋ฏํ ํด๊ฒฐ์ฑ ์ ์ฐพ์ ๋๊น์ง ์ฃผ๊ณ ๋ฐ์ ์ ์๊ณ , ๊ทธ ๋ค์ Default Mode์์ ์ ์ฉํ ์ ์์ต๋๋ค.
- ์:
-
UI ๋ฒ๊ทธ์ ๊ฒฝ์ฐ, ์คํฌ๋ฆฐ์ท์ ๊ณต์ ํ๊ฑฐ๋ ์๊ฐ์ ๋ฌธ์ ๋ฅผ ์ค๋ช ํ ์๋ ์์ต๋๋ค.
- ์:
- โ์ฌ์ด๋๋ฐ๋ ๋ชจ๋ฐ์ผ์์ ์จ๊ฒจ์ ธ์ผ ํ๋๋ฐ ์ฌ์ ํ ๋ณด์
๋๋ค. ์ฌ๊ธฐ CSS๊ฐ ์์ต๋๋คโฆ ์ ์คํจํ ์ ์๋์?โ
(The sidebar is supposed to hide on mobile, but itโs still visible. Hereโs the CSSโฆ Why might it be failing?โ)
- โ์ฌ์ด๋๋ฐ๋ ๋ชจ๋ฐ์ผ์์ ์จ๊ฒจ์ ธ์ผ ํ๋๋ฐ ์ฌ์ ํ ๋ณด์
๋๋ค. ์ฌ๊ธฐ CSS๊ฐ ์์ต๋๋คโฆ ์ ์คํจํ ์ ์๋์?โ
- AI๋ ์ถฉ๋ถํ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ฉด CSS๋ ๋ ์ด์์ ๋ฌธ์ ์ ๋ํด ์ถ๋ก ํ ์ ์์ต๋๋ค.
- ์:
-
์์ ํ์๋ ํญ์ ํ ์คํธํ์ธ์.
- ์์ ํ ์ ๋๋ก ์๋ํ๋ค๋ฉด ์ญ ๋ฉํ ํ๋กฌํํ ์ ์ฌ์ฉํ์ฌ AI๊ฐ ๊ทผ๋ณธ ์์ธ์ด ๋ฌด์์ด์๊ณ ๋ฏธ๋์ ์ด๋ป๊ฒ ํผํ ์ ์๋์ง ์์ฝํ๋๋ก ํ์ฌ ์ง์ ๊ธฐ๋ฐ์ ํ๋ถํ๊ฒ ํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. (๋ ธํ์ฐ ์ถ์ )
AI๋ฅผ ์ธ์ (๊ทธ๋ฆฌ๊ณ ์ธ์ ํ์ง ๋ง์์ผ ํ ์ง) ์ฐธ์ฌ์ํฌ์ง
-
๋ง์คํฐ ํ๋กฌํํฐ๋ ๋๋๋ก ํ๋กฌํํธํ ํ์๊ฐ ์ ํ ์๋ค๋ ๊ฒ์ ์๋๋ค.
- ๋ณ๊ฒฝ์ฌํญ์ด ๊ทน๋๋ก ์๊ฑฐ๋(๋จ์ํ๊ฑฐ๋) ์ด๋ฏธ ๋น ๋ฅด๊ฒ ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์๋ค๋ฉด(์: ํ ์คํธ ๋ผ๋ฒจ ๋ณ๊ฒฝ, ํ๋์ ํจ๋ฉ ๊ฐ ์กฐ์ ), ์ฝ๋ ์๋ํฐ์์ ์๋์ผ๋ก ํ๋ ๊ฒ์ด ๋ ๋น ๋ฅผ ์ ์์ต๋๋ค.
- ์ฌ์ํ ์์ ์ AI์ ๊ณผ๋ํ๊ฒ ์์กดํ๋ฉด ์๋๊ฐ ๋๋ ค์ง๊ณ ํ๋กฌํํธ ํ ๋น๋์ ์ฌ์ฉํ ์ ์์ต๋๋ค. AI๊ฐ ๊ฐ์น๋ฅผ ๋ํ๋ ๊ณณ์์ ์ฌ์ฉํ์ธ์.
- ๋ณต์กํ ๋ก์ง, ๋ณด์ผ๋ฌํ๋ ์ดํธ ์์ฑ, ๋ค๋จ๊ณ ์์ , ๋๋ ํ์ ์ด ์์ง ์๋ ๊ฒ๋ค. ๋ ๊ฐ๋จํ ๋ฌธ์ ์ ๊ฒฝ์ฐ ๋ค์์ ํ ์ ์์ต๋๋ค:
-
์์ ์ ์ง์์ด๋ ๋น ๋ฅธ ๊ฒ์(๋๋ Lovable ์ธ๋ถ์์ ChatGPT์๊ฒ ์ง๋ฌธ)์ ์ฌ์ฉํ์ฌ ์์๋ด์ธ์.
- ํนํ AI๊ฐ ์คํดํ ์ ์๋ ๊ฒ์ ๋ํ ํ๋กฌํํธ๋ฅผ ์๋ชจํ์ง ์๋ ๊ฒฝ์ฐ์์.
- ๊ฐ๋ฐ์ ๋๊ตฌ ํ์ฉ: ๋ธ๋ผ์ฐ์ DevTools ์ฝ์์ ์ด์ด ์์๋ฅผ ๊ฒ์ฌํ๊ฑฐ๋ JavaScript ์ค๋ฅ๋ฅผ ์ค์๊ฐ์ผ๋ก ๋๋ฒ๊ทธํ์ธ์. ์์ ์ ์๋ณํ๋ฉด ์ง์ ๊ตฌํํ๊ฑฐ๋ ํ๋กฌํํธ๋ฅผ ํตํด ํ์ธํ ์ ์์ต๋๋ค.
-
์์:
- ๋ฒํผ์ด ์๋ชป๋ ์์์ด๋ผ๋ ๊ฒ์ ์์์ฐจ๋ ธ๋ค๋ฉด, AI์๊ฒ ๋ฌธ์ ๋ฅผ ์ค๋ช ํ๊ณ ์๋๋ ๊ฒ๋ณด๋ค ๋ ๋ง์ด ๋ณ๊ฒฝํ ์ํ์ ๊ฐ์ํ๋ ๊ฒ๋ณด๋ค CSS ํด๋์ค๋ฅผ ์ง์ ์์ ํ๋ ๊ฒ์ด ๋ ๋น ๋ฅผ ์ ์์ต๋๋ค.
- ๋ฐ๋ฉด์ ์ฒ์๋ถํฐ ์๋ก์ด ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ๋ค๋ฉด ์ด๋ AI์๊ฒ ์๋ฒฝํ ์์ ์ ๋๋ค - ๋ฌด์๊ณผ ์๋ฅผ ์ค๋ช ํ๋ฉด AI๊ฐ ์ฝ๋๋ก ์ด๋ป๊ฒ ํ ์ง ์์๋ ๋๋ค.
-
Lovable์ AI๋ ์ด์์คํดํธ ๊ฐ๋ฐ์์ ๊ฐ๋ค๋ ๊ฒ์ ๊ธฐ์ตํ์ธ์.
- ๋ช ํํ ์์ ๊ณผ ๊ฐ๋ ์ ์ ๊ณตํ์ฌ ๊ด๋ฆฌํฉ๋๋ค.
- ๊ฐ๋ฐ์ ๊ทน์ ์ผ๋ก ๊ฐ์ํํ ์ ์์ง๋ง, ์์ ์ ๊ฒํ ํ๊ณ ์ง์ํ๋ ๋ฆฌ๋๋ ์ฌ์ ํ ๋น์ ์ ๋๋ค.
๋ค์ํ ๋๊ตฌ์์ ์ด๋ฌํ ์ ๋ต ์ ์ฉ
์์ ํ๋กฌํํ ์์น๋ค์ Lovable์ ์ฑํ ๋ฟ๋ง ์๋๋ผ AI๋ ์๋ํ ๋๊ตฌ์ ์ํธ์์ฉํ๋ ์ด๋์๋ ์ ์ฉ๋ฉ๋๋ค:
Lovable์ Builder์์
์ฃผ๋ก Lovable ์ฑํ ์ธํฐํ์ด์ค์์ ์ด๋ฌํ ํ๋กฌํํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์ ๊ตฌ์ถํ๊ณ ๊ฐ์ ํ ๊ฒ์ ๋๋ค.
- ๊ด๋ฒ์ํ ํ๋ก์ ํธ ํ๋กฌํํธ๋ก ์์ํ ๋ค์ ๊ธฐ๋ฅ๋ณ๋ก ๋ฐ๋ณตํ์ธ์.
- ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ผ์ํ๊ฑฐ๋ ๋๋ฒ๊ทธํด์ผ ํ ๋๋ Chat-Only ๋ชจ๋๋ฅผ ์ฌ์ฉํ์ธ์.
Make.com์ด๋ n8n๊ณผ ํจ๊ป (์ํฌํ๋ก์ฐ ์๋ํ)
์ด๋ฐ ํ๋ซํผ์ ์ผ๋ฐ ๋ํ์ฒด ํ๋กฌํํธ์ ๋ฐฉ์์ด ์กฐ๊ธ ๋ค๋ฅผ ์ ์์ง๋ง, ์๋ํ ์ค๊ณ์๋ ์ฌ์ ํ ๋ช ํํ๊ณ ๊ตฌ์กฐํ๋ AI ์ง์๋ฌธ์ด ํฐ ๋์์ด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, Lovable์๊ฒ ํตํฉ ๋ก์ง ์์ฑ์ ์ง์ํ ์ ์์ต๋๋ค.
1
2
3
โํผ ์ ์ถ ์, Slack ์๋ฆผ์ ์ํด Make.com ์นํ
์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ผ.โ
When a form is submitted, send the data to a Make.com webhook for Slack notification.
Lovable์ ์นํ ๊ณผ์ ์ฐ๊ณ๋ฅผ ํตํด ์๋ํ ๊ตฌ์ถ์ ๋์ธ ์ ์์ต๋๋ค. ์ฑ์ด ์ด๋ฉ์ผ ๋ฐ์ก์ด๋ CRM ์ ๋ฐ์ดํธ์ฒ๋ผ ์ธ๋ถ ์์ ์ ์์ํด์ผ ํ ๋, Lovable์ด Make ๋๋ n8n์ ์ฌ์ฉํ๋๋ก ํ๋กฌํํธํ ์ ์์ต๋๋ค.
1
2
3
โ์ฌ์ฉ์๊ฐ ์ฑ์ ๊ฐ์
ํ๋ฉด, Salesforce์ ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ Make.com ์ํฌํ๋ก๋ฅผ ํธ๋ฆฌ๊ฑฐํ๋ผ.โ
After a user signs up in the app, trigger a Make.com workflow that creates a record in Salesforce.
์ด ๊ฒฝ์ฐ Lovable์ ํด๋น ์นํ /API ํธ์ถ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํฉ๋๋ค. ํ๋กฌํํธ๋ฅผ ๋ช ํํ ๋จ๊ณ์ ํ๋ผ๋ฏธํฐ๋ก ๊ตฌ์กฐํํด ๋๋ฉด, AI๊ฐ Lovable๊ณผ ์ธ๋ถ ์๋น์ค๋ฅผ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐํด์ผ ํ๋์ง ์ ํํ ํ์ ํฉ๋๋ค.
์ฃ์ง ์ผ์ด์ค ๋ฐ ์ธ๋ถ ์๋น์ค์์ ํตํฉ
Lovable์ ๋ง์ ์๋น์ค(Stripe, GitHub, Supabase ๋ฑ)์ ํตํฉ๋ฉ๋๋ค. ์ด๋ฅผ ์ํ ํ๋กฌํํ ์์๋ ํตํฉ ์ธ๋ถ์ฌํญ์ Context/Constraints์ ์ผ๋ถ๋ก ์ทจ๊ธํ์ธ์.
์๋ฅผ ๋ค์ด,
1
2
3
๊ฒฐ์ ๋ฅผ ์ํด ์์์ Stripe(ํ
์คํธ ๋ชจ๋)์ ์ฐ๊ฒฐํ์ธ์. ์ฑ๊ณต ์ /thank-you๋ก ๋ฆฌ๋๋ ์
ํ์ธ์.
Connect the form to Stripe (test mode) for payments. On success, redirect to /thank-you.
์ธ๋ถ ์๋น์ค๊ฐ ๋ฌด์์ ํด์ผ ํ๋์ง ๋ช ํํ ํ์ธ์. n8n(์์ฒด ํธ์คํ ์๋ํ) ์ฌ์ฉ์์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค - ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค:
1
2
3
4
5
์์ ์ ์ถ ํ n8n ์นํ
URL๋ก POST ์์ฒญ์ ๋ณด๋ด๊ณ ,
ํ์ธ ๋ฉ์์ง๋ฅผ ํ์ํ๊ธฐ ์ํด ์๋ต์ ๊ธฐ๋ค๋ฆฌ์ธ์.
Send a POST request to the n8n webhook URL after form submission,
and wait for its response to show a confirmation message.
์ฌ๊ธฐ์ ๋ช ํ์ฑ์ด ํต์ฌ์ด๋ฏ๋ก AI๊ฐ ์ฌ๋ฐ๋ฅธ ํธ์ถ์ ์์ฑํฉ๋๋ค.
TL;DR
- ๊ฐ๋ ฅํ ํ๋กฌํํ
์ ๋ช
ํ์ฑ, ๊ตฌ์กฐ, ์ปจํ
์คํธ์ ๊ดํ ๊ฒ์
๋๋ค.
- Lovable์๊ฒ ๊ธฐ๋ฅ์ ๊ตฌ์ถํ๋ผ๊ณ ๋งํ๋ Make.com ์๋๋ฆฌ์ค๋ฅผ ์กฐ์จํ๋ , ๋ชฉํ๋ ์ํ๋ ๊ฒ์ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
- ํ์ ์ด ์์ง ์์ผ๋ฉด ๊ตฌ์กฐํ๋ ํ๋กฌํํธ๋ก ์์ํ๊ณ , ์์ ๊ฐ์ ์ป์ผ๋ฉด์ ๋ ๋ํํ ์คํ์ผ๋ก ๋ฐ์ ์ํค์ธ์.
- ๋ฉํ ํ๋กฌํํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ํธ์์ฉ์์ ๊ฐ์ ํ๊ณ ๋ฐฐ์ฐ์ธ์.
- ์ฐ์ต์ ํตํด AI๋ฅผ ๊ฐ๋ฐํ์ ํ์ฅ์ฒ๋ผ ์๋ดํ ๊ฒ์ด๊ณ - ํ์ํ ์ ํํ ์ถ๋ ฅ์ ์ป๋ ๊ฒ์ด ์์ฐ์ค๋ฝ๊ฒ ๋๊ปด์ง ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก
์ด์ Lovable์ AI์ ๋ง์ถ ๋ช ํํ๊ณ ํจ๊ณผ์ ์ธ ํ๋กฌํํธ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ์คํ ์ดํด๋ฅผ ๊ฐ๊ฒ ๋์์ ๊ฒ์ ๋๋ค.
๊ธฐ๋ณธ์ ์ธ CLEAR ์์น๋ถํฐ few-shot ์์์ ๋ฉํ ํ๋กฌํํ ๊ฐ์ ๊ณ ๊ธ ์ ๋ต๊น์ง, ์ด๋ฌํ ๊ธฐ๋ฒ๋ค์ AI๋ก๋ถํฐ ์ ํํ ํ์ํ ๊ฒ์ ์ป์ ์ ์๋๋ก - ๊ทธ ์ด์๋ ๊ทธ ์ดํ๋ ์๋ - ํ์ ์ค์ด์ค๋๋ค. ์์ฒญ์ ๊ตฌ์กฐํํ๊ณ , ์ปจํ ์คํธ๋ฅผ ์ ๊ณตํ๊ณ , ํ๊ฐ๊ณผ ๊ฐ์ ํจ์ ์ ํผํ๊ณ , Lovable ํนํ ๊ธฐ๋ฅ๋ค(Knowledge Base, Chat mode ๋ฑ)์ ํ์ฉํ์ฌ ์ํฌํ๋ก์ฐ๋ฅผ ๊ฐ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ ์ต๋๋ค.
๋ง์คํฐ ์์ค์ ํ๋กฌํํ ์ ๊ฒ์ ์ฒด์ธ์ ์ ๋๋ค.
๋ง์คํฐ ์์ค์ ํ๋กฌํํ ์ AI๋ฅผ ๊ธฐ๋ฏน์์ ์ ๋ขฐํ ์ ์๋ ํ์์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค. ์ฐ์ต์ ํตํด ๋ ๋น ๋ฅด๊ฒ ์ฑ์ ๊ตฌ์ถํ๊ณ , ์ข์ ๊ฐ ์์ด ๋๋ฒ๊ทธํ๊ณ , ๋จ์ํ ์ฌ๋ฐ๋ฅธ ์ง๋ฌธ์ ํ๊ณ ์ฌ๋ฐ๋ฅธ ์๋ด๋ฅผ ์ ๊ณตํจ์ผ๋ก์จ ์ฐฝ์์ ์ธ ์๋ฃจ์ ์ ํ์ํ ์ ์๋ค๋ ๊ฒ์ ๋ฐ๊ฒฌํ ๊ฒ์ ๋๋ค. ํต์ฌ์ ์ง์์ฌํญ์์ ์ค๋งํธํ๊ณ , ๊ฐ๊ฒฐํ๊ณ , ์ง์ ์ ์ด๊ณ , ์ ์์ ์ผ๋ก ์ ์งํ๋ ๊ฒ์ ๋๋ค - ๋ง์น ์๋ จ๋ ์์ง๋์ด๊ฐ ํ๊ณผ ์ํตํ๋ ๊ฒ์ฒ๋ผ ๋ง์ด์ฃ .
๋ง์ง๋ง์ผ๋ก, ๊ฐ ์ํธ์์ฉ์์ ํญ์ ๋ฐฐ์ฐ์ธ์(๊ทธ ์ฑ์ฐฐ์ ์ต๊ด).
๋ชจ๋ ํ๋กฌํํธ/์๋ต์ ๊ธฐ๋ฒ์ ๋์ฑ ๊ฐ์ ํ๊ธฐ ์ํ ํผ๋๋ฐฑ์ ๋๋ค. Lovable์์ ๊ณ์ ๊ตฌ์ถํ๋ฉด์ AI๊ฐ ํ๋ฅญํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๊ธฐ ์ํด ๋ค์ด์ผ ํ๋ ๊ฒ์ ๋ํ ์ง๊ฐ์ ๊ฐ๋ฐํ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ์์ ์ ๋ ์ฐฝ์ฑ๊ณผ ๊ฒฐํฉํ๋ฉด ๋ฌ์ฑํ ์ ์๋ ๊ฒ์ด ๊ฑฐ์ ์์ต๋๋ค.
ํฐ ์์ด๋์ด์ ์ง์คํ์ธ์
๋ฌด์์ ํด์ผ ํ๋์ง ๋ช ํํ ์๋ ค์ฃผ๋ฉด Lovable์ AI๊ฐ ์คํ ์ธ๋ถ์ฌํญ์ ์ฒ๋ฆฌํ๋๋ก ํ์ธ์.
ํ๋ณตํ ํ๋กฌํํ
๊ณผ ํ๋ณตํ ๊ตฌ์ถ์!
์ค๋๋ ์ฝ์ด์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค ๐