์๋ํ๋ ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ: ํ ํฐ, ์ ํ, ์ ์ก
๊ฒ์ฆ ์ด๋ฉ์ผ, ์ด๋, ๋งค์ง ๋งํฌ๋ฅผ ์์ ํ ํ ํฐ, ๋ช ํํ ๋ง๋ฃ, ์ฌ์ ์ก ์ ํ๊ณผ ๋น ๋ฅธ ์ ๋ฌ์ฑ ์ ๊ฒ์ผ๋ก ์ค๊ณํด ์ ๋ขฐํ ์ ์๋ ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ์ ๋ง๋์ธ์.

์ค์ ์์ ๊ฒ์ฆ๊ณผ ๋งค์ง ๋งํฌ๊ฐ ์คํจํ๋ ์ด์
๋๋ถ๋ถ์ ๊นจ์ง ๊ฐ์ /๋ก๊ทธ์ธ ๊ฒฝํ์ โ์ด๋ฉ์ผ์ด ๋ฌธ์ โ๋ผ๊ธฐ๋ณด๋ค ์์คํ ์ด ์ ์์ ์ธ ์ฌ๋ ํ๋์ ์ฒ๋ฆฌํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ํฉ๋๋ค. ์ฌ๋๋ค์ ๋ ๋ฒ ํด๋ฆญํ๊ณ , ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ๋งํฌ๋ฅผ ์ด๊ณ , ์ค๋ ๊ธฐ๋ค๋ฆฌ๊ฑฐ๋ ๋ฐ์ํธ์งํจ์ ๋์ค์ ๊ฒ์ํด ์ค๋๋ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํฉ๋๋ค.
์คํจ ์์ธ์ ์ฌ์ํด ๋ณด์ด์ง๋ง ๋ชจ์ด๋ฉด ๋ฌธ์ ๊ฐ ๋ฉ๋๋ค:
- ๋งํฌ๊ฐ ๋๋ฌด ๋นจ๋ฆฌ ๋ง๋ฃ๋๊ฑฐ๋(๋๋ ์ ๋ ๋ง๋ฃ๋์ง ์์).
- ํ ํฐ์ด ์ฐ์ฐํ ์ฌ์ฌ์ฉ๋จ(์ฌ๋ฌ ๋ฒ ํด๋ฆญ, ์ฌ๋ฌ ํญ, ์ ๋ฌ๋ ์ด๋ฉ์ผ).
- ์ด๋ฉ์ผ์ด ๋ฆ๊ฒ ๋์ฐฉํ๊ฑฐ๋ ์คํธํจ์ ๊ฐ๊ฑฐ๋ ์์ ๋์ฐฉํ์ง ์์.
- ์ฌ์ฉ์๊ฐ ์ฃผ์๋ฅผ ์๋ชป ์ ๋ ฅํ๋๋ฐ ์ฑ์ด ๋ช ํํ ๋ค์ ๋จ๊ณ๋ฅผ ์๋ดํ์ง ์์.
- ์ฌ์ ์ก ๋ฒํผ์ด ์์คํ (๋ฐ ๋ฉ์ผ ์ ๊ณต์)์ ์คํธ์ํค๋ ์๋จ์ด ๋จ.
์ด ํ๋ฆ๋ค์ ๋ด์ค๋ ํฐ๋ณด๋ค ์ํ๋๊ฐ ํฝ๋๋ค. ๋ง์ผํ ์ด๋ฉ์ผ์ด ์ง์ฐ๋๋ฉด ์ง์ฆ์ด ๋์ง๋ง, ๋งค์ง ๋งํฌ๊ฐ ์ง์ฐ๋๋ฉด ์ฌ์ฉ์๋ ๋ก๊ทธ์ธํ ์ ์์ต๋๋ค.
ํ์ด ์ ๋ขฐํ ์ ์๋ ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ์ ์ํ ๋ ๋ณดํต ์ธ ๊ฐ์ง๋ฅผ ์๋ฏธํฉ๋๋ค:
-
๋ณด์: ๋งํฌ๋ ์ถ์ธก๋๊ฑฐ๋ ๋๋๋นํ๊ฑฐ๋ ์์ ํ์ง ์๊ฒ ์ฌ์ฌ์ฉ๋ ์ ์์ด์ผ ํฉ๋๋ค.
-
์์ธก ๊ฐ๋ฅ์ฑ: ์ฌ์ฉ์๋ ๋ฉ์ผ์ด ๋ณด๋๋์ง, ๋ง๋ฃ๋์๋์ง, ์ด๋ฏธ ์ฌ์ฉ๋์๋์ง, ์ฃผ์๊ฐ ์๋ชป๋์๋์ง์ ๋ค์์ ๋ฌด์์ ํด์ผ ํ ์ง ํญ์ ์ ์ ์์ด์ผ ํฉ๋๋ค.
-
์ถ์ ๊ฐ๋ฅ์ฑ: ๋ก๊ทธ์ ๋ช ํํ ์ํ ์กฐํ๋ก โ์ด ์ด๋ฉ์ผ์ ๋ฌด์จ ์ผ์ด ์์๋?โ์ ๋ตํ ์ ์์ด์ผ ํฉ๋๋ค.
๋๋ถ๋ถ์ ์ ํ์ ๊ฐ์ ํต์ฌ ํ๋ฆ์ ๋ง๋ญ๋๋ค: ์ด๋ฉ์ผ ๊ฒ์ฆ(์์ ๊ถ ์ฆ๋ช ), ์ด๋(์ํฌ์คํ์ด์ค/ํฌํธ ์ฐธ๊ฐ), ๋งค์ง ๋งํฌ(๋น๋ฐ๋ฒํธ๋ฆฌ์ค ๋ก๊ทธ์ธ). ์ฒญ์ฌ์ง์ ๋์ผํฉ๋๋ค: ๋ช ํํ ์ฌ์ฉ์ ์ํ, ๊ฒฌ๊ณ ํ ํ ํฐ ์ค๊ณ, ํฉ๋ฆฌ์ ์ธ ๋ง๋ฃ ๊ท์น, ์ฌ์ ์ก ์ ํ, ๊ธฐ๋ณธ์ ์ธ ์ ๋ฌ์ฑ ๊ฐ์์ฑ.
๊ฐ๋จํ ํ๋ฆ ์ง๋์ ๋ช ํํ ์ฌ์ฉ์ ์ํ๋ก ์์ํ์ธ์
์ ๋ขฐํ ์ ์๋ ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ์ ์ข ์ด ์์์ ์์๋ฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ฌด์์ ์ฆ๋ช ํ๋ ค ํ๋์ง, ํด๋ฆญ ๋ค ์์คํ ์์ ๋ฌด์์ด ๋ฐ๋๋์ง ์ค๋ช ํ ์ ์๋ค๋ฉด ์ฃ์ง ์ผ์ด์ค์์ ํ๋ฆ์ด ๊นจ์ง๋๋ค.
์๊ณ ๋ช ํํ ์ฌ์ฉ์ ์ํ ์งํฉ์ ์ ์ํ๊ณ ์ด๋ฆ์ ๋ถ์ฌ์ ๊ณ ๊ฐ์ง์์ด ๋น ๋ฅด๊ฒ ์ดํดํ๊ฒ ํ์ธ์:
- New(๊ณ์ ์์ฑ, ๊ฒ์ฆ๋์ง ์์)
- Invited(์ด๋ ๋ฐ์ก, ์๋ฝ ์ )
- Verified(์ด๋ฉ์ผ ์์ ๊ถ ํ์ธ๋จ)
- Locked(์ํ ๋๋ ์๋ ๊ณผ๋ค๋ก ์ผ์ ์ฐจ๋จ๋จ)
๋ค์์ผ๋ก ๊ฐ ์ด๋ฉ์ผ์ด ๋ฌด์์ ์ฆ๋ช ํ๋์ง ๊ฒฐ์ ํ์ธ์:
- ๊ฒ์ฆ์ ์ด๋ฉ์ผ ์์ ๊ถ์ ์ฆ๋ช ํฉ๋๋ค.
- ์ด๋๋ ๋ฐ์ ์๊ฐ ํน์ ์ ๊ทผ ๊ถํ์ ๋ถ์ฌํ์์ ์ฆ๋ช ํฉ๋๋ค.
- ๋งค์ง ๋งํฌ๋ ๋ก๊ทธ์ธ ์์ ์ ๋ฐ์ํธ์งํจ์ ์ ์ดํ๊ณ ์์์ ์ฆ๋ช ํฉ๋๋ค. ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์กฐ์ฉํ ๋ณ๊ฒฝํ๊ฑฐ๋ ์๋ก์ด ๊ถํ์ ๋ถ์ฌํด์๋ ์ ๋ฉ๋๋ค.
๊ทธ๋ฐ ๋ค์ ํด๋ฆญ์์ ์ฑ๊ณต๊น์ง์ ์ต์ ๊ฒฝ๋ก๋ฅผ ๋งคํํ์ธ์:
- ์ฌ์ฉ์๊ฐ ๋งํฌ๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ์ฑ์ด ํ ํฐ์ ๊ฒ์ฆํ๊ณ ํ์ฌ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
- ์ ํํ ํ๋์ ์ํ ๋ณ๊ฒฝ์ ์ ์ฉํฉ๋๋ค(์: Invited -> Active).
- ์ฑ์ ๋ค์ ํ๋(์ฑ ์ด๊ธฐ, ๊ณ์ํ๊ธฐ, ๋น๋ฐ๋ฒํธ ์ค์ )์ ์๋ดํ๋ ๊ฐ๋จํ ์ฑ๊ณต ํ๋ฉด์ ๋ณด์ฌ์ค๋๋ค.
์ฌ์ ๋์์ผ๋ก "์ด๋ฏธ ์ฒ๋ฆฌ๋จ" ์ผ์ด์ค๋ฅผ ๊ณํํ์ธ์. ๋๊ตฐ๊ฐ ์ด๋๋ฅผ ๋ ๋ฒ ํด๋ฆญํ๋ฉด "์ด๋ฏธ ์ฌ์ฉ๋ ์ด๋"๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋ก๊ทธ์ธ์ผ๋ก ์๋ดํ์ธ์. ์ด๋ฏธ ๊ฒ์ฆ๋ ํ ๊ฒ์ฆ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด ์ค๋ฅ๋ฅผ ๋์ฐ์ง ๋ง๊ณ ์ฌ์ฉ์๊ฐ ๊ด์ฐฎ์์ ํ์ธํ๊ณ ๋ค์์ผ๋ก ์๋ดํ์ธ์.
์ด๋ฉ์ผ ์ธ์ SMS ๊ฐ์ ์ฑ๋์ ์ง์ํ๋ฉด ์ํ๋ฅผ ๊ณต์ ํด ์ฌ์ฉ์๊ฐ ์๋ก ๋ค๋ฅธ ํ๋ฆ ์ฌ์ด๋ฅผ ์๋ค ๊ฐ๋ค ํ์ง ์๋๋ก ํ์ธ์.
ํ ํฐ ์ค๊ณ ๊ธฐ๋ณธ(๋ฌด์์ ์ ์ฅํ๊ณ ๋ฌด์์ ํผํ ์ง)
ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ์ ๋ณดํต ํ ํฐ ์ค๊ณ์์ ์ฑ๊ณตํ๊ฑฐ๋ ์คํจํฉ๋๋ค. ํ ํฐ์ ํน์ ๋์(์ด๋ฉ์ผ ๊ฒ์ฆ, ์ด๋ ์๋ฝ, ๋ก๊ทธ์ธ) ํ๋๋ฅผ ํ์ฉํ๋ ์์ ํค์ ๋๋ค.
๋๋ถ๋ถ ๋ฌธ์ ๋ฅผ ์ปค๋ฒํ๋ ์ธ ๊ฐ์ง ์๊ตฌ์ฌํญ:
- ํ ํฐ์ด ์ถ์ธก ๋ถ๊ฐ๋ฅํ๋๋ก ๊ฐํ ๋๋ค์ฑ
- ์ด๋ ํ ํฐ์ด ๋ก๊ทธ์ธ์ด๋ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ ์ฌ์ฌ์ฉ๋์ง ์๋๋ก ๋ช ํํ ๋ชฉ์
- ์ค๋๋ ์ด๋ฉ์ผ์ด ์๊ตฌ ๋ฐฑ๋์ด๊ฐ ๋์ง ์๋๋ก ๋ง๋ฃ ์๊ฐ
๋ถํฌ๋ช (opaque) ํ ํฐ vs ์๋ช ๋ ํ ํฐ
๋ถํฌ๋ช ํ ํฐ์ ๋๋ถ๋ถ ํ์ ๊ฐ์ฅ ๊ฐ๋จํฉ๋๋ค: ๊ธด ๋๋ค ๋ฌธ์์ด์ ์์ฑํด ์๋ฒ์ ์ ์ฅํ๊ณ ์ฌ์ฉ์๊ฐ ํด๋ฆญํ๋ฉด ์ฐพ์๋ณด์ธ์. ์ผํ์ฉ์ผ๋ก ๋จ์ํ๊ฒ ์ ์งํ์ธ์.
์๋ช ๋ ํ ํฐ(์๋ช ์ด ๋ถ์ ์ปดํฉํธ ๋ฌธ์์ด)์ ํด๋ฆญ๋ง๋ค ๋ฐ์ดํฐ๋ฒ ์ด์ค ์กฐํ๋ฅผ ํผํ๊ฑฐ๋ ํ ํฐ์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์ถ์ ๋ ์ ์ฉํ ์ ์์ต๋๋ค. ๋๊ฐ๋ ๋ณต์ก์ฑ: ์๋ช ํค, ๊ฒ์ฆ ๊ท์น, ๊น๋ํ ํ๊ธฐ(๋ฆฌ๋ณด์ผ์ด์ ) ์ ๋ต์ด ํ์ํฉ๋๋ค. ๋ง์ ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ์์๋ ๋ถํฌ๋ช ํ ํฐ์ด ์ดํดํ๊ณ ํ๊ธฐํ๊ธฐ ๋ ์ฝ์ต๋๋ค.
URL์ ์ฌ์ฉ์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ง ๋ง์ธ์. ์ด๋ฉ์ผ ์ฃผ์, ์ฌ์ฉ์ ID, ์ญํ ๊ฐ์ ์๋ณ ์ ๋ณด๋ฅผ ํฌํจํ์ง ๋ง์ธ์. URL์ ๋ณต์ฌ๋๊ณ ๋ก๊ทธ์ ๋จ์ผ๋ฉฐ ๋๋ก๋ ๊ณต์ ๋ฉ๋๋ค.
ํ ํฐ์ ์ผํ์ฉ์ผ๋ก ๋ง๋์ธ์. ์ฑ๊ณต ํ ํ ํฐ์ ์๋น๋ก ํ์ํ๊ณ ์ดํ ์๋๋ฅผ ๊ฑฐ๋ถํ์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ์ ๋ฌ๋ ์ด๋ฉ์ผ๊ณผ ์ค๋๋ ๋ธ๋ผ์ฐ์ ํญ์ผ๋ก๋ถํฐ ๋ณดํธ๋ฉ๋๋ค.
๋๋ฒ๊น ์ ์ํด ์ถฉ๋ถํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ธ์:
- purpose(verify, invite, magic link login)
- created_at ๋ฐ expires_at
- used_at(์ฌ์ฉ ์ ๊น์ง null)
- ์์ฑ ๋ฐ ์ฌ์ฉ ์ ์์ฒญ IP์ user agent
- status(active, consumed, expired, revoked)
AppMaster ๊ฐ์ ๋ ธ์ฝ๋ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ด๊ฒ์ ๋ณดํต Data Designer์ Tokens ํ ์ด๋ธ์ ๊น๋ํ๊ฒ ๋งคํ๋๋ฉฐ, ์๋น(consume) ๋จ๊ณ๋ ์ฑ๊ณต ๋์๊ณผ ์์์ ์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ํ๋์ Business Process์์ ๋ค๋ฃจ๋ฉด ๋ฉ๋๋ค.
๋ณด์๊ณผ ์ฌ์ฉ์ ์ธ๋ด์ฌ์ ๊ท ํ์ ๋ง์ถ ๋ง๋ฃ ๊ท์น
๋ง๋ฃ๋ ์ด ํ๋ฆ์ด ๋ถ์ํ๊ฒ(๋๋ฌด ๊ธธ๋ฉด ์์ ํ์ง ์์) ๋๋ ์ฑ๊ฐ์๊ฒ(๋๋ฌด ์งง์ผ๋ฉด ๋ถํธํจ) ๋๊ปด์ง๋ ์ง์ ์ ๋๋ค. ์๋ช ์ ์ํ๋์ ์ฌ์ฉ์๊ฐ ํ๋ ค๋ ์ผ์ ๋ง์ถฐ ์ค์ ํ์ธ์.
์ค๋ฌด์ ์์์ :
- ๋งค์ง ๋ก๊ทธ์ธ ๋งํฌ: 10โ20๋ถ
- ๋น๋ฐ๋ฒํธ ์ฌ์ค์ : 30โ60๋ถ
- ์ํฌ์คํ์ด์ค/ํ ์ฐธ๊ฐ ์ด๋: 1โ7์ผ
- ๊ฐ์ ํ ์ด๋ฉ์ผ ๊ฒ์ฆ: 24โ72์๊ฐ
์งง์ ์๋ช ์ ๋ง๋ฃ๋ ๊ฒฝํ์ด ์น์ ํ ๋๋ง ์๋ํฉ๋๋ค. ํ ํฐ์ด ๋ ์ด์ ์ ํจํ์ง ์์ผ๋ฉด ๋ช ํํ ์๋ฆฌ๊ณ ํ๋์ ๋ถ๋ช ํ ํ๋์ ์ ์ํ์ธ์: ์ ์ด๋ฉ์ผ ์์ฒญํ๊ธฐ. "์ ํจํ์ง ์์ ๋งํฌ" ๊ฐ์ ๋ชจํธํ ์ค๋ฅ๋ ํผํ์ธ์.
๊ธฐ๊ธฐ ๊ฐ ์๊ณ ๋ฌธ์ ์ ๊ธฐ์ ๋คํธ์ํฌ๋ก ์ธํ ์ง์ฐ์ด ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. ์๋ฒ ์๊ฐ์ ์ฌ์ฉํด ๊ฒ์ฆํ๊ณ , ์์ ์์ถฉ ์๊ฐ(1โ2๋ถ)์ ๊ณ ๋ คํด ์ง์ฐ์ผ๋ก ์ธํ ์ค์๋์ ์ค์ด์ธ์. ๋จ ์์ถฉ ์๊ฐ์ ๋๋ฌด ๊ธธ๊ฒ ํด ์ค์ ๋ณด์ ๊ตฌ๋ฉ์ด ๋์ง ์๋๋ก ์ฃผ์ํ์ธ์.
์ ํ ํฐ์ ๋ฐ๊ธํ ๋ ์ด์ ํ ํฐ์ ๋ฌดํจํํ ์ง ๊ฒฐ์ ํ์ธ์. ๋งค์ง ๋งํฌ์ ๋น๋ฐ๋ฒํธ ์ฌ์ค์ ์ ๋ณดํต ์ต์ ํ ํฐ์ด ์ฐ์ ํฉ๋๋ค. ์ด๋ฉ์ผ ๊ฒ์ฆ์ ๊ฒฝ์ฐ ์ด์ ํ ํฐ์ ๋ฌดํจํํ๋ฉด "์ด๋ค ์ด๋ฉ์ผ์ ํด๋ฆญํด์ผ ํ๋?" ๊ฐ์ ํผ๋์ ์ค์ผ ์ ์์ต๋๋ค.
์ฌ์ฉ์๋ฅผ ์ข์ ์ํค์ง ์๋ ์ฌ์ ์ก ์ ํ ๋ฐ ๋ ์ดํธ ๋ฆฌ๋ฐ
์ฌ์ ์ก ์ ํ์ ๋จ์ฉ์ ๋ง๊ณ ๋น์ฉ์ ์ค์ด๋ฉฐ ๋๋ฉ์ธ์ด ์์ฌ์ค๋ฌ์ด ๊ธ์ฆ์ผ๋ก ๋ณด์ด์ง ์๊ฒ ํฉ๋๋ค. ๋ํ ์ฌ์ฉ์๊ฐ ์ด๋ฉ์ผ์ ๋ชป ์ฐพ์ ๊ณ์ ์ฌ์ ์ก์ ๋๋ฅด๋ ๋ฐ๋ณต ๋ฃจํ๋ฅผ ๋ง์ต๋๋ค.
์ข์ ์ ํ์ ํ ์ถ์ผ๋ก๋ง ํ์ง ์์ต๋๋ค. ๊ณ์ ๋ณ๋ก๋ง ์ ํํ๋ฉด ๊ณต๊ฒฉ์๊ฐ ์ด๋ฉ์ผ์ ๋๋ ค๊ฐ๋ฉฐ ์๋ํ ์ ์๊ณ , ์ด๋ฉ์ผ๋ณ๋ก๋ง ์ ํํ๋ฉด IP๋ฅผ ๋๋ ค๊ฐ๋ฉฐ ์๋ํ ์ ์์ต๋๋ค. ์ฌ๋ฌ ๊ฒ์ฌ๋ฅผ ์กฐํฉํ๋ฉด ์ ์ ์ฌ์ฉ์๋ ๊ฑฐ์ ๋๋ผ์ง ๋ชปํ์ง๋ง ๋จ์ฉ์ ๋น ๋ฅด๊ฒ ๋น์ฉ์ด ๋ฐ์ํ๊ฒ ๋ง๋ญ๋๋ค.
๋ง์ ์ ํ์ ์ถฉ๋ถํ ๊ฐ๋๋ ์ผ ์์:
- ์ฌ์ฉ์๋ณ ์ฟจ๋ค์ด: ๋์ผ ์์ ์ ๋ํด ์ ์ก ๊ฐ 60์ด
- ์ด๋ฉ์ผ ์ฃผ์๋ณ ์ฟจ๋ค์ด: 60โ120์ด
- IP ๋ ์ดํธ ๋ฆฌ๋ฐ: ์์ ๋ฒ์คํธ ํ์ฉ ํ ์๋ ์ ํ(ํนํ ํ์๊ฐ์ ์)
- ์ด๋ฉ์ผ ์ฃผ์๋ณ ์ผ์ผ ํ๋: 5โ10ํ(๊ฒ์ฆ, ๋งค์ง ๋งํฌ, ์ด๋ ํฌํจ)
- ์ฌ์ฉ์๋ณ ์ผ์ผ ํ๋: ๋ชจ๋ ์ด๋ฉ์ผ ํ๋ ํฉ์ฐ 10โ20ํ
์ ํ์ด ๊ฑธ๋ฆฌ๋ฉด UX ๋ฌธ๊ตฌ๊ฐ ๋ฐฑ์๋๋งํผ ์ค์ํฉ๋๋ค. ๊ตฌ์ฒด์ ์ด๊ณ ์ฐจ๋ถํ๊ฒ ์๋ ค์ฃผ์ธ์.
์: "[email protected]์ผ๋ก ์ด๋ฉ์ผ์ ๋ณด๋์ต๋๋ค. 60์ด ํ์ ๋ค์ ์์ฒญํ ์ ์์ต๋๋ค." ํ์ํ๋ฉด "์คํธ ๋๋ ํ๋ก๋ชจ์ ์ ํ์ธํ๊ณ ์ ๋ชฉ 'Sign in link.'๋ฅผ ๊ฒ์ํด ๋ณด์ธ์." ๊ฐ์ ์๋ด๋ฅผ ์ถ๊ฐํ์ธ์.
์ผ์ผ ํ๋์ ๋๋ฌํ๋ฉด ์ฃฝ์ ์ฌ์ ์ก ๋ฒํผ์ ๊ณ์ ๋ณด์ฌ์ฃผ์ง ๋ง์ธ์. ๊ทธ ๋์ ๋ค์ ๋จ๊ณ(๋ด์ผ ๋ค์ ์๋, ์ฃผ์ ์ ๋ฐ์ดํธ๋ฅผ ์ํด ๊ณ ๊ฐ์ง์์ ์ฐ๋ฝ ๋ฑ)๋ฅผ ์ค๋ช ํ๋ ๋ฉ์์ง๋ก ๊ต์ฒดํ์ธ์.
์๊ฐ์ ์ํฌํ๋ก์์ ๊ตฌํํ๋ ๊ฒฝ์ฐ, ์ ํ ๊ฒ์ฌ๋ฅผ ํ๋์ ๊ณต์ ๋จ๊ณ์ ๋ฃ์ด ๊ฒ์ฆ ์ด๋ฉ์ผ, ์ด๋, ๋งค์ง ๋งํฌ๊ฐ ์ผ๊ด๋๊ฒ ๋์ํ๋๋ก ํ์ธ์.
ํธ๋์ญ์ ์ด๋ฉ์ผ ์ ๋ฌ์ฑ(๋๋ฆฌ๋ฒ๋ฌ๋น๋ฆฌํฐ) ์ ๊ฒ
๋๋ถ๋ถ์ "๋ฉ์ผ์ด ๋์ฐฉํ์ง ์์๋ค" ๋ฆฌํฌํธ๋ ์ค์ ๋ก๋ "๋ฌด์จ ์ผ์ด ์์๋์ง ์ ์ ์๋ค"์ ๋๋ค. ์ ๋ฌ์ฑ์ ์ง์ฐ, ๋ฐ์ด์ค, ์คํธ ํํฐ ์ฐจ์ด๋ฅผ ๊ตฌ๋ถํ ์ ์๋ ๊ฐ์์ฑ์์ ์์ํฉ๋๋ค.
์ ์ก๋ง๋ค ๋์ค์ ์ด์ผ๊ธฐ๋ฅผ ์ฌ๊ตฌ์ฑํ ์ ์๊ฒ ์ถฉ๋ถํ ์ ๋ณด๋ฅผ ๋ก๊ทธํ์ธ์: ์ฌ์ฉ์ ID(๋๋ ์ด๋ฉ์ผ ํด์), ์ฌ์ฉ๋ ํ ํ๋ฆฟ/๋ฒ์ , ์ ๊ณต์ ์๋ต, ์ ๊ณต์ message id. ๋ชฉ์ ๋ ์ ์ฅํ์ธ์. ๋งค์ง ๋งํฌ์ ์ด๋๋ ๊ธฐ๋ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฆ ๋๋ค.
๊ฒฐ๊ณผ๋ฅผ ํ ๊ฐ์ ์ผ๋ฐ์ ์ธ "์คํจ" ์ํ๋ก ์ทจ๊ธํ์ง ๋ง์ธ์. ํ๋ ๋ฐ์ด์ค๋ ์์ ์ฐจ๋จ๊ณผ ๋ค๋ฅธ ํ์ ์กฐ์น๊ฐ ํ์ํ๊ณ , ์คํธ ์ ๊ณ ๋ ๋ ๋ค๋ฆ ๋๋ค. ๊ตฌ๋ ์ทจ์๋ ๋ณ๋๋ก ์ถ์ ํด ๊ณ ๊ฐ์ง์์ด "์คํธํจ์ ํ์ธํ์ธ์"๋ผ๊ณ ์๋ชป ์๋ดํ์ง ์๋๋ก ํ์ธ์.
์ง์์ฉ ๊ฐ๋จํ ์ ๋ฌ ์ํ ๋ทฐ๋ ๋ค์์ ๋ตํ ์ ์์ด์ผ ํฉ๋๋ค:
- ๋ฌด์์, ์ธ์ , ์(ํ ํ๋ฆฟ + ๋ชฉ์ ) ๋ณด๋๋
- ์ ๊ณต์๊ฐ ๋ญ๋ผ๊ณ ํ๋(๋ฉ์์ง id + ์ํ)
- ๋ฐ์ด์ค๋์๋, ์ฐจ๋จ๋์๋, ์ ๊ณ ๊ฐ ์์๋
- ์ฃผ์๊ฐ ์ต์ ๋์ด ์๋(๊ตฌ๋ ์ทจ์/๋ฐ์ด์ค ๋ชฉ๋ก)
- ๋ค์ ์์ ํ ํ๋์ ๋ฌด์์ธ๊ฐ(์ฌ์ ์ก ๊ฐ๋ฅ ํน์ ์ค์ง)
ํ ์คํธ์ ํ๋์ ๋ฉ์ผ๋ฐ์ค๋ง ์์กดํ์ง ๋ง์ธ์. ์ฃผ์ ์ ๊ณต์๋ณ ํ ์คํธ์ฉ ๋ฉ์ผ๋ฐ์ค๋ฅผ ์ ์งํ๊ณ ํ ํ๋ฆฟ์ด๋ ๋ฐ์ ์ค์ ์ ๋ฐ๊ฟ ๋ ๋น ๋ฅด๊ฒ ํ์ธํ์ธ์. ์: Gmail์ ์์ ํ์ง๋ง Outlook์ด ์ฐจ๋จํ๋ฉด ์ฝํ ์ธ , ํค๋, ๋๋ฉ์ธ ํํ์ ๊ฒํ ํด์ผ ํ๋ค๋ ์ ํธ์ ๋๋ค.
๋ฐ์ ๋๋ฉ์ธ ์ค์ ๋ ํ ๋ฒ ํ๋ ํ๋ก์ ํธ๊ฐ ์๋๋ผ ์ฒดํฌ๋ฆฌ์คํธ ํญ๋ชฉ์ผ๋ก ๋ค๋ฃจ์ธ์. SPF, DKIM, DMARC๊ฐ ๋ฐ์ ๋๋ฉ์ธ๊ณผ ์ ๋ ฌ๋์ด ์๋์ง ํ์ธํ์ธ์. ํ ํฐ์ด ์๋ฒฝํด๋ ๋๋ฉ์ธ ์ค์ ์ด ์ฝํ๋ฉด ๊ฒ์ฆยท์ด๋ ์ด๋ฉ์ผ์ด ์ฌ๋ผ์ง ์ ์์ต๋๋ค.
๋ช ํํ๊ณ ์์ ํ๋ฉฐ ํํฐ๋ง ๊ฐ๋ฅ์ฑ์ด ๋ฎ์ ์ด๋ฉ์ผ ์ฝํ ์ธ
๋ง์ ์ด๋ฉ์ผ์ด "๊นจ์ง ๊ฒ"์ด ์๋๋ผ, ๋ฉ์์ง๊ฐ ๋ฏ์ค๊ฒ ๋ณด์ด๊ฑฐ๋ ๋์์ด ๋ฌปํ ์๊ฑฐ๋ ํ ์คํธ๊ฐ ์ํํด ๋ณด์ฌ์ ์ฌ์ฉ์๊ฐ ์ฃผ์ ํฉ๋๋ค. ์ข์ ํธ๋์ญ์ ์ด๋ฉ์ผ์ ์์ธก ๊ฐ๋ฅํ ๋ฌธ๊ตฌ์ ๋ ์ด์์์ ์ฌ์ฉํด ์ฌ์ฉ์๊ฐ ๋น ๋ฅด๊ฒ ์์ ํ๊ฒ ํ๋ํ ์ ์๊ฒ ํฉ๋๋ค.
์ฃผ๊ธฐ(flow)๋ณ๋ก ์ ๋ชฉ์ ์ผ๊ด๋๊ฒ ์ ์งํ์ธ์. ์ค๋ "์ด๋ฉ์ผ์ ํ์ธํ์ธ์(Verify your email)"๋ผ๊ณ ๋ณด๋์ผ๋ฉด ๋ด์ผ ๊ฐ์๊ธฐ "์กฐ์น ํ์!!!"๋ก ๋ฐ๊พธ์ง ๋ง์ธ์. ์ผ๊ด์ฑ์ ์ธ์๋๋ฅผ ๋์ด๊ณ ํผ์ฑ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ฃผ๋ ํ๋์ ์๋จ ๊ทผ์ฒ์ ๋ฐฐ์นํ์ธ์: ์ ๋ฉ์ผ์ ๋ฐ์๋์ง ํ ๋ฌธ์ฅ์ผ๋ก ์ค๋ช ํ ๋ค์ ๋ฒํผ์ด๋ ๋งํฌ๋ฅผ ๋ฐฐ์นํ์ธ์. ์ด๋๋ ๋๊ฐ ์ด๋ํ๋์ง, ๋ฌด์์ ์ด๋ํ๋์ง ๋ช ์ํ์ธ์.
ํ๋ ์ธ ํ ์คํธ ํด๋ฐฑ๊ณผ ๊ฐ์์ ์ธ ์์ URL์ ํฌํจํ์ธ์. ์ผ๋ถ ํด๋ผ์ด์ธํธ๋ ๋ฒํผ์ ์ฐจ๋จํ๊ณ ์ผ๋ถ ์ฌ์ฉ์๋ ๋ณต์ฌ/๋ถ์ฌ๋ฃ๊ธฐ๋ฅผ ์ ํธํฉ๋๋ค. URL์ ํ ์ค์ ๋ฐ๋ก ๋๊ณ ์ฝ๊ธฐ ์ฝ๋๋ก ํ์ธ์. ๊ฐ๋ฅํ๋ฉด ๋ชฉ์ ๋๋ฉ์ธ์ ํ ์คํธ๋ก ๋ณด์ฌ ์ฃผ์ธ์(์: "์ด ๋งํฌ๋ ๊ทํ์ ํฌํธ์ ์ฝ๋๋ค").
์๋ํ๋ ๊ตฌ์กฐ:
- ์ ๋ชฉ: ํ ๊ฐ์ง ๋ถ๋ช ํ ๋ชฉ์ (Verify, Sign in, Accept invite)
- ์ฒซ ์ค: ์ ๋ฉ์ผ์ ๋ฐ์๋์ง
- ์ฃผ์ ๋ฒํผ/๋งํฌ: ์๋จ ๊ทผ์ฒ
- ๋ฐฑ์ ์์ URL: ๊ฐ์์ ์ด๊ณ ๋ณต์ฌ ๊ฐ๋ฅํ๊ฒ
- "์์ฒญํ์ง ์์๋ค๋ฉด" ์๋ด: ํ ์ค์ ๋ช ํํ ์ง์นจ
์๋๋ฌ์ด ์์์ ํผํ์ธ์. ๊ณผ๋ํ ๊ตฌ๋์ , ์ ์ฒด ๋๋ฌธ์, "๊ธด๊ธ" ๊ฐ์ ๋จ์ด๋ ํํฐ์ ์ฌ์ฉ์ ์์ฌ์ ์ ๋ฐํ ์ ์์ต๋๋ค. ํธ๋์ญ์ ์ด๋ฉ์ผ์ ์ฐจ๋ถํ๊ณ ๊ตฌ์ฒด์ ์ผ๋ก ์ฐ์ธ์.
ํญ์ ์ฌ์ฉ์๊ฐ ๋ฉ์ผ์ ์์ฒญํ์ง ์์๋ค๋ฉด ๋ฌด์์ ํด์ผ ํ๋์ง ์๋ ค์ฃผ์ธ์. ๋งค์ง ๋งํฌ์ ๊ฒฝ์ฐ์๋ "์ด ๋งํฌ๋ฅผ ๊ณต์ ํ์ง ๋ง์ธ์."๋ ์ถ๊ฐํ์ธ์.
๋จ๊ณ๋ณ: ์์ ํ ๊ฒ์ฆ ๋๋ ๋งค์ง ๋งํฌ ํ๋ฆ ๊ตฌ์ถํ๊ธฐ
๊ฒ์ฆ, ์ด๋, ๋งค์ง ๋งํฌ๋ ๋์ผํ ํจํด์ผ๋ก ์ทจ๊ธํ์ธ์: ์ผํ์ฉ ํ ํฐ์ด ํ ๋ฒ ํ์ฉ๋ ๋์์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
1) ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑํ์ธ์
ํ ํฐ์ "๊ทธ๋ฅ ์ฌ์ฉ์์ ์ ์ฅ"ํ๊ณ ์ถ์ ์ ํน์ ๋๊ปด๋ ๋ณ๋ ๋ ์ฝ๋๋ฅผ ๋ง๋์ธ์. ๋ณ๋ ํ ์ด๋ธ์ ๊ฐ์ฌ, ์ ํ, ๋๋ฒ๊น ์ ํจ์ฌ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- Users: email, status(unverified/active), last_login
- Tokens: user_id(๋๋ email), purpose(verify/login/invite), token_hash, expires_at, used_at, created_at, ์ ํ์ ip_created
- Send log: user_id/email, template name, created_at, provider_message_id, provider_status, error text(์๋ค๋ฉด)
2) ์์ฑ, ์ ์ก, ๊ฒ์ฆ ์์
์ฌ์ฉ์๊ฐ ๋งํฌ๋ฅผ ์์ฒญํ๊ฑฐ๋ ์ด๋๋ฅผ ์์ฑํ ๋ ๋๋ค ํ ํฐ์ ์์ฑํ๊ณ , ์๋ฒ์๋ ํ ํฐ ํด์๋ง ์ ์ฅํ๊ณ , ๋ง๋ฃ๋ฅผ ์ค์ ํ ๋ค ์ฌ์ฉ๋์ง ์์ ์ํ๋ก ๋์ธ์. ์ด๋ฉ์ผ์ ๋ณด๋ด๊ณ ์ ๊ณต์ ์๋ต ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ ์ก ๋ก๊ทธ์ ์ ์ฅํ์ธ์.
ํด๋ฆญ ์ ํธ๋ค๋ฌ๋ ์๊ฒฉํ๊ณ ์์ธก ๊ฐ๋ฅํด์ผ ํฉ๋๋ค:
- ๋ค์ด์จ ํ ํฐ์ ํด์ํด ๋ชฉ์ ๊ณผ ๋งค์นญ๋๋ ํ ํฐ ๋ ์ฝ๋๋ฅผ ์ฐพ์ผ์ธ์.
- ๋ง๋ฃ๋์๊ฑฐ๋ ์ด๋ฏธ ์ฌ์ฉ๋์๊ฑฐ๋ ์ฌ์ฉ์ ์ํ๊ฐ ํ์ฉํ์ง ์์ผ๋ฉด ๊ฑฐ๋ถํ์ธ์.
- ์ ํจํ๋ฉด ๋์(๊ฒ์ฆ, ์ด๋ ์๋ฝ, ๋ก๊ทธ์ธ)์ ์ ์ฉํ๊ณ ํ ํฐ์ used_at์ผ๋ก ํ์ํด ์๋นํ์ธ์.
- ์ธ์ (๋ก๊ทธ์ธ) ๋๋ ๊ฒ์ฆ/์ด๋ ์๋ฃ ์ํ๋ฅผ ์์ฑํ์ธ์.
์ฑ๊ณต ํ๋ฉด ๋๋ ๋ณต๊ตฌ ํ๋ฉด ์ค ํ๋๋ฅผ ๋ฐํํ์ธ์. ๋ณต๊ตฌ ํ๋ฉด์ ์ ๋งํฌ ์์ฒญ, ์งง์ ์ฟจ๋ค์ด ํ ์ฌ์ ์ก, ๊ณ ๊ฐ์ง์ ์ฐ๋ฝ ๊ฐ์ ์์ ํ ๋ค์ ๋จ๊ณ๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์ค๋ฅ ๋ฉ์์ง๋ ์ด๋ฉ์ผ ์กด์ฌ ์ฌ๋ถ๋ฅผ ๋ ธ์ถํ์ง ์๋๋ก ์ถฉ๋ถํ ๋ชจํธํ๊ฒ ์ ์งํ์ธ์.
์์ ์๋๋ฆฌ์ค: ๊ณ ๊ฐ ํฌํธ ์ด๋
๊ด๋ฆฌ์๊ฐ ๊ณ์ฝ์์๊ฒ ๋ฌธ์๋ฅผ ์ ๋ก๋ํ๊ณ ์์ ์ํ๋ฅผ ํ์ธํ ์ ์๊ฒ ๊ณ ๊ฐ ํฌํธ์ ์ด๋ํ๊ณ ์ถ์ดํฉ๋๋ค. ๊ณ์ฝ์๋ ์ ๊ท ์ง์์ด ์๋๋ฏ๋ก ์ด๋๋ ์ฌ์ฉํ๊ธฐ ์ฌ์์ผ ํ๋ฉด์ ๋จ์ฉํ๊ธฐ ์ด๋ ค์์ผ ํฉ๋๋ค.
์ ๋ขฐํ ์ ์๋ ์ด๋ ํ๋ฆ ์์:
- ๊ด๋ฆฌ์๊ฐ ๊ณ์ฝ์์ ์ด๋ฉ์ผ์ ์ ๋ ฅํ๊ณ ์ด๋ ์ ์ก์ ํด๋ฆญํฉ๋๋ค.
- ์์คํ ์ ์ผํ์ฉ ์ด๋ ํ ํฐ์ ์์ฑํ๊ณ ํด๋น ์ด๋ฉ์ผ๊ณผ ํฌํธ์ ๋ํ ์ด์ ์ด๋๋ฅผ ๋ฌดํจํํฉ๋๋ค.
- ์ด๋ฉ์ผ์ 72์๊ฐ ๋ง๋ฃ๋ก ๋ฐ์ก๋ฉ๋๋ค.
- ๊ณ์ฝ์๊ฐ ๋งํฌ๋ฅผ ํด๋ฆญํด ๋น๋ฐ๋ฒํธ๋ฅผ ์ค์ ํ๊ฑฐ๋(๋๋ ์ผํ์ฉ ์ฝ๋๋ก ํ์ธ) ํ ํฐ์ด ์ฌ์ฉ ์ฒ๋ฆฌ๋ฉ๋๋ค.
- ๊ณ์ฝ์๋ ํฌํธ์ ๋ก๊ทธ์ธ๋ ์ํ๋ก ๋์ฐฉํฉ๋๋ค.
72์๊ฐ ํ ํด๋ฆญํ๋ฉด ๋ฌด์์ด ์ค๋ฅ๋ฅผ ๋ณด์ฌ์ฃผ์ง ๋ง์ธ์. "์ด ์ด๋๋ ๋ง๋ฃ๋์์ต๋๋ค"๋ผ๊ณ ์๋ฆฌ๊ณ ์ ์ฑ ์ ๋ง๋ ๋ช ํํ ํ๋(์ ์ด๋ ์์ฒญ ๋๋ ๊ด๋ฆฌ์์๊ฒ ์ฌ์ ์ก ์์ฒญ)์ ์ ์ํ์ธ์.
๋ ๋ฒ์งธ ์ด๋๋ฅผ ๋ณด๋ผ ๋ ์ด์ ํ ํฐ์ ๋ฌดํจํํ๋ฉด "์ฒซ ์ด๋ฉ์ผ์ ์๋ํ๊ณ ๋ ๋ฒ์งธ๊ฐ ์๋ํ๋ค" ๊ฐ์ ํผ๋์ ๋ฐฉ์งํฉ๋๋ค. ๋ํ ์ค๋๋ ์ ๋ฌ ๋งํฌ๊ฐ ์ฌ์ฉ๋ ์ ์๋ ์ฐฝ์ ์ ํํฉ๋๋ค.
๊ณ ๊ฐ์ง์์ ์ํด ๊ฐ๋จํ ์ ์ก ๋ก๊ทธ๋ฅผ ์ ์งํ์ธ์: ์ด๋ ์์ฑ ์๊ฐ, ์ ๊ณต์๊ฐ ์ด๋ฉ์ผ์ ์๋ฝํ๋์ง, ๋งํฌ ํด๋ฆญ ์ฌ๋ถ, ์ฌ์ฉ ์ฌ๋ถ.
ํผํด์ผ ํ ์ผ๋ฐ์ ์ธ ์ค์์ ํจ์
๋๋ถ๋ถ์ ๊นจ์ง ํธ๋์ญ์ ์ด๋ฉ์ผ ํ๋ฆ์ ํ ์คํธ์์๋ ๊ด์ฐฎ์ ๋ณด์๋ ์ง๋ฆ๊ธธ๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์์ฃผ ๋ฐ๋ณต๋๋ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
- ์๋ก ๋ค๋ฅธ ๋ชฉ์ (๋ก๊ทธ์ธ vs ๊ฒ์ฆ vs ์ด๋)์ ํ๋์ ํ ํฐ์ ์ฌ์ฌ์ฉํจ.
- ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ณธ ํ ํฐ์ ์ ์ฅํจ. ์๋ณธ ๋์ ํด์๋ง ์ ์ฅํ์ธ์.
- ๋งค์ง ๋งํฌ๋ฅผ ๋ฉฐ์น ๋์ ์ ํจํ๊ฒ ๋ . ์๋ช ์ ์งง๊ฒ ์ ์งํ๊ณ ์ ๋งํฌ๋ฅผ ๋ฐ๊ธํ์ธ์.
- ์ด๋ฉ์ผ ์ ๊ณต์์ ์ํด ๋จ์ฉ์ผ๋ก ๋ณด์ด๋ ๋ฌด์ ํ ์ฌ์ ์ก.
- ์ฑ๊ณต ํ ํ ํฐ์ ์๋นํ์ง ์์.
- ํ ํฐ์ ์๋ฝํ๋ฉด์ ๋ชฉ์ , ๋ง๋ฃ, ์ฌ์ฉ ์ํ๋ฅผ ํ์ธํ์ง ์์.
ํ์ค์์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ๋ "ํด๋ํฐ์์ ํญํ ๋ค ๋ฐ์คํฌํฑ์์ ๋ค์ ํญํจ"์ ๋๋ค. ์ฌ์ฉ์๊ฐ ํด๋ํฐ์์ ์ด๋๋ฅผ ํญํ ๋ค ๋ฐ์คํฌํฑ์์ ๊ฐ์ ์ด๋ฉ์ผ์ ํญํ๋ฉด, ํ ํฐ์ ์ฒ์ ์ฌ์ฉ ์ ์๋นํ์ง ์์ผ๋ฉด ์ค๋ณต ๊ณ์ ์์ฑ์ด๋ ์๋ชป๋ ์ธ์ ์ฐ๊ฒฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์คํธ์ ๋ค์ ๋จ๊ณ
๋ง์ง๋ง์ผ๋ก ๊ณ ๊ฐ์ง์ ๊ด์ ์ผ๋ก ํ ๋ฒ ๋ ๊ฒํ ํ์ธ์: ์ฌ๋๋ค์ ๋ฆ๊ฒ ํด๋ฆญํ๊ณ ์ด๋ฉ์ผ์ ์ ๋ฌํ๊ณ ์ฌ์ ์ก์ ๋ค์ฏ ๋ฒ ๋๋ฅด๊ณ ์๋ฌด๊ฒ๋ ๋์ฐฉํ์ง ์์ ๋ ๋์์ ์์ฒญํ ๊ฒ์ด๋ผ๊ณ ๊ฐ์ ํ์ธ์.
์ฒดํฌ๋ฆฌ์คํธ:
- Tokens: ๊ณ ์ํธ๋กํผ ๋๋ค ๊ฐ, ๋ชฉ์ ๋จ์ผํ, ํด์๋ง ์ ์ฅ, ์ผํ์ฑ ์ฌ์ฉ
- ๋ง๋ฃ ๊ท์น: ํ๋ฆ๋ณ ๋ค๋ฅธ ๋ง๋ฃ ์๊ฐ๊ณผ ๋ง๋ฃ ๋งํฌ์ ๋ํ ๋ช ํํ ๋ณต๊ตฌ ๊ฒฝ๋ก
- ์ฌ์ ์ก ๋ฐ ๋ ์ดํธ ๋ฆฌ๋ฐ: ์งง์ ์ฟจ๋ค์ด, ์ผ์ผ ํ๋, IP ๋ฐ ์ด๋ฉ์ผ ์ฃผ์๋ณ ์ ํ
- ์ ๋ฌ์ฑ ๊ธฐ๋ณธ: SPF/DKIM/DMARC ์ค์ , ๋ฐ์ด์ค/์ฐจ๋จ/์ ๊ณ ์ถ์
- ๊ฐ์์ฑ: ์ ์ก ๋ก๊ทธ์ ํ ํฐ ์ฌ์ฉ ๋ก๊ทธ(์์ฑ, ์ ์ก, ํด๋ฆญ, ์ฌ์ฉ, ์คํจ ์ด์ )
๋ค์ ๋จ๊ณ:
- ์ต์ ์ธ ๊ฐ์ ๋ฉ์ผ ์ ๊ณต์์ ๋ชจ๋ฐ์ผ์์ ์ข ๋จ ๊ฐ ํ ์คํธ๋ฅผ ์ํํ์ธ์.
- ๋์ ๊ฒฝ๋ก ํ ์คํธ: ๋ง๋ฃ๋ ํ ํฐ, ์ด๋ฏธ ์ฌ์ฉ๋ ํ ํฐ, ์ฌ์ ์ก ์ด๊ณผ, ์๋ชป๋ ์ด๋ฉ์ผ, ์ ๋ฌ๋ ์ด๋ฉ์ผ.
- ์งง์ ๊ณ ๊ฐ์ง์ ํ๋ ์ด๋ถ ์์ฑ: ๋ก๊ทธ์์ ์ด๋๋ฅผ ๋ณผ์ง, ๋ฌด์์ ์ฌ์ ์กํ ์ง, ํํฐ ํ์ธ์ ์ธ์ ์์ฒญํ ์ง.
AppMaster(appmaster.io)์์ ์ด๋ฌํ ํ๋ฆ์ ๊ตฌ์ถ ์ค์ด๋ผ๋ฉด, Data Designer์์ ํ ํฐ๊ณผ ์ ์ก ๋ก๊ทธ๋ฅผ ๋ชจ๋ธ๋งํ๊ณ ํ๋์ Business Process์์ ์ผํ์ฑ ์ฌ์ฉ, ๋ง๋ฃ, ๋น์จ ์ ํ์ ์ ์ฉํ ์ ์์ต๋๋ค. ํ๋ฆ์ด ์์ ๋๋ฉด ์๊ท๋ชจ ํ์ผ๋ฟ์ ์ด์ํ๋ฉฐ ํ ์คํธ์ ์ ํ์ ์ค์ ์ฌ์ฉ์ ํ๋์ ๋ง์ถฐ ์กฐ์ ํ์ธ์.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋๋ถ๋ถ์ ์คํจ๋ ์ด๋ฉ์ผ ์ ์ก ์์ฒด์ ๋ฌธ์ ๋ผ๊ธฐ๋ณด๋ค ํ๋ฆ์ด ์ผ์์ ์ธ ์ฌ์ฉ์ ํ๋์ ์ฒ๋ฆฌํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ ๋ฒ ํด๋ฆญํ๊ฑฐ๋, ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ๋งํฌ๋ฅผ ์ด๊ฑฐ๋, ๋ช ์๊ฐ ํ์ ๋์์ค๊ฑฐ๋, ์ฌ์ ์ก ํ ์ค๋๋ ๋ฉ์์ง๋ฅผ ์ฌ์ฉํ๋ ์ํฉ์ ๋๋นํ์ง ์์ผ๋ฉด โ์ด๋ฏธ ์ฌ์ฉ๋จโ, โ์ด๋ฏธ ๊ฒ์ฆ๋จโ, โ๋ง๋ฃ๋จโ ๊ฐ์ ์ํ๊ฐ ๋ง์ ๊ณ ๊ฐ์ง์ ๋ฌธ์๋ก ์ด์ด์ง๋๋ค.
์ํ๋๊ฐ ๋์ ์์ ์๋ ์งง์ ๋ง๋ฃ ์๊ฐ์, ์ํ๋๊ฐ ๋ฎ์ ์์ ์๋ ๋ ๊ธด ์๊ฐ์ ์ ์ฉํ์ธ์. ์ค๋ฌด์ ๊ธฐ๋ณธ๊ฐ์ ๋งค์ง ๋ก๊ทธ์ธ ๋งํฌ 10โ20๋ถ, ๋น๋ฐ๋ฒํธ ์ฌ์ค์ 30โ60๋ถ, ์ ๊ท ์ฌ์ฉ์ ์ด๋ฉ์ผ ๊ฒ์ฆ 24โ72์๊ฐ, ์ด๋ 1โ7์ผ์ ๋๋ค. ์ค์ ์ฌ์ฉ์ ํ๋๊ณผ ์ํ ํ๋กํ์ ๋ฐ๋ผ ์กฐ์ ํ์ธ์.
ํ ํฐ์ ์์์ ์ผ๋ก ํ ๋ฒ๋ง ์ฌ์ฉํ๋๋ก ํ๊ณ , ์ฑ๊ณต ์ ์ฆ์ ์๋นํ์ธ์. ์ดํ ํด๋ฆญ์ ์ค๋ฅ๋ก ์ฒ๋ฆฌํ๊ธฐ๋ณด๋ค โ์ด ๋งํฌ๋ ์ด๋ฏธ ์ฌ์ฉ๋์์ต๋๋คโ ๊ฐ์ ์น์ ํ ์๋ด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋ก๊ทธ์ธ์ด๋ ๋ค์ ๋จ๊ณ๋ก ์ ๋ํ๋ฉด ๋๋ธ ํด๋ฆญ์ด๋ ์ฌ๋ฌ ํญ์์ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ์๋ฐฉํ ์ ์์ต๋๋ค.
๋ชฉ์ ๋ณ๋ก ๋ณ๋ ํ ํฐ์ ๋ง๋ค๊ณ ๊ฐ๋ฅํ๋ฉด ๋ถํฌ๋ช (opaque) ํ ํฐ์ ์ฌ์ฉํ์ธ์. ๊ธด ๋ฌด์์ ๊ฐ์ ์์ฑํด ์๋ฒ์๋ ํด์๋ง ์ ์ฅํ๊ณ , URL์๋ ์ด๋ฉ์ผ, ์ฌ์ฉ์ ID, ์ญํ ๊ฐ์ ์๋ณ ์ ๋ณด๋ฅผ ๋ฃ์ง ๋ง์ธ์. URL์ ๋ณต์ฌ๋๊ฑฐ๋ ๋ก๊ทธ์ ๋จ๊ณ ์ ๋ฌ๋๊ธฐ ์ฝ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋๋ถ๋ถ์ ํ์๊ฒ๋ ๋ถํฌ๋ช ํ ํฐ์ด ๊ฐ์ฅ ๊ฐ๋จํ๊ณ ํด์ (revocation)๊ฐ ๋ถ๋ช ํฉ๋๋ค. ์๋ช ๋ ํ ํฐ์ DB ์กฐํ๋ฅผ ์ค์ผ ์ ์์ผ๋ ํค ๊ด๋ฆฌ์ ํ๊ธฐ ์ ๋ต์ด ๋ณต์กํด์ง๋๋ค. ๊ฒ์ฆยท์ด๋ยท๋งค์ง ๋งํฌ ํ๋ฆ์์๋ ๋ถํฌ๋ช ํ ํฐ์ด ์์คํ ์ ์ดํดํ๊ณ ์ ์งํ๊ธฐ ์ฝ์ต๋๋ค.
๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์ถ๋๋ฉด ์๋ณธ ํ ํฐ์ด ๊ทธ๋๋ก ์๋ค๋ฉด ๊ณต๊ฒฉ์๊ฐ ๋ณต์ ํด ์ฌ์ฉํ ์ ์์ต๋๋ค. ์กฐํ๋ฅผ ์ํด ํด์๋ง ์ ์ฅํ๊ณ , ๋งํฌ ํด๋ฆญ ์ ํด์๋ฅผ ๋น๊ตํด์ ๊ฒ์ฌํ์ธ์. ๋น ๋ฅธ ์กฐํ๋ฅผ ์ํ ํค๋ ํด์(keyed hash)๋ ์์ ํ ์ผ๋ฐฉํฅ ํด์๋ฅผ ์ฌ์ฉํด ๋ณด์ธ์.
์งง์ ์ฟจ๋ค์ด๊ณผ ์ผ์ผ ํ๋๋ฅผ ์ค์ ํ์ธ์. ์ ์ ์ฌ์ฉ์์๊ฒ๋ ๊ฑฐ์ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ๋ฐ๋ณต ๋จ์ฉ์ ์ฐจ๋จ๋ฉ๋๋ค. ์ ํ์ด ๊ฑธ๋ฆด ๋๋ ์ ํํ๊ณ ์ฐจ๋ถํ ์๋ด ๋ฌธ๊ตฌ๋ก ์ํฉ(์: 60์ด ํ ์ฌ์์ฒญ ๊ฐ๋ฅ)์ ์๋ ค์ฃผ๊ณ , ์คํธ ํด๋ ํ์ธ ๋ฑ์ ๋ค์ ํ๋์ ์ ์ํ์ธ์.
๊ฐ ์ ์ก์ ๋ชฉ์ (template/๋ฒ์ ), provider์ ์๋ต, provider message ID ๊ฐ์ ์ ๋ณด๋ฅผ ๋จ๊ธฐ๊ณ ๋ฐ์ด์คยท์ฐจ๋จยท๋ถ๋ง(complaint) ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๊ตฌ๋ถํด ๊ธฐ๋กํ์ธ์. ๊ทธ๋ฌ๋ฉด ๊ณ ๊ฐ์ง์์ โ๋ณด๋๋?โ, โ์ ๊ณต์๊ฐ ์๋ฝํ๋?โ, โํด๋น ์ฃผ์๋ฅผ ์ต์ ํ๊ณ ์๋?โ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์ฌ์ฉ์ ์ํ๋ฅผ ์๊ณ ๋ช ํํ๊ฒ ์ ์งํ์ธ์. ํ ํฐ ํธ๋ค๋ฌ๋ ํ ํฐ ๋ชฉ์ , ๋ง๋ฃ, ์ฌ์ฉ ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๊ณ ํ ๋ฒ์ ์ํ ๋ณ๊ฒฝ๋ง ์ ์ฉํด์ผ ํฉ๋๋ค. ์ํ๊ฐ ์ด๋ฏธ ์๋ฃ๋ ๊ฒฝ์ฐ ์น์ ํ ํ์ธ์ ๋ณด์ฌ์ฃผ๊ณ ์ฌ์ฉ์๋ฅผ ๋ค์ ๋จ๊ณ๋ก ์๋ดํ์ธ์.
AppMaster์์๋ ํ ํฐ๊ณผ ์ ์ก ๋ก๊ทธ๋ฅผ ๋ณ๋ ํ ์ด๋ธ๋ก ๋ชจ๋ธ๋งํ๊ณ , ์์ฑยท๊ฒ์ฆยท์๋นยท๋ง๋ฃ ๊ฒ์ฌยท๋น์จ ์ ํ์ ํ๋์ Business Process ์์์ ๊ตฌํํ๋ฉด ์ฝ๋ ์์ด๋ ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํด๋ฆญ ์ก์ ์ ์์์ ์ผ๋ก ์ฒ๋ฆฌํด ์ธ์ ์ ์์ฑํ๋ฉด์ ํ ํฐ์ ์๋นํ์ง ์๋ ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค.


