์๊ฐ
โ ์ ๋ด์ค๋ ํฐ์ธ๊ฐ์?
SNS๊ฐ โ์ฐพ์์ค๊ฒ ํ๋ ๋ง์ผํ
โ์ด๋ผ๋ฉด, ๋ด์ค๋ ํฐ๋ โ๋ด๊ฐ ๋จผ์ ๋ค๊ฐ๊ฐ๋ ์ง์ฌ์ ๋ง์ผํ
โ์
๋๋ค.
์ ๋ ๊ต์ก ๋ธ๋๋ โ์ ๋ค๋ฆฐ ํด๋์คโ๋ฅผ ์ด์ํ๋ฉด์, ์ผ๋ฐฉ์ ์ธ ํ๋ณด๋ณด๋ค๋ ๊พธ์คํ ์ ๋ขฐ์ ๊ฐ์ฑ ๊ต๊ฐ์ด ์๋ ์ฑ๋์ด ํ์ํ๋ค๊ณ ๋๊ผ์ต๋๋ค.
๋ด์ค๋ ํฐ๋ ๋จ์ํ ์ ๋ณด ์ ๋ฌ์ด ์๋๋ผ, ๋ธ๋๋์ ์ธ๊ณ๊ด๊ณผ ์ฒ ํ์ ์ฐจ๊ณก์ฐจ๊ณก ์์๊ฐ๋ ๊ด๊ณํ ๋ง์ผํ
์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฌ๋ฆ์ ๋ง์ดํ์ฌ ์๋ก์ด ํน๊ฐ์ ์งํํ๊ฒ ๋์ด ๊ทธ๋์ ๋ฏธ๋ฃจ์๋ ๋ด์ค๋ ํฐ๋ฅผ CURSOR AI๋ฅผ ํตํด ๋ง๋ค์ด ๋ณด์์ต๋๋ค.
์งํ ๋ฐฉ๋ฒ
๋ด์ค๋ ํฐ ๊ธฐํ๋ถํฐ ์์
๋ธ๋๋ ํค์ค๋งค๋ ์ ๋ฆฌ
๋ ์ ํ๋ฅด์๋ ์ค์ (์: ์ด๋ฑ ์์ด ๊ต์ก์ ๊ด์ฌ ์๋ 30-40๋ ํ๋ถ๋ชจ)
์ฝํ ์ธ ๊ตฌ์ฑ์ ๊ธฐํ
์๋จ ๋ก๊ณ /๋ด์ค๋ ํฐ ๋ช
์:
ADELINE MONTHLY โ ์ ๋ค๋ฆฐ ํด๋์ค ๋ด์ค
ํค๋๋ผ์ธ ๋ฐฐ๋
ํฐ์ค ์๋ด / ํน๊ฐ ์ ์ฒญ ๋งํฌ ํฌํจ
ํต์ฌ ์ฝํ ์ธ ๋ธ๋ญ
๐ฏ ์์ ์์
๐ ํน๊ฐ/์ด๋ฒคํธ
ํ๋ถ๋ชจ์ฉ (์ 1ํ)
๋์์ธ: ํ์คํ ํค, ์๊ธฐ์๊ธฐํ ์์ด์ฝ ๋ฐ ์น๊ทผํ ๋ ์ด์์
๊ตฌ์ฑ ์:
์๋จ ๋ฐฐ๋ ๋ฐ ๋ก๊ณ
์์ ์คํ / ํฐ์ค ์๊ฐ
ํน๊ฐ ๋๋ ์ด๋ฒคํธ ์๋ด
์ฝํ ์ธ ๊ตฌ์ฑ & ์๊ฐํ
์์ํ ์๊ฐ + ์ง๊ด์ ์ธ ํ์ดํฌ & ์์ด์ฝ ํ์ฉ
์ฐธ๊ณ ํ ํ๋ฆฟ: Canva์ ํ๊ธ/๊ฐ์ ์ฉ ๋ด์ค๋ ํฐ ํ ํ๋ฆฟ
Cursor ๊ธฐ๋ฐ ๋ฆฌ์กํธ ์ด๋ฉ์ผ ํ ํ๋ฆฟ ์ ์ ๊ฐ์ด๋
๋ชฉ์ :
Header #1 + Body #4์ฌ์ฌ์ฉ ๊ตฌ์กฐ์ ๋ฆฌ์กํธ ์ด๋ฉ์ผ ํ ํ๋ฆฟ์ Cursor์์ ์ ์
โ ์ค๋น ์์ฝ
ํ ํ๋ฆฟ ํ์:
React + JSX + inline CSS์ฌ์ฉ ํด: Cursor, React Email, imgbb, putsmail
๐งญ ์ ์ฒด ์์ ์์
๐น 1. React Email ๊ณต์ ๋ฌธ์ ํ์ธ
๐ react.email/docs ์ ์ ์
ํ ํ๋ฆฟ ๊ตฌ์กฐ, ์ปดํฌ๋ํธ ์ข ๋ฅ, CSS ์ฌ์ฉ ๋ฐฉ์ ํ์ธ
์์ ์ฝ๋ ์ฐธ๊ณ :
<Section>,<Button>,<Text>๋ฑ
๐น 2. Cursor์์ ์ ํด๋ ๋ง๋ค๊ธฐ
File > New Folder๋ก ํ๋ก์ ํธ ์์ฑ์:
/react-email-templates/adeline/
๐น 3. ํ์ ํด๋ ๊ตฌ์กฐ ๋ง๋ค๊ธฐ
๐ /adeline/ โโโ components/ โ โโโ Header1.jsx โ โโโ Body4.jsx โโโ templates/ โ โโโ AdelineSummerNewsletter.jsx โโโ assets/ โ โโโ summer-banner.png โโโ styles/ โ โโโ email.css (์ ํ์ฌํญ)
๐น 4. Header #1 ์ฝ๋ ์์ฑ
// components/Header1.jsx export default function Header1() { return ( <div style={{ backgroundColor: '#f2f2f2', padding: '20px', textAlign: 'center', fontSize: '20px', fontWeight: 'bold' }}> ๐ฌ ADELINE ENGLISH CLASS </div> ); }
๐น 5. Body #4 ์ฝ๋ ์์ฑ
// components/Body4.jsx export default function Body4({ title, content, cta }) { return ( <div style={{ padding: '20px', fontSize: '16px' }}> <h2>{title}</h2> <p>{content}</p> <a href={cta.url} style={{ display: 'inline-block', backgroundColor: '#00a86b', padding: '10px 20px', color: '#fff', textDecoration: 'none', borderRadius: '4px', marginTop: '10px' }}> {cta.label} </a> </div> ); }
๐น 6. ํ ํ๋ฆฟ ๊ฒฐํฉ (AdelineSummerNewsletter)
// templates/AdelineSummerNewsletter.jsx import Header1 from '../components/Header1'; import Body4 from '../components/Body4'; export default function AdelineSummerNewsletter() { return ( <div style={{ fontFamily: 'Arial, sans-serif' }}> <Header1 /> <Body4 title="๐ค ์ฌ๋ฆ ํน๊ฐ OPEN!" content="KPOP ๋ฐ์ ํด๋์ค์ ์์ด ๋งํ๊ธฐ ๋ํ๋ฅผ ์ค๋นํ์ธ์. ์ฌ๋ฆ๋ฐฉํ์ ์์ด ์์ ๊ฐ์ผ๋ก ๊ฐ๋ ์ฑ์๋ณด์ธ์!" cta={{ url: 'https://adelineclass.kr/summer', label: '์ง๊ธ ์ ์ฒญํ๊ธฐ' }} /> </div> ); }
๐น 7. ์ด๋ฏธ์ง ๋งํฌ ๋ฃ๊ธฐ (imgbb ์ฌ์ฉ)
https://imgbb.com ์์ ์ด๋ฏธ์ง ์ ๋ก๋
์์ฑ๋ URL์ ํ ํ๋ฆฟ ๋ด
<img src="..." />๋ก ์ฝ์
<img src="https://i.ibb.co/XXXX/banner.png" alt="Summer Banner" width="100%" />
๐น 8. ์ด๋ฉ์ผ ํ ์คํธ (putsmail ์ฌ์ฉ)
https://putsmail.com ์ ์
HTML๋ก ๋ด๋ณด๋ธ ์ด๋ฉ์ผ ๋ด์ฉ ๋ถ์ฌ๋ฃ๊ธฐ
์ด๋ฉ์ผ ์ฃผ์ ์ ๋ ฅ ํ โSendโ ํด๋ฆญ
๐น 9. ํ ํ๋ฆฟ ์ฌํ์ฉ ์ ๋ต
Header1,Body4๋ฅผ ๋ค๋ฅธ ํ ํ๋ฆฟ์๋ importํ์ฌ ์์ ๋กญ๊ฒ ์กฐํฉJSX ๊ธฐ๋ฐ์ด๋ฏ๋ก ํ ์คํธ/๋ฒํผ/๋ฐฐ๊ฒฝ ๋ฑ ์ฝ๊ฒ ๊ต์ฒด ๊ฐ๋ฅ
๋ฐ๋ณต ํ ํ๋ฆฟ ์ ์์ ์ฉ์ดํจ
๐ ์์ฝ ์ด๋ฏธ์ง ๊ธฐ๋ฐ ํต์ฌ ํฌ์ธํธ
๋จ๊ณ
์ค๋ช
์ฐธ๊ณ
1
๊ณต์ ๋ฌธ์ ํ์ธ
react.email/docs
2
Cursor ์ ํด๋ ๋ง๋ค๊ธฐ
โฌ๏ธ ์ฒจ๋ถ ์ด๋ฏธ์ง 1
3
์ด๋ฏธ์ง ์ ๋ก๋
imgbb.com
4
์ด๋ฉ์ผ ํ ์คํธ
putsmail.com
โ ๋ค์ ์์ฒญ ๊ฐ๋ฅ:
์ ๋ด์ฉ Markdown ํ์ผ๋ก ์ ์ฅ
Cursor์ฉ
.jsxํ์ผ ์์ถ ์ ๊ณต๋คํฌ๋ชจ๋ or ๋ชจ๋ฐ์ผ ๋์ ํ ํ๋ฆฟ ์ถ๊ฐ ๋์์ธ
VS CANVA๋ก ์ ์
๊ฒฐ๊ณผ์ ๋ฐฐ์ด ์
๐ฏ ๊ฒฐ๊ณผ & ๋ฐฐ์ด ์
๋จ์ ํ ์ ๋ณด๋ณด๋ค โ๊ฐ์ฑ + ์ง์ฌ + ๊ตฌ์ฒด์ฑโ์ด ์ ๋ฌ๋ ฅ์ ๋์
CURSOR ๋ฅผ ํตํด ๋จธ๋ฆฟ์์ ๊ธฐํ์ด ์์ํ์ผ๋ก ๋์ค๋ ๊ฒฝํ
๋ด์ค๋ ํฐ๋ ๋ธ๋๋์ ๋ชฉ์๋ฆฌ๋ฅผ ์จ์ ํ ๋ด์ ์ ์๋, ์ฝํ ์ธ ํผ๋์ ์์์ ์ด๋ผ๋ ์ ์ ์ฒด๊ฐ
โจ ๋๋ง์ ๊ฟํ 3๊ฐ์ง
ํค๋๋ผ์ธ์ ๊ฐ์ ์์ ์์ํ์ธ์.
๊ถ๊ธ์ฆ + ๊ณต๊ฐ ์์๋ฅผ ๋ฃ์ผ๋ฉด ํด๋ฆญ๋ฅ ์ด ์ฌ๋ผ๊ฐ๋๋ค.
๋์ด์ ๋ง๊ณ ์ ์ ํ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ด ๊ฐ๋ ์ฑ์ ์ฌ๋ฆฌ์ธ์. ์ฌ๋ฆ์ด๋ผ ์ฌ๋ฆ๊ณผ ๊ด๋ จ๋ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์์ต๋๋ค.
๋ด์ค๋ ํฐ ํค์ ๋ฐ๊พธ์ง ๋ง๊ณ , ํฌ๋งท๋ง ์๋กญ๊ฒ
๋ธ๋๋ ๊ฒฐ์ ์งํค๋ฉด์ ์น์ ๋ง ๋ฐ๊พธ๋ ๊ฒ ๋ ํจ๊ณผ์ ์ ๋๋ค.
๐ ์ํ์ฐฉ์ค๋ ์์์ด์ ๋ด์ค๋ ํฐ์ ํค๋ ์ด๋ฏธ์ง๊ฐ ๊ณ์ ๋ณด์ด์ง ์์ ๊ณ ์ํ๋ค ๊ฒฐ๊ตญ ๋ค๋ฅธ ์ ๋ก๋ ์ฌ์ดํธ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ฌ๋ฆฌ๊ฒ ๋์์ต๋๋ค. ๋ํ ์์ง์ CANVA๋ก ์ ์ํ๋ ๊ฒ ๋งํผ์ ์ด๋ฏธ์ง๋ก ์ ๋ฌํ๋ ๋ด์ค๋ ํฐ ์ ์์ ์ข ๋ ๊ณต๋ถ๋ฅผ ํด์ผ ํ ๋ฏ
๐ ์์ผ๋ก์ ๊ณํ
์์ฆ๋ณ ์ฝํ ์ธ ์๋ฆฌ์ฆ ๊ธฐํ (์: ์ฌ๋ฆ๋ฐฉํ ์์ด ๊ฟํ, ์ํ๊ธฐ ์์ด ์ค๋น ๋ฑ)
๋ ์ ํผ๋๋ฐฑ์ ๋ฐ์ํ ์ฝ๋ ์ ์ค
AI ์์ฝ/์ถ์ฒ ์ฝํ ์ธ ๊ธฐ๋ฅ๋ ๋์ ํ ์์
๋์ ๋ฐ์ ๊ธ (์ต์ )
17๊ธฐ ์คํํธ์ ์คํ์ค CEO*CTO 7์ 26์ผ ์คํ๋ผ์ธ ๊ฐ์