๋ชจ๋ํฐ๋ง
CSO ์ ์ฐ ํฌํธ์ ๋ฐฐํฌ ์ํ, ์ด๋ฉ์ผ ๋ฐ์ก ์ด๋ ฅ, ์์คํ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
Vercel ๋ฐฐํฌ ์ํ ํ์ธ
ํฌํธ์ GitHub main ๋ธ๋์น์ pushํ๋ฉด Vercel์ด ์๋์ผ๋ก ๋น๋ํ๊ณ ๋ฐฐํฌํฉ๋๋ค.
๋ฐฐํฌ ํํฉ ํ์ธ
- Vercel ๋์๋ณด๋ย ์ ๋ก๊ทธ์ธํฉ๋๋ค.
- csoweb ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
- Deployments ํญ์์ ๋ฐฐํฌ ์ด๋ ฅ์ ํ์ธํฉ๋๋ค.
| ์ํ | ์๋ฏธ |
|---|---|
| Ready | ๋ฐฐํฌ ์๋ฃ, ์ ์ ์ด์ ์ค |
| Building | ๋น๋ ์งํ ์ค |
| Error | ๋น๋ ์คํจ |
| Canceled | ๋ฐฐํฌ ์ทจ์๋จ |
ํ๋ฆฌ๋ทฐ ๋ฐฐํฌ
PR(Pull Request) ์์ฑ ์ Vercel์ด ์๋์ผ๋ก ํ๋ฆฌ๋ทฐ URL์ ์์ฑํฉ๋๋ค. ํ๋ฆฌ๋ทฐ ๋ฐฐํฌ์์ ๋ณ๊ฒฝ ์ฌํญ์ ํ์ธํ ํ main์ ๋จธ์งํ๋ฉด ํ๋ก๋์
์ ๋ฐ์๋ฉ๋๋ค.
์ด๋ฉ์ผ ๋ฐ์ก ์ด๋ ฅ (/admin/emails)
๋ฐ์ก๋ ๋ชจ๋ ์ด๋ฉ์ผ ๋ด์ญ์ ์กฐํํฉ๋๋ค.
ํต๊ณ ์นด๋
ํ์ด์ง ์๋จ์ 4๊ฐ์ ํต๊ณ ์นด๋๊ฐ ํ์๋ฉ๋๋ค.
| ์นด๋ | ์ค๋ช |
|---|---|
| ์ ์ฒด | ์กฐํ ๊ธฐ๊ฐ ๋ด ์ด ์ด๋ฉ์ผ ์ |
| ๋ฐ์ก ์๋ฃ | ์ ์์ ์ผ๋ก ์ ๋ฌ๋ ์ด๋ฉ์ผ ์ |
| ๋ฐ์ก ์คํจ | ์ ์ก์ ์คํจํ ์ด๋ฉ์ผ ์ |
| ๋๊ธฐ ์ค | ์์ง ๋ฐ์ก๋์ง ์์ ์ด๋ฉ์ผ ์ |
ํํฐ๋ง
| ํํฐ | ์ต์ |
|---|---|
| ๊ธฐ๊ฐ | ์ต๊ทผ 7์ผ, 30์ผ, 90์ผ, ์ ์ฒด |
| ์ ํ | ์ ์ฒด, ๊ฐ์ ์ ์ฒญ, ์น์ธ์๋ฃ, ๊ฑฐ๋ถ, ์ ์ฐ์ ๋ก๋, ๋น๋ฐ๋ฒํธ์ฌ์ค์ , ๋ฉ์ผ๋จธ์ง |
| ์ํ | ์ ์ฒด, ๋ฐ์ก์๋ฃ, ์คํจ, ๋๊ธฐ์ค |
์ด๋ฉ์ผ ๋ก๊ทธ ํ ์ด๋ธ
| ์ปฌ๋ผ | ๋ด์ฉ |
|---|---|
| ์์ ์ | ์ด๋ฉ์ผ ์ฃผ์ |
| ์ ๋ชฉ | ์ด๋ฉ์ผ ์ ๋ชฉ |
| ์ ํ | ์ด๋ฉ์ผ ํ ํ๋ฆฟ ์ ํ (๋ฑ์ง) |
| ์ํ | sent/failed/pending (์์ ๋ฑ์ง) |
| ๋ฐ์ก์ผ์ | ๋ฐ์ก ์๋ฃ ์์ |
| ์๋ฌ ๋ฉ์์ง | ์คํจ ์ ์๋ฌ ๋ด์ฉ |
์คํจํ ์ด๋ฉ์ผ์ ๋นจ๊ฐ์ ๋ฑ์ง๋ก ํ์๋๋ฉฐ, ์๋ฌ ๋ฉ์์ง๋ฅผ ํ์ธํ์ฌ ์์ธ์ ํ์ ํ ์ ์์ต๋๋ค.
๋ฉ์ผ๋จธ์ง ๋ฐ์ก (/admin/mailmerge)
CSO ์ ์ฒด๋ค์๊ฒ ๊ฐ์ธํ๋ ์ด๋ฉ์ผ์ ์ผ๊ด ๋ฐ์กํฉ๋๋ค. ๊ฐ ์ ์ฒด์ ์ ์ฐ ๋ฐ์ดํฐ๋ฅผ ๋ณธ๋ฌธ์ ํฌํจํ ์ ์์ต๋๋ค.
์์ ์ ์ค์
| ์ต์ | ์ค๋ช |
|---|---|
| ์ ์ฒด ํ์ | ์น์ธ๋ ๋ชจ๋ CSO ์ ์ฒด์ ๋ฐ์ก |
| ์ ์ฐ์ ๊ธฐ์ค | ํน์ ์ ์ฐ์์ ๋ฐ์ดํฐ๊ฐ ์๋ ์ ์ฒด์๋ง ๋ฐ์ก |
์น์ (๊ฑฐ๋์ฒ๋ณ, ์ ํ๋ณ, ์์ ์ฌ์๋ณ ๋ฑ)์ ์ ํํ์ฌ ์ ์ฐ ํ ์ด๋ธ์ ๋ณธ๋ฌธ์ ํฌํจํ ์ ์์ต๋๋ค. ์น์ ์์๋ ๋๋๊ทธ๋ก ๋ณ๊ฒฝ ๊ฐ๋ฅํฉ๋๋ค.
์ด๋ฉ์ผ ์์ฑ
- ์ ๋ชฉ: ๋ณ์ ์ฝ์
๊ฐ๋ฅ (์:
{{์ ์ฒด๋ช }}๋ ์ ์ฐ ์๋ด) - ๋ณธ๋ฌธ: ์์ ํ ์คํธ + ๋ณ์ ์ฝ์
- ์ฌ์ฉ ๊ฐ๋ฅ ๋ณ์:
{{์ ์ฒด๋ช }},{{๋ํ์๋ช }},{{์ฌ์ ์๋ฒํธ}},{{์ ์ฐ์}}๋ฑ
๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฐ ํ ์คํธ ๋ฐ์ก
- ๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ฒํผ ํด๋ฆญ โ ๋ณ์๊ฐ ์นํ๋ ์ค์ ์ด๋ฉ์ผ ๋ด์ฉ ํ์ธ
- ํ ์คํธ ๊ณ์ ์ ํ โ ํ ์คํธ ๋ฐ์ก ์ผ๋ก ์ค์ ์์ ํ์ธ
- ํ ์คํธ ํ์ธ ํ ๋ฐ์กํ๊ธฐ ํด๋ฆญ
๋ฐ์ก ๊ณผ์
๋ฐ์ก์ SSE(Server-Sent Events)๋ฅผ ํตํด ์ค์๊ฐ ์งํ ์ํฉ์ ํ์ํฉ๋๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์งํ๋ฅ ๋ฐ | ์ ์ฒด ๋๋น ๋ฐ์ก ์๋ฃ ํผ์ผํธ |
| ์์ ์์ฌ ์๊ฐ | ๋จ์ ๋ฐ์ก ์๊ฐ ์๋ ๊ณ์ฐ |
| ์ค์๊ฐ ๋ก๊ทธ | ๊ฐ ์ด๋ฉ์ผ ๋ฐ์ก ๊ฒฐ๊ณผ (์ฑ๊ณต/์คํจ) ์์ฐจ ํ์ |
| ์ทจ์ ๋ฒํผ | ๋ฐ์ก ์ค ์ธ์ ๋ ์ค๋จ ๊ฐ๋ฅ |
๋ฐ์ก ๊ฐ๊ฒฉ
| ์ค์ | ๊ธฐ๋ณธ๊ฐ | ์ค๋ช |
|---|---|---|
| ์ด๋ฉ์ผ ๋ฐ์ก ๊ฐ๊ฒฉ | 6์ด | ๋ฉ์ผ๋จธ์ง ์ ๊ฑด๋ณ ๋๊ธฐ ์๊ฐ |
| ๋ฐฐ์น ์น์ธ ๊ฐ๊ฒฉ | 200ms | ์ผ๊ด ์น์ธ ์ด๋ฉ์ผ ๊ฐ ๋๊ธฐ ์๊ฐ |
๋ฐ์ก ๊ฐ๊ฒฉ์ /admin/email-settings์์ email_send_delay_ms ๊ฐ์ผ๋ก ์กฐ์ ํ ์ ์์ต๋๋ค. Resend API์ Rate Limit(์ด๋น 2๊ฑด)์ ์ด๊ณผํ์ง ์๋๋ก 6์ด ์ด์์ ๊ถ์ฅํฉ๋๋ค.
๋ฐ์ก ๊ฒฐ๊ณผ
๋ฐ์ก ์๋ฃ ํ ๊ฒฐ๊ณผ ์์ฝ์ด ํ์๋ฉ๋๋ค.
| ํญ๋ชฉ | ์ค๋ช |
|---|---|
| ์ด ๋ฐ์ก ์ | ์๋ํ ์ด๋ฉ์ผ ์ |
| ์ฑ๊ณต | ์ ์ ๋ฐ์ก๋ ์ |
| ์คํจ | ๋ฐ์ก ์คํจํ ์ + ์๋ฌ ๋ด์ฉ |
| ์์ ์๊ฐ | ์ ์ฒด ๋ฐ์ก์ ๊ฑธ๋ฆฐ ์๊ฐ |
์์คํ ์ ๋ณด (/admin/system)
์์คํ ๊ตฌ์ฑ ๋ฐ ์ธ๋ถ ์๋น์ค ์ฐ๊ฒฐ ์ํ๋ฅผ ํ๋์ ํ์ธํฉ๋๋ค. ์ฝ๊ธฐ ์ ์ฉ ํ์ด์ง์ ๋๋ค.
์ฑ ์ ๋ณด ์นด๋
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ์ฑ ์ด๋ฆ | CSO ์ ์ฐ ํฌํธ |
| ๋ฒ์ | package.json ๋ฒ์ |
| ํ๊ฒฝ | production / development |
| Node.js ๋ฒ์ | ๋ฐํ์ ๋ฒ์ |
๋ฐฐํฌ ์นด๋
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ๋ฐฐํฌ ํ๋ซํผ | Vercel |
| ๋ฐฐํฌ URL | ํ๋ก๋์ ๋๋ฉ์ธ |
| ๋น๋ ID | Vercel ๋ฐฐํฌ ID |
| ๋ฆฌ์ | ๋ฐฐํฌ ๋ฆฌ์ |
๋ฐ์ดํฐ๋ฒ ์ด์ค ์นด๋
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ํ๋ก๋ฐ์ด๋ | Supabase |
| ์ฐ๊ฒฐ ์ํ | ์ ์/์ค๋ฅ |
| ํ๋ก์ ํธ URL | Supabase ํ๋ก์ ํธ ์ฃผ์ |
์ธ๋ถ API ์นด๋
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Resend API | ์ค์ ์ฌ๋ถ ๋ฐ ์ฐ๊ฒฐ ์ํ |
| SMTP | ํธ์คํธ/ํฌํธ ์ค์ ์ํ |
์ธ์ฆ ์นด๋
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| JWT Secret | ์ค์ ์ฌ๋ถ (๊ฐ์ ํ์ํ์ง ์์) |
| ์ธ์ ๋ง๋ฃ | 24์๊ฐ |
์ด๋ฉ์ผ ์๋น์ค ์นด๋
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ํ์ฌ ํ๋ก๋ฐ์ด๋ | Resend ๋๋ SMTP |
| ๋ฐ์ ์ด๋ฉ์ผ | ์ค์ ๋ ๋ฐ์ ์ ์ฃผ์ |
| ๋ฐ์ก ๊ฐ๊ฒฉ | ์ค์ ๋ ๋๋ ์ด (ms) |
์๋ฌ ๋ก๊ทธ ํ์ธ
Vercel ๋์๋ณด๋
- Vercel ๋์๋ณด๋ โ csoweb ํ๋ก์ ํธ โ Logs ํญ
- Runtime Logs: ์๋ฒ ์ฌ์ด๋ ์๋ฌ (API ๋ผ์ฐํธ, ์๋ฒ ์ปดํฌ๋ํธ)
- Build Logs: ๋น๋ ์ ๋ฐ์ํ ์๋ฌ
์ฃผ์ ๋ชจ๋ํฐ๋ง ํฌ์ธํธ
| ํญ๋ชฉ | ํ์ธ ๋ฐฉ๋ฒ | ๋น๋ |
|---|---|---|
| ๋ฐฐํฌ ์ํ | Vercel Deployments | ๋ฐฐํฌ ์ |
| ์ด๋ฉ์ผ ๋ฐ์ก ์คํจ | /admin/emails ์คํจ ํํฐ | ์ฃผ 1ํ |
| CSO ๋งค์นญ ๋๋ฝ | /admin/integrity | ์ ๋ก๋ ํ |
| DB ์ฐ๊ฒฐ | /admin/system | ๋ฌธ์ ๋ฐ์ ์ |
| API ์๋ฌ | Vercel Runtime Logs | ๋ฌธ์ ๋ฐ์ ์ |
์ด๋ฉ์ผ ์๋ฆผ ์ค์ (/admin/email-settings)
์ด๋ฉ์ผ ์ ํ๋ณ๋ก ์๋ ๋ฐ์ก ์ฌ๋ถ๋ฅผ ON/OFFํ ์ ์์ต๋๋ค.
| ์ ํ | ๊ธฐ๋ณธ๊ฐ | ์์ ์ |
|---|---|---|
| ๊ฐ์ ์ ์ฒญ ์๋ฆผ | ON | ๊ด๋ฆฌ์ |
| ์น์ธ ์๋ฃ ์๋ฆผ | ON | ํ์ |
| ๊ฑฐ๋ถ ์๋ฆผ | ON | ํ์ |
| ์ ์ฐ์ ์ ๋ก๋ ์๋ฆผ | ON | ํ์ |
| ๋น๋ฐ๋ฒํธ ์ฌ์ค์ | ON | ํ์ |
๋ฉ์ผ๋จธ์ง๋ ์๋ ๋ฐ์ก์ด๋ฏ๋ก ์ด ์ค์ ์ ํฌํจ๋์ง ์์ต๋๋ค.
์ด๋ฉ์ผ ํ๋ก๋ฐ์ด๋ ์ค์
| ํ๋ก๋ฐ์ด๋ | ์ค์ ํญ๋ชฉ |
|---|---|
| Resend | API ํค (ํ๊ฒฝ๋ณ์), ๋ฐ์ ์ด๋ฉ์ผ ์ฃผ์ |
| SMTP (ํ์ด์์ค) | ํธ์คํธ, ํฌํธ(465 SSL), ์ฌ์ฉ์๋ช , ๋น๋ฐ๋ฒํธ, ๋ฐ์ ์๋ช , ๋ฐ์ ์ด๋ฉ์ผ |
ํ๋ก๋ฐ์ด๋ ์ ํ ์ ์ฐ๊ฒฐ ํ
์คํธ ๋ฒํผ์ผ๋ก ์ค์ ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํ ์ ์์ต๋๋ค. ํ
์คํธ ์ด๋ฉ์ผ์ด test_recipient_email๋ก ๋ฐ์ก๋ฉ๋๋ค.