๋ฌธ์ ํด๊ฒฐ
CSO ์ ์ฐ ํฌํธ ์ด์ ์ค ๋ฐ์ํ ์ ์๋ ์ฃผ์ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์์ ์ ๋ก๋ ์คํจ
ํ์ผ ํ์ ์ค๋ฅ
์ฆ์: โ์ง์ํ์ง ์๋ ํ์ผ ํ์์ ๋๋คโ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์์ธ ๋ฐ ํด๊ฒฐ:
| ์์ธ | ํด๊ฒฐ |
|---|---|
.csv ํ์ผ ์
๋ก๋ | .xlsx ๋๋ .xls ํ์์ผ๋ก ์ ์ฅ ํ ์ฌ์
๋ก๋ |
| ํ์ผ ํฌ๊ธฐ 4MB ์ด๊ณผ | ๋ถํ์ํ ์ํธ/ํ ์ญ์ ํ ์ฌ์ ๋ก๋ |
| ํ์ผ ์์ | SIT ์๋ฃจ์ ์์ ์์ ์ ๋ค์ ๋ด๋ณด๋ด๊ธฐ |
์ปฌ๋ผ ๊ตฌ์กฐ ๋ถ์ผ์น
์ฆ์: โํ์ ์ปฌ๋ผ์ด ๋๋ฝ๋์์ต๋๋คโ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
ํ์ ์ปฌ๋ผ: ์ฌ์
์๋ฒํธ, ์ ์ฐ์
ํด๊ฒฐ ์ ์ฐจ:
- โ์ปฌ๋ผ ๋งคํ ํ์ธโ ๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
- ๋งคํ ๋ค์ด์ผ๋ก๊ทธ์์ ์์ ์ปฌ๋ผ๊ณผ DB ์ปฌ๋ผ์ ๋์ ๊ด๊ณ๋ฅผ ํ์ธํฉ๋๋ค.
- ์๋ ๋งคํ์ด ์คํจํ ์ปฌ๋ผ์ ์๋์ผ๋ก ์ง์ ํฉ๋๋ค.
- ํ์ ์ปฌ๋ผ์ด ๋ชจ๋ ๋งคํ๋์๋์ง ํ์ธ ํ ์ ๋ก๋ํฉ๋๋ค.
์๋ ๋งคํ ๊ธฐ์ค: ์ปฌ๋ผ๋ช ์ ์ฌ๋ ์ ์ 0.6 ์ด์์ด๋ฉด ์๋ ๋งคํ๋ฉ๋๋ค. SIT ์๋ฃจ์ ๋ฒ์ ์ ๋ฐ๋ผ ์ปฌ๋ผ๋ช ์ด ๋ฏธ์ธํ๊ฒ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ์๋ ํ์ธ์ ๊ถ์ฅํฉ๋๋ค.
์ธ์ฝ๋ฉ ๋ฌธ์
์ฆ์: ์ ๋ก๋ ํ ํ๊ธ์ด ๊นจ์ ธ์ ํ์๋ฉ๋๋ค.
ํด๊ฒฐ:
- SIT ์๋ฃจ์
์์
.xlsxํ์์ผ๋ก ๋ด๋ณด๋ด๊ธฐํฉ๋๋ค (.xls๋ณด๋ค ๊ถ์ฅ). - Excel์์ ํ์ผ์ ์ด๊ณ โ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ์ ์ฅโ โ โExcel ํตํฉ ๋ฌธ์(*.xlsx)โ๋ก ์ ์ฅํฉ๋๋ค.
- ํฌํธ์
xlsx๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํ์ฑํ๋ฏ๋ก UTF-8 ์ธ์ฝ๋ฉ๋.xlsxํ์ผ์ด ๊ฐ์ฅ ์์ ์ ์ ๋๋ค.
๊ฐ์ ์ ์ฐ์ ์ฌ์ ๋ก๋
์ฃผ์: ๊ฐ์ ์ ์ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์ ๋ก๋ํ๋ฉด ํด๋น ์์ ๊ธฐ์กด ๋ฐ์ดํฐ๊ฐ ๋ชจ๋ ์ญ์ ๋ ํ ์ ๋ฐ์ดํฐ๋ก ๊ต์ฒด๋ฉ๋๋ค. ์ด๋ ์ ์ ๋์์ด๋ฉฐ, ๋ถ๋ถ ์ ๋ฐ์ดํธ๋ ์ง์ํ์ง ์์ต๋๋ค.
CSO ๋งค์นญ ์ค๋ฅ
์ ์ฒด๋ช ๊ณผ ์ฌ์ ์๋ฒํธ ๋ถ์ผ์น
์ฆ์: ํ์์ด ๋ก๊ทธ์ธํ์ง๋ง ์ ์ฐ ๋ฐ์ดํฐ๊ฐ ๋ณด์ด์ง ์์ต๋๋ค.
์์ธ: ์ ์ฐ์์ CSO๊ด๋ฆฌ์
์ฒด์ ํ์์ ์ฌ์
์๋ฒํธ ๊ฐ ๋งค์นญ์ด ์์ต๋๋ค.
ํ์ธ ์ ์ฐจ:
/admin/integrityํ์ด์ง์์ ๋ฌด๊ฒฐ์ฑ ๊ฒ์ฌ๋ฅผ ์คํํฉ๋๋ค.missing_match์ํ์ ์ ์ฒด๋ฅผ ํ์ธํฉ๋๋ค.- ํด๋น ์ ์ฒด์ ์ค์ ์ฌ์ ์๋ฒํธ๋ฅผ ํ์ธํฉ๋๋ค.
- ๋งค์นญ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค (์ฌ์ ์๋ฒํธ ์ ๋ ฅ).
๋งค์นญ ์ํ๋ณ ์กฐ์น
| ์ํ | ์กฐ์น |
|---|---|
missing_match | /admin/integrity์์ ์ฌ์
์๋ฒํธ ๋งคํ ์ถ๊ฐ |
unregistered | ํด๋น ์ ์ฒด์ ํ์๊ฐ์ ์๋ด. ์ฌ์ ์๋ฒํธ๊ฐ ์ฌ๋ฐ๋ฅธ์ง ํ์ธ |
pending_join | /admin/members์์ ํด๋น ํ์ ์น์ธ ์ฒ๋ฆฌ |
normal | ์ ์ โ ์กฐ์น ๋ถํ์ |
์ ์ฒด๋ช ๋ณ๊ฒฝ
SIT ์๋ฃจ์
์์ ์
์ฒด๋ช
์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ, cso_matching ํ
์ด๋ธ์ cso_company_name๋ ์ ์ด๋ฆ์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค. ์ด์ ์ด๋ฆ์ ๋งค์นญ์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ์ํด ์ญ์ ํ์ง ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
ํ ์ ์ฒด์ ์ฌ๋ฌ ์ ์ฒด๋ช
ํ๋์ CSO ์
์ฒด๊ฐ ์ ์ฐ์์์ ์ฌ๋ฌ ์ด๋ฆ์ผ๋ก ๋ฑ์ฅํ ์ ์์ต๋๋ค (์: โA์ ์ฝโ, โA์ ์ฝ(์ฃผ)โ, โ(์ฃผ)A์ ์ฝโ). ์ด ๊ฒฝ์ฐ cso_matching ํ
์ด๋ธ์ ๊ฐ ์ด๋ฆ์ ๋์ผํ ์ฌ์
์๋ฒํธ๋ก ๋งคํํฉ๋๋ค.
์ด๋ฉ์ผ ๋ฐ์ก ์คํจ
Resend API ํ๋ ์ด๊ณผ
์ฆ์: ์ด๋ฉ์ผ ๋ฐ์ก ์ 429 Too Many Requests ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
์์ธ: Resend ๋ฌด๋ฃ ํ๋ ๊ธฐ์ค ์ผ์ผ 100๊ฑด, ์ด๋น 2๊ฑด ์ ํ์ด ์์ต๋๋ค.
ํด๊ฒฐ:
| ์กฐ์น | ์ค๋ช |
|---|---|
| ๋ฐ์ก ๊ฐ๊ฒฉ ์ฆ๊ฐ | /admin/email-settings์์ email_send_delay_ms๋ฅผ 6000ms ์ด์์ผ๋ก ์ค์ |
| ์๊ฐ ๋ถ์ฐ | ๋๋ ๋ฐ์ก์ ์ฌ๋ฌ ์๊ฐ๋๋ก ๋ถ์ฐ |
| ํ๋ก๋ฐ์ด๋ ์ ํ | SMTP(ํ์ด์์ค)๋ก ์ ํํ์ฌ Resend ํ๋ ์ฐํ |
| ํ๋ ์ ๊ทธ๋ ์ด๋ | Resend ์ ๋ฃ ํ๋์ผ๋ก ์ผ์ผ ํ๋ ํ๋ |
SMTP ์ค์ ์ค๋ฅ
์ฆ์: SMTP ํ๋ก๋ฐ์ด๋๋ก ์ ํ ํ ์ด๋ฉ์ผ์ด ๋ฐ์ก๋์ง ์์ต๋๋ค.
ํ์ธ ์ฌํญ:
| ํญ๋ชฉ | ํ์ธ |
|---|---|
| ํธ์คํธ | ํ์ด์์ค: smtp.hiworks.com |
| ํฌํธ | SSL: 465 (๊ธฐ๋ณธ๊ฐ) |
| ๋ณด์ ์ฐ๊ฒฐ | true (SSL ์ฌ์ฉ) |
| ์ฌ์ฉ์๋ช | ํ์ด์์ค ์ด๋ฉ์ผ ์ฃผ์ ์ ์ฒด |
| ๋น๋ฐ๋ฒํธ | ํ์ด์์ค ๊ณ์ ๋น๋ฐ๋ฒํธ (์ฑ ๋น๋ฐ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ) |
| ๋ฐ์ ์ด๋ฉ์ผ | ํ์ด์์ค์ ๋ฑ๋ก๋ ์ด๋ฉ์ผ ์ฃผ์ |
์ฐ๊ฒฐ ํ
์คํธ: /admin/email-settings์์ โ์ฐ๊ฒฐ ํ
์คํธโ ๋ฒํผ์ ํด๋ฆญํ๋ฉด test_recipient_email๋ก ํ
์คํธ ์ด๋ฉ์ผ์ด ๋ฐ์ก๋ฉ๋๋ค. ์คํจ ์ ์๋ฌ ๋ฉ์์ง์์ ์์ธ์ ํ์ธํฉ๋๋ค.
์ด๋ฉ์ผ ๋ฏธ์์
๋ฐ์ก ์ฑ๊ณต(sent)์ผ๋ก ๊ธฐ๋ก๋์์ผ๋ ์์ ์๊ฐ ์ด๋ฉ์ผ์ ๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ:
- ์คํธํจ ํ์ธ: ์์ ์์ ์คํธ/์ ํฌ ๋ฉ์ผํจ์ ํ์ธํฉ๋๋ค.
- ์์ ์ฃผ์ ํ์ธ:
/admin/members์์ ํด๋น ํ์์ ์ด๋ฉ์ผ ์ฃผ์๊ฐ ์ ํํ์ง ํ์ธํฉ๋๋ค. - ๋ฐ์ ๋๋ฉ์ธ: Resend ์ฌ์ฉ ์ ๋ฐ์ ๋๋ฉ์ธ์ SPF/DKIM ์ค์ ์ด ์ฌ๋ฐ๋ฅธ์ง ํ์ธํฉ๋๋ค.
๋น๋/๋ฐฐํฌ ์คํจ
Vercel ๋น๋ ์๋ฌ ํ์ธ
- Vercel ๋์๋ณด๋ โ csoweb ํ๋ก์ ํธ โ Deployments ํญ
- ์คํจํ ๋ฐฐํฌ ํด๋ฆญ โ Build Logs ํ์ธ
- ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ถ์ํ์ฌ ์์ธ ํ์
ํํ ๋น๋ ์๋ฌ
| ์๋ฌ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
Type error | TypeScript ํ์ ๋ถ์ผ์น | ๋ก์ปฌ์์ npx tsc --noEmit ์คํ ํ ์์ |
Module not found | import ๊ฒฝ๋ก ์ค๋ฅ ๋๋ ํจํค์ง ๋ฏธ์ค์น | ํ์ผ ๊ฒฝ๋ก ํ์ธ ๋ฐ npm install |
Build exceeded memory | ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ | ๋ถํ์ํ ์์กด์ฑ ์ ๊ฑฐ, ๋ฒ๋ค ํฌ๊ธฐ ํ์ธ |
Environment variable missing | ํ๊ฒฝ๋ณ์ ๋ฏธ์ค์ | Vercel ๋์๋ณด๋ โ Settings โ Environment Variables์์ ์ถ๊ฐ |
ํ๊ฒฝ๋ณ์ ๋๋ฝ
๋ฐฐํฌ ํ๊ฒฝ์์ ํ์ ํ๊ฒฝ๋ณ์๊ฐ ์์ผ๋ฉด ๋น๋ ๋๋ ๋ฐํ์์์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
ํ์ ํ๊ฒฝ๋ณ์ ๋ชฉ๋ก:
| ๋ณ์ | ์ฉ๋ |
|---|---|
NEXT_PUBLIC_SUPABASE_URL | Supabase ํ๋ก์ ํธ URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Supabase ๊ณต๊ฐ ํค |
SUPABASE_SERVICE_ROLE_KEY | Supabase ์๋น์ค ์ญํ ํค |
JWT_SECRET | JWT ์๋ช ํค |
RESEND_API_KEY | Resend ์ด๋ฉ์ผ API ํค |
Vercel ๋์๋ณด๋ โ Settings โ Environment Variables์์ ํ๋ก๋์ ํ๊ฒฝ์ ๋ชจ๋ ๋ณ์๊ฐ ์ค์ ๋์๋์ง ํ์ธํฉ๋๋ค.
๋ฐฐํฌ ๋กค๋ฐฑ
๋ฌธ์ ๊ฐ ์๋ ๋ฐฐํฌ๋ฅผ ์ด์ ๋ฒ์ ์ผ๋ก ๋กค๋ฐฑํ๋ ค๋ฉด:
- Vercel ๋์๋ณด๋ โ Deployments
- ์ ์ ์๋ํ๋ ์ด์ ๋ฐฐํฌ๋ฅผ ์ฐพ์ต๋๋ค.
- ํด๋น ๋ฐฐํฌ์ โฏ ๋ฉ๋ด โ Promote to Production ํด๋ฆญ
- ์ฆ์ ์ด์ ๋ฒ์ ์ผ๋ก ํ๋ก๋์ ์ด ์ ํ๋ฉ๋๋ค.
์ธ์ฆ ๋ฌธ์
JWT ๋ง๋ฃ
์ฆ์: ์ฌ์ฉ์๊ฐ ๊ฐ์๊ธฐ ๋ก๊ทธ์์๋๊ฑฐ๋, API ์์ฒญ์ด 401๋ก ์คํจํฉ๋๋ค.
์์ธ: JWT ํ ํฐ์ ์ ํจ๊ธฐ๊ฐ(24์๊ฐ)์ด ๋ง๋ฃ๋์์ต๋๋ค.
ํด๊ฒฐ: ๋ค์ ๋ก๊ทธ์ธํฉ๋๋ค. ํ์ฌ ํ ํฐ ์๋ ๊ฐฑ์ (Refresh Token)์ ๊ตฌํ๋์ด ์์ง ์์ผ๋ฏ๋ก, 24์๊ฐ๋ง๋ค ์ฌ๋ก๊ทธ์ธ์ด ํ์ํฉ๋๋ค.
์ฟ ํค ๋ฌธ์
์ฆ์: ๋ก๊ทธ์ธ ์ฑ๊ณต ๋ฉ์์ง๊ฐ ํ์๋์ง๋ง ํ์ด์ง ์ด๋ ํ ๋ก๊ทธ์ธ์ด ํ๋ฆฝ๋๋ค.
ํ์ธ ์ฌํญ:
| ํญ๋ชฉ | ํ์ธ ๋ฐฉ๋ฒ |
|---|---|
| ์ฟ ํค ์ฐจ๋จ | ๋ธ๋ผ์ฐ์ ์ค์ ์์ ์ฟ ํค ํ์ฉ ์ฌ๋ถ ํ์ธ |
| ์ํฌ๋ฆฟ/ํ๋ผ์ด๋น ๋ชจ๋ | ์ผ๋ฐ ๋ชจ๋์์ ์๋ |
| ๋ธ๋ผ์ฐ์ ์บ์ | ๋ธ๋ผ์ฐ์ ์บ์ ๋ฐ ์ฟ ํค ์ญ์ ํ ์ฌ์๋ |
| HTTPS | ํ๋ก๋์
์์ secure ์ฟ ํค๋ HTTPS์์๋ง ๋์ |
๊ณ์ ์ ๊ธ
์ฆ์: โ๊ณ์ ์ด ์ ๊ฒผ์ต๋๋คโ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์์ธ: ๋น๋ฐ๋ฒํธ๋ฅผ 15ํ ์ฐ์ ํ๋ฆฐ ๊ฒฝ์ฐ ๊ณ์ ์ด ์๋ ์ ๊ธ๋ฉ๋๋ค.
ํด๊ฒฐ:
- ๋ฑ๋ก๋ ์ด๋ฉ์ผ๋ก ๋ฐ์ก๋ ๋น๋ฐ๋ฒํธ ๋ณ๊ฒฝ ๋งํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ๋ฉด ์ ๊ธ์ด ํด์ ๋ฉ๋๋ค.
- ์ด๋ฉ์ผ์ ๋ฐ์ง ๋ชปํ ๊ฒฝ์ฐ, ๊ด๋ฆฌ์๊ฐ
/admin/members์์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ด๊ธฐํํฉ๋๋ค.
๊ด๋ฆฌ์ ๊ถํ ์์
์ฆ์: ๊ด๋ฆฌ์ ํ์ด์ง์ ์ ๊ทผํ ์ ์์ต๋๋ค.
ํ์ธ: ํด๋น ๊ณ์ ์ is_admin ํ๋๊ฐ true์ธ์ง ํ์ธํฉ๋๋ค. ๋ค๋ฅธ ๊ด๋ฆฌ์๊ฐ /admin/members์์ ํด๋น ํ์์ โ๊ด๋ฆฌ์ ๊ถํโ์ ํ์ฑํํด์ผ ํฉ๋๋ค.
์ฑ๋ฅ ๋ฌธ์
๋์๋ณด๋ ๋ก๋ฉ ๋๋ฆผ
์์ธ: ์ ์ฐ ๋ฐ์ดํฐ๊ฐ ๋๋์ธ ๊ฒฝ์ฐ ์กฐํ ์๊ฐ์ด ๊ธธ์ด์ง ์ ์์ต๋๋ค.
์กฐ์น:
/admin/columns์์ ๋ถํ์ํ ์ปฌ๋ผ์ ์จ๊ฒจ ์กฐํ ๋ฐ์ดํฐ๋์ ์ค์ ๋๋ค.- ํน์ ์ ์ฐ์๋ง ์ ํํ์ฌ ์กฐํํฉ๋๋ค.
- ์ผ๋ฐํ์์ CSO ๋งค์นญ ๊ธฐ๋ฐ์ผ๋ก ์๊ธฐ ๋ฐ์ดํฐ๋ง ์กฐํํ๋ฏ๋ก ์๋์ ์ผ๋ก ๋น ๋ฆ ๋๋ค.
๋ฉ์ผ๋จธ์ง ๋ฐ์ก ์ง์ฐ
๋๋ ์ด๋ฉ์ผ ๋ฐ์ก ์ ๋ฐ์ก ๊ฐ๊ฒฉ(๊ธฐ๋ณธ 6์ด) ๋๋ฌธ์ ์ ์ฒด ์์ ์๊ฐ์ด ๊ธธ์ด์ง๋๋ค.
์์ ์์ ์๊ฐ: ์ ์ฒด ์ ร ๋ฐ์ก ๊ฐ๊ฒฉ
| ์ ์ฒด ์ | 6์ด ๊ฐ๊ฒฉ | 3์ด ๊ฐ๊ฒฉ |
|---|---|---|
| 10๊ฐ | 1๋ถ | 30์ด |
| 50๊ฐ | 5๋ถ | 2๋ถ 30์ด |
| 100๊ฐ | 10๋ถ | 5๋ถ |
๋ฐ์ก ๊ฐ๊ฒฉ์ ์ค์ด๋ฉด Resend API Rate Limit์ ๊ฑธ๋ฆด ์ ์์ผ๋ฏ๋ก, ๋๋ ๋ฐ์ก ์ SMTP ํ๋ก๋ฐ์ด๋ ์ฌ์ฉ์ ๊ถ์ฅํฉ๋๋ค.