2024๋…„ 12์›” 14์ผยท6๋ถ„ ์ฝ๊ธฐ

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ: ํ…œํ”Œ๋ฆฟ, ์žฌ์‹œ๋„, ์„ ํ˜ธ ์„ค์ •

์ด๋ฉ”์ผ, SMS, Telegram์„ ํ•œ ๊ณณ์—์„œ ํ…œํ”Œ๋ฆฟยท์ „์†ก ์ƒํƒœยท์žฌ์‹œ๋„ยท์‚ฌ์šฉ์ž ์„ ํ˜ธ์— ๋งž์ถฐ ์ผ๊ด€๋˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ฐ€์ด๋“œ.

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ: ํ…œํ”Œ๋ฆฟ, ์žฌ์‹œ๋„, ์„ ํ˜ธ ์„ค์ •

๋‹จ์ผ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์ด ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ

์ด๋ฉ”์ผ, SMS, Telegram์„ ๋ณ„๋„ ๊ธฐ๋Šฅ์œผ๋กœ ๋งŒ๋“ค๋ฉด ๊ธˆ๋ฐฉ ๊ท ์—ด์ด ์ƒ๊น๋‹ˆ๋‹ค. ๊ฐ™์€ ์•Œ๋ฆผ์ด ๋‹ค๋ฅธ ๋ฌธ๊ตฌ, ๋‹ค๋ฅธ ์‹œ์ , ๊ทธ๋ฆฌ๊ณ  ๋ˆ„๊ฐ€ ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ทœ์น™์„ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์šด์˜ํŒ€์€ ์ด๋ฉ”์ผ ์ œ๊ณต์ž, SMS ๊ฒŒ์ดํŠธ์›จ์ด, ๋ด‡ ๋กœ๊ทธ์— ๊ฐ๊ฐ ๋‹ค๋ฅธ ์ง„์‹ค์„ ์ซ“์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ์•Œ๋ฆผ์„ ์„ธ ๊ฐœ์˜ ํ†ตํ•ฉ์ด ์•„๋‹ˆ๋ผ ํ•˜๋‚˜์˜ ์ œํ’ˆ์œผ๋กœ ์ทจ๊ธ‰ํ•จ์œผ๋กœ์จ ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ(๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •, ๊ฒฐ์ œ ์™„๋ฃŒ, ์„œ๋ฒ„ ์žฅ์• )๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์‹œ์Šคํ…œ์€ ํ…œํ”Œ๋ฆฟ, ์‚ฌ์šฉ์ž ์„ ํ˜ธ, ์ „์†ก ๊ทœ์น™์„ ๋ฐ”ํƒ•์œผ๋กœ ์ฑ„๋„๋ณ„ ์ „๋‹ฌ ๋ฐฉ์‹์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฑ„๋„๋งˆ๋‹ค ํ˜•์‹์€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ ์˜๋ฏธ, ๋ฐ์ดํ„ฐ, ์ถ”์ ์€ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

๋Œ€๋ถ€๋ถ„ ํŒ€์€ ์–ด๋–ค ์ฑ„๋„๋กœ ์‹œ์ž‘ํ–ˆ๋“  ๋™์ผํ•œ ๊ธฐ๋ฐ˜์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: ๋ณ€์ˆ˜์™€ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ ํ…œํ”Œ๋ฆฟ, ์ „์†ก ์ƒํƒœ ์ถ”์ (โ€œ๋ณด๋ƒ„, ์ „๋‹ฌ, ์‹คํŒจ, ์ด์œ โ€), ํ•ฉ๋ฆฌ์ ์ธ ์žฌ์‹œ๋„์™€ ํด๋ฐฑ, ๋™์˜์™€ ์กฐ์šฉ ์‹œ๊ฐ„(quiet hours)์„ ๋ฐ˜์˜ํ•œ ์‚ฌ์šฉ์ž ์„ ํ˜ธ, ๊ทธ๋ฆฌ๊ณ  ์šด์˜ํŒ€์ด ์ถ”์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฐ์‚ฌ ๊ธฐ๋ก์ž…๋‹ˆ๋‹ค.

์„ฑ๊ณต์€ ์ข‹์€ ์˜๋ฏธ๋กœ ์ง€๋ฃจํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€๋Š” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ : ์ ์ ˆํ•œ ์‚ฌ๋žŒ์ด ์ ์ ˆํ•œ ๋‚ด์šฉ์„ ์ ์ ˆํ•œ ์‹œ๊ฐ„์—, ํ—ˆ์šฉํ•œ ์ฑ„๋„์„ ํ†ตํ•ด ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ชจ๋“  ์‹œ๋„๊ฐ€ ๋ช…ํ™•ํ•œ ์ƒํƒœ์™€ ์ด์œ  ์ฝ”๋“œ๋กœ ๊ธฐ๋ก๋˜์–ด ์žˆ์–ด ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด "์ƒˆ ๋กœ๊ทธ์ธ" ์•Œ๋ฆผ์„ ์ƒ๊ฐํ•ด๋ณด์„ธ์š”. ํ•œ ๋ฒˆ ๋งŒ๋“ค๊ณ  ๋™์ผํ•œ ์‚ฌ์šฉ์ž, ๋””๋ฐ”์ด์Šค, ์œ„์น˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฑ„์›Œ ์ด๋ฉ”์ผ๋กœ๋Š” ์ƒ์„ธ๋ฅผ, SMS๋กœ๋Š” ๊ธด๊ธ‰์„ฑ์„, Telegram์œผ๋กœ๋Š” ๋น ๋ฅธ ํ™•์ธ์„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. SMS ์ œ๊ณต์ž๊ฐ€ ํƒ€์ž„์•„์›ƒ์„ ๋‚ด๋ฉด ์‹œ์Šคํ…œ์€ ์ผ์ •์— ๋”ฐ๋ผ ์žฌ์‹œ๋„ํ•˜๊ณ  ํƒ€์ž„์•„์›ƒ์„ ๊ธฐ๋กํ•˜๋ฉฐ ์•Œ๋ฆผ์„ ๋ฒ„๋ฆฌ์ง€ ์•Š๊ณ  ๋‹ค๋ฅธ ์ฑ„๋„๋กœ ํด๋ฐฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ "์™œ ์•Œ๋ฆฌ๋Š”๊ฐ€"์™€ "์–ด๋–ป๊ฒŒ ์ „๋‹ฌํ•˜๋Š”๊ฐ€"๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค. ์ฆ‰, ๊ณตํ†ต ๊ฐ์ฒด ์ง‘ํ•ฉ๊ณผ ์‹ค์ œ๋กœ ๋‹ค๋ฅผ ๋•Œ๋งŒ ์ฑ„๋„๋ณ„ ์„ธ๋ถ€๋ฅผ ๋‘์„ธ์š”.

๋จผ์ € **์ด๋ฒคํŠธ(event)**๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ์ด๋ฒคํŠธ๋Š” order_shipped๋‚˜ password_reset ๊ฐ™์€ ์ด๋ฆ„ ์žˆ๋Š” ํŠธ๋ฆฌ๊ฑฐ์ž…๋‹ˆ๋‹ค. ์ด๋ฆ„์€ ์ผ๊ด€๋˜๊ฒŒ: ์†Œ๋ฌธ์ž, ์–ธ๋”์Šค์ฝ”์–ด, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ๊ณผ๊ฑฐํ˜•์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์ด๋ฒคํŠธ๋Š” ํ…œํ”Œ๋ฆฟ๊ณผ ์„ ํ˜ธ ๊ทœ์น™์ด ์˜์กดํ•˜๋Š” ์•ˆ์ •๋œ ๊ณ„์•ฝ์œผ๋กœ ๋‹ค๋ฃจ์„ธ์š”.

ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ์—์„œ ์•Œ๋ฆผ(notification) ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ์˜๋„: ๋ˆ„๊ตฌ์—๊ฒŒ, ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”์ง€, ์ฝ˜ํ…์ธ ๋ฅผ ๋ Œ๋”๋งํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ(์ฃผ๋ฌธ ๋ฒˆํ˜ธ, ๋ฐฐ์†ก์ผ, ์žฌ์„ค์ • ์ฝ”๋“œ)์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” user_id, event_name, locale, priority, scheduled_at ๊ฐ™์€ ๊ณตํ†ต ํ•„๋“œ๋ฅผ ์ €์žฅํ•˜์„ธ์š”.

๊ทธ๋‹ค์Œ ์ฑ„๋„๋ณ„๋กœ **๋ฉ”์‹œ์ง€(message)**๋กœ ๋‚˜๋ˆ•๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ์•Œ๋ฆผ์€ ์ฑ„๋„๋ณ„๋กœ 0~3๊ฐœ์˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด๋ฉ”์ผ, SMS, Telegram). ๋ฉ”์‹œ์ง€๋Š” ๋ชฉ์ ์ง€(์ด๋ฉ”์ผ ์ฃผ์†Œ, ์ „ํ™”๋ฒˆํ˜ธ, Telegram chat_id), template_id, ๋ Œ๋”๋œ ๋‚ด์šฉ(์ด๋ฉ”์ผ์˜ ์ œ๋ชฉ/๋ณธ๋ฌธ, SMS์˜ ์งง์€ ํ…์ŠคํŠธ) ๊ฐ™์€ ์ฑ„๋„๋ณ„ ํ•„๋“œ๋ฅผ ๋‹ด์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ๊ฐ ์ „์†ก์„ **์ „์†ก ์‹œ๋„(DeliveryAttempt)**๋กœ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๋„์—๋Š” provider request_id, ํƒ€์ž„์Šคํƒฌํ”„, ์‘๋‹ต ์ฝ”๋“œ, ์ •๊ทœํ™”๋œ ์ƒํƒœ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ "๋ฐ›์ง€ ๋ชปํ–ˆ์–ด์š”"๋ผ๊ณ  ๋งํ•  ๋•Œ ํ™•์ธํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.

๊ฐ„๋‹จํ•œ ๋ชจ๋ธ์€ ๋ณดํ†ต ๋„ค ๊ฐœ์˜ ํ…Œ์ด๋ธ” ๋˜๋Š” ์ปฌ๋ ‰์…˜์— ๋งž์Šต๋‹ˆ๋‹ค:

  • Event (ํ—ˆ์šฉ๋œ ์ด๋ฒคํŠธ ์ด๋ฆ„๊ณผ ๊ธฐ๋ณธ๊ฐ’ ์นดํƒˆ๋กœ๊ทธ)
  • Notification (์‚ฌ์šฉ์ž ์˜๋„๋ณ„ ํ•˜๋‚˜)
  • Message (์ฑ„๋„๋ณ„ ํ•˜๋‚˜)
  • DeliveryAttempt (์‹œ๋„๋ณ„ ํ•˜๋‚˜)

์ดˆ๊ธฐ์— ๋ฉฑ๋“ฑ์„ฑ(idempotency)์„ ๊ณ„ํšํ•˜์„ธ์š”. ๊ฐ ์•Œ๋ฆผ์— (event_name, user_id, external_ref) ๊ฐ™์€ ๊ฒฐ์ •๋ก ์  ํ‚ค๋ฅผ ์ฃผ์–ด ์—…์ŠคํŠธ๋ฆผ ์‹œ์Šคํ…œ์˜ ์žฌ์‹œ๋„๊ฐ€ ์ค‘๋ณต์„ ๋งŒ๋“ค์ง€ ์•Š๊ฒŒ ํ•˜์„ธ์š”. ์›Œํฌํ”Œ๋กœ ๋‹จ๊ณ„๊ฐ€ ์žฌ์‹คํ–‰๋˜๋ฉด ๋ฉฑ๋“ฑ์„ฑ ํ‚ค๊ฐ€ ๋‘ ๋ฒˆ SMS๊ฐ€ ๊ฐ€๋Š” ๊ฒƒ์„ ๋ง‰์•„์ค๋‹ˆ๋‹ค.

๊ฐ์‚ฌ์— ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ์žฅ๊ธฐ ๋ณด๊ด€ํ•˜์„ธ์š”(์ด๋ฒคํŠธ, ์•Œ๋ฆผ, ์ตœ์ข… ์ƒํƒœ, ํƒ€์ž„์Šคํƒฌํ”„). ๋‹จ๊ธฐ ์ „์†ก ํ์™€ ์›์‹œ ์ œ๊ณต์ž ํŽ˜์ด๋กœ๋“œ๋Š” ์šด์˜๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ์— ํ•„์š”ํ•œ ๊ธฐ๊ฐ„๋งŒ ๋ณด๊ด€ํ•˜์„ธ์š”.

์‹ค์šฉ์ ์ธ ์—”๋“œํˆฌ์—”๋“œ ํ”Œ๋กœ์šฐ(๋‹จ๊ณ„๋ณ„)

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ "๋ฌด์—‡์„ ๋ณด๋‚ผ์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ"์„ "์ „์†กํ•˜๋Š” ๊ฒƒ"๊ณผ ๋ถ„๋ฆฌํ•  ๋•Œ ๊ฐ€์žฅ ์ž˜ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†๋„๊ฐ€ ๋น ๋ฅด๊ณ  ์‹คํŒจ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์‰ฌ์›Œ์ง‘๋‹ˆ๋‹ค.

์‹ค์šฉ์ ์ธ ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  1. ์ด๋ฒคํŠธ ์ƒ์‚ฐ์ž๊ฐ€ ์•Œ๋ฆผ ์š”์ฒญ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” password_reset, invoice_paid, ticket_updated ๊ฐ™์€ ์š”์ฒญ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์—๋Š” ์‚ฌ์šฉ์ž ID, ๋ฉ”์‹œ์ง€ ์œ ํ˜•, ์ปจํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ(์ฃผ๋ฌธ ๋ฒˆํ˜ธ, ๊ธˆ์•ก, ๋‹ด๋‹น์ž ์ด๋ฆ„)๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ์‚ฌ ์ถ”์ ์„ ์œ„ํ•ด ์š”์ฒญ์„ ์ฆ‰์‹œ ์ €์žฅํ•˜์„ธ์š”.

  2. ๋ผ์šฐํ„ฐ๊ฐ€ ์‚ฌ์šฉ์ž ๋ฐ ๋ฉ”์‹œ์ง€ ๊ทœ์น™์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์„ ํ˜ธ(ํ—ˆ์šฉ ์ฑ„๋„, ์˜ตํŠธ์ธ, ์กฐ์šฉ ์‹œ๊ฐ„)์™€ ๋ฉ”์‹œ์ง€ ๊ทœ์น™(์˜ˆ: ๋ณด์•ˆ ์•Œ๋ฆผ์€ ์ด๋ฉ”์ผ ๋จผ์ € ์‹œ๋„)์„ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ๊ฐ€ Telegram, ๊ทธ๋‹ค์Œ SMS, ๊ทธ๋‹ค์Œ ์ด๋ฉ”์ผ ๊ฐ™์€ ์ฑ„๋„ ๊ณ„ํš์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

  3. ์‹œ์Šคํ…œ์ด ์ฑ„๋„๋ณ„ ์ „์†ก ์ž‘์—…์„ ํ์— ๋„ฃ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ž‘์—…์—๋Š” ํ…œํ”Œ๋ฆฟ ํ‚ค, ์ฑ„๋„, ๋ณ€์ˆ˜๋“ค์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์„ ํ์— ๋„ฃ์–ด ์‚ฌ์šฉ์ž ๋™์ž‘์ด ์ „์†ก์— ์˜ํ•ด ์ฐจ๋‹จ๋˜์ง€ ์•Š๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  4. ์ฑ„๋„ ์›Œ์ปค๊ฐ€ ์ œ๊ณต์ž ํ†ตํ•ด ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฉ”์ผ์€ SMTP๋‚˜ ์ด๋ฉ”์ผ API๋กœ, SMS๋Š” SMS ๊ฒŒ์ดํŠธ์›จ์ด๋กœ, Telegram์€ ๋ด‡์„ ํ†ตํ•ด ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์›Œ์ปค๋Š” ๋ฉฑ๋“ฑ์„ฑ ์žˆ๊ฒŒ ์„ค๊ณ„๋˜์–ด ๋™์ผ ์ž‘์—…์„ ์žฌ์‹œ๋„ํ•ด๋„ ์ค‘๋ณต ์ „์†ก์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  5. ์ƒํƒœ ์—…๋ฐ์ดํŠธ๋Š” ํ•œ๊ณณ์œผ๋กœ ํ˜๋Ÿฌ ๋“ค์–ด์˜ต๋‹ˆ๋‹ค. ์›Œ์ปค๋Š” queued, sent, failed, ๊ฐ€๋Šฅํ•˜๋ฉด delivered ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ณต์ž๊ฐ€ "accepted"๋งŒ ์‘๋‹ตํ•˜๋ฉด ๊ทธ ๋˜ํ•œ ๊ธฐ๋กํ•˜๊ณ  delivered์™€ ๊ตฌ๋ถ„ํ•ด ๋‹ค๋ฃจ์„ธ์š”.

  6. ํด๋ฐฑ๊ณผ ์žฌ์‹œ๋„๋Š” ๊ฐ™์€ ์ƒํƒœ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Telegram์ด ์‹คํŒจํ•˜๋ฉด ๋ผ์šฐํ„ฐ(๋˜๋Š” ์žฌ์‹œ๋„ ์›Œ์ปค)๊ฐ€ ์ปจํ…์ŠคํŠธ๋ฅผ ์žƒ์ง€ ์•Š๊ณ  ๋‹ค์Œ์— SMS๋ฅผ ์˜ˆ์•ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ: ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฐฑ์—”๋“œ๊ฐ€ ์‚ฌ์šฉ์ž์™€ IP ์ฃผ์†Œ๋ฅผ ํฌํ•จํ•œ ํ•˜๋‚˜์˜ ์š”์ฒญ์„ ๋ฐœํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ผ์šฐํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ Telegram์„ ์„ ํ˜ธํ•˜์ง€๋งŒ ์กฐ์šฉ ์‹œ๊ฐ„์œผ๋กœ ์ธํ•ด ๋ฐค์—๋Š” ์ฐจ๋‹จ๋˜์–ด ์ด๋ฉ”์ผ์„ ์ง€๊ธˆ, Telegram์„ ์•„์นจ์— ์˜ˆ์ •ํ•˜๊ณ  ๋‘˜์„ ๋™์ผํ•œ ์•Œ๋ฆผ ๋ ˆ์ฝ”๋“œ ์•„๋ž˜์—์„œ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค.

AppMaster์— ๊ตฌํ˜„ํ•œ๋‹ค๋ฉด ์š”์ฒญ, ์ž‘์—…, ์ƒํƒœ ํ…Œ์ด๋ธ”์„ Data Designer์— ๋‘๊ณ  ๋ผ์šฐํŒ…๊ณผ ์žฌ์‹œ๋„ ๋กœ์ง์„ Business Process Editor์—์„œ ํ‘œํ˜„ํ•˜๋ฉฐ ์ „์†ก์€ ๋น„๋™๊ธฐ๋กœ ์ฒ˜๋ฆฌํ•ด UI๊ฐ€ ๋ฐ˜์‘์„ฑ์„ ์œ ์ง€ํ•˜๊ฒŒ ํ•˜์„ธ์š”.

์ฑ„๋„ ๊ฐ„์— ์ž‘๋™ํ•˜๋Š” ํ…œํ”Œ๋ฆฟ ๊ตฌ์กฐ

์ข‹์€ ํ…œํ”Œ๋ฆฟ ์‹œ์Šคํ…œ์€ ํ•œ ๊ฐ€์ง€ ์•„์ด๋””์–ด์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค: ๋‹น์‹ ์€ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ์•Œ๋ฆฌ๋Š” ๊ฒƒ์ด์ง€ "์ด๋ฉ”์ผ์„ ๋ณด๋‚ด๋Š” ๊ฒƒ"์ด๋‚˜ "SMS๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ"์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ๋‹น ํ•˜๋‚˜์˜ ํ…œํ”Œ๋ฆฟ์„ ๋งŒ๋“ค๊ณ  ๊ทธ ์•„๋ž˜์— ์ฑ„๋„๋ณ„ ๋ณ€ํ˜•์„ ์ €์žฅํ•˜์„ธ์š”(Password reset, Order shipped, Payment failed ๋“ฑ).

๋ชจ๋“  ์ฑ„๋„ ๋ณ€ํ˜•์—์„œ ๋™์ผํ•œ ๋ณ€์ˆ˜๋ฅผ ์œ ์ง€ํ•˜์„ธ์š”. ์ด๋ฉ”์ผ์ด first_name๊ณผ order_id๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด SMS์™€ Telegram๋„ ์ •ํ™•ํžˆ ๊ฐ™์€ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์•ผ ํ•œ ์ฑ„๋„์€ ์ •์ƒ์ธ๋ฐ ๋‹ค๋ฅธ ์ฑ„๋„์€ ๋นˆ์นธ์ด ๋˜๋Š” ๋ฏธ๋ฌ˜ํ•œ ๋ฒ„๊ทธ๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ„๋‹จํ•œ ํ…œํ”Œ๋ฆฟ ํ˜•ํƒœ

๊ฐ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ์ฑ„๋„๋ณ„๋กœ ์†Œ๊ทœ๋ชจ ํ•„๋“œ ์ง‘ํ•ฉ์„ ์ •์˜ํ•˜์„ธ์š”:

  • ์ด๋ฉ”์ผ: subject, preheader(์„ ํƒ), HTML ๋ณธ๋ฌธ, ํ…์ŠคํŠธ ๋Œ€์ฒด
  • SMS: ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋ณธ๋ฌธ
  • Telegram: ์ผ๋ฐ˜ ํ…์ŠคํŠธ ๋ณธ๋ฌธ, ์„ ํƒ์  ๋ฒ„ํŠผ ๋˜๋Š” ์งง์€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ

์ฑ„๋„๋งˆ๋‹ค ๋ฐ”๋€Œ๋Š” ๊ฒƒ์€ ํฌ๋งท๋ฟ์ด๋ฉฐ ์˜๋ฏธ๋Š” ๊ฐ™์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

SMS๋Š” ์งง๊ธฐ ๋•Œ๋ฌธ์— ํŠน๋ณ„ ๊ทœ์น™์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๊ธธ ๋•Œ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๋ฏธ๋ฆฌ ๊ฒฐ์ •ํ•˜์„ธ์š”: ๋ฌธ์ž ์ˆ˜ ์ œํ•œ์„ ์ •ํ•˜๊ณ  ์ž˜๋ผ๋‚ด๊ธฐ ๊ทœ์น™(์ž˜๋ผ๋‚ด๊ณ  ... ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์„ ํƒ์  ์ค„์„ ๋จผ์ € ์ œ๊ฑฐ)์„ ์„ ํƒํ•˜๊ณ  ๊ธด URL๊ณผ ๋ถˆํ•„์š”ํ•œ ๋ฌธ์žฅ ๋ถ€ํ˜ธ๋ฅผ ํ”ผํ•˜๋ฉฐ ํ•ต์‹ฌ ํ–‰๋™(์ฝ”๋“œ, ๋งˆ๊ฐ, ๋‹ค์Œ ๋‹จ๊ณ„)์„ ์•ž์— ๋ฐฐ์น˜ํ•˜์„ธ์š”.

๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋ณต์‚ฌํ•˜์ง€ ์•Š๋Š” ๋กœ์ผ€์ผ ์ฒ˜๋ฆฌ

์–ธ์–ด๋Š” ๋ณ„๋„ ์›Œํฌํ”Œ๋กœ๊ฐ€ ์•„๋‹ˆ๋ผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋‹ค๋ฃจ์„ธ์š”. ์ด๋ฒคํŠธ์™€ ์ฑ„๋„๋ณ„๋กœ ๋ฒˆ์—ญ์„ ์ €์žฅํ•˜๊ณ  ๋™์ผํ•œ ๋ณ€์ˆ˜๋กœ ๋ Œ๋”๋งํ•˜์„ธ์š”. "Order shipped" ๋กœ์ง์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ๋งŒ ๋กœ์ผ€์ผ๋ณ„๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

๋ฏธ๋ฆฌ๋ณด๊ธฐ ๋ชจ๋“œ๋Š” ํฐ ๊ฐ€์น˜๋ฅผ ์ค๋‹ˆ๋‹ค. ์ƒ˜ํ”Œ ๋ฐ์ดํ„ฐ(๊ธด ์ด๋ฆ„ ๊ฐ™์€ ์—ฃ์ง€ ์ผ€์ด์Šค ํฌํ•จ)๋กœ ํ…œํ”Œ๋ฆฟ์„ ๋ Œ๋”๋งํ•ด ์ง€์›ํŒ€์ด ์ด๋ฉ”์ผ, SMS, Telegram ๋ณ€ํ˜•์„ ์‹ค์ œ๋กœ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์„ธ์š”.

์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๊ณ  ๋””๋ฒ„๊ทธ ๊ฐ€๋Šฅํ•œ ์ „์†ก ์ƒํƒœ

ํ•ต์‹ฌ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ ์„ค๊ณ„
AppMaster Data Designer์—์„œ ์ด๋ฒคํŠธ, ๋ฉ”์‹œ์ง€, ์ „์†ก ์‹œ๋„๋ฅผ ๋ชจ๋ธ๋งํ•˜์„ธ์š”.
ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

๋‚˜์ค‘์— ํ•œ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: ์ด ์•Œ๋ฆผ์— ๋ฌด์Šจ ์ผ์ด ์ผ์–ด๋‚ฌ๋Š”๊ฐ€? ์ข‹์€ ๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ์˜๋„ํ•œ ๋ฉ”์‹œ์ง€์™€ ๊ฐ ์ „์†ก ์‹œ๋„๋ฅผ ๋ถ„๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ด๋ฉ”์ผ, SMS, Telegram ์ „๋ฐ˜์—์„œ ๊ฐ™์€ ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์†Œ์ˆ˜์˜ ๊ณตํ†ต ์ƒํƒœ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”:

  • queued: ์‹œ์Šคํ…œ์— ์ˆ˜๋ฝ๋˜์–ด ์›Œ์ปค๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์ƒํƒœ
  • sending: ์ „์†ก ์‹œ๋„๊ฐ€ ์ง„ํ–‰ ์ค‘์ธ ์ƒํƒœ
  • sent: ์ œ๊ณต์ž API์— ์„ฑ๊ณต์ ์œผ๋กœ ์ „๋‹ฌ๋œ ์ƒํƒœ
  • failed: ์กฐ์น˜ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜๋กœ ์‹œ๋„๊ฐ€ ์ข…๋ฃŒ๋œ ์ƒํƒœ
  • delivered: ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๊ฐ€ ๋„๋‹ฌํ–ˆ๋‹ค๋Š” ์ฆ๊ฑฐ๊ฐ€ ์žˆ๋Š” ์ƒํƒœ

์ด ์ƒํƒœ๋“ค์€ ๋ฉ”์‹œ์ง€ ๋ฉ”์ธ ๋ ˆ์ฝ”๋“œ์— ์œ ์ง€ํ•˜๋˜ ๋ชจ๋“  ์‹œ๋„๋ฅผ ํžˆ์Šคํ† ๋ฆฌ ํ…Œ์ด๋ธ”์— ๊ธฐ๋กํ•˜์„ธ์š”. ๊ทธ ํžˆ์Šคํ† ๋ฆฌ๊ฐ€ ๋””๋ฒ„๊น…์„ ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค: ์‹œ๋„ #1์€ ํƒ€์ž„์•„์›ƒ์œผ๋กœ ์‹คํŒจํ–ˆ๊ณ  ์‹œ๋„ #2๋Š” ์„ฑ๊ณตํ–ˆ๊ฑฐ๋‚˜, SMS๋Š” ์ž˜ ์ „์†ก๋์ง€๋งŒ ์ด๋ฉ”์ผ์€ ๊ณ„์† ๋ฐ”์šด์Šค๋˜์—ˆ๋‹ค๋Š” ์‹์œผ๋กœ์š”.

์‹œ๋„๋ณ„๋กœ ์ €์žฅํ•  ํ•ญ๋ชฉ

์ œ๊ณต์ž ์‘๋‹ต์„ ์ •๊ทœํ™”ํ•ด ์ œ๊ณต์ž๋“ค์ด ๋‹ค๋ฅธ ๋‹จ์–ด๋ฅผ ์จ๋„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์ด์Šˆ๋ฅผ ๊ทธ๋ฃนํ™”ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์„ธ์š”.

  • provider_name๊ณผ provider_message_id
  • response_code(์˜ˆ: TIMEOUT, INVALID_NUMBER, BOUNCED ๊ฐ™์€ ์ •๊ทœํ™” ์ฝ”๋“œ)
  • raw_provider_code์™€ raw_error_text(์ง€์› ์ผ€์ด์Šค์šฉ)
  • started_at, finished_at, duration_ms
  • channel(email, sms, telegram)๊ณผ destination(๋งˆ์Šคํ‚น๋œ ํ˜•ํƒœ)

๋ถ€๋ถ„์  ์„ฑ๊ณต์„ ๋Œ€๋น„ํ•˜์„ธ์š”. ํ•˜๋‚˜์˜ ์•Œ๋ฆผ์ด ์„ธ ์ฑ„๋„ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ๊ณตํ†ต์˜ parent_id์™€ ๋น„์ฆˆ๋‹ˆ์Šค ์ปจํ…์ŠคํŠธ(order_id, ticket_id, alert_type)๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SMS๋Š” ์ „์†ก๋์ง€๋งŒ ์ด๋ฉ”์ผ์ด ์‹คํŒจํ•˜๋ฉด ์„ธ ๊ฐœ์˜ ๋ฌด๊ด€ํ•œ ์ธ์‹œ๋˜ํŠธ๊ฐ€ ์•„๋‹ˆ๋ผ ํ•œ ์žฅ์†Œ์—์„œ ์ „์ฒด ์ด์•ผ๊ธฐ๋ฅผ ๋ณด๊ธธ ์›ํ•ฉ๋‹ˆ๋‹ค.

"delivered"์˜ ์‹ค์ œ ์˜๋ฏธ

"Sent"๋Š” "delivered"๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. Telegram์€ API๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ์ˆ˜์šฉํ–ˆ๋Š”์ง€๋งŒ ์•Œ ์ˆ˜ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SMS์™€ ์ด๋ฉ”์ผ์€ ์ข…์ข… ์›นํ›„ํฌ๋‚˜ ์ œ๊ณต์ž ์ฝœ๋ฐฑ์— ๋”ฐ๋ผ ์ „๋‹ฌ ์—ฌ๋ถ€๊ฐ€ ๊ฒฐ์ •๋˜๋ฉฐ ๋ชจ๋“  ์ œ๊ณต์ž๊ฐ€ ๋™์ผํ•˜๊ฒŒ ์‹ ๋ขฐํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์ฑ„๋„๋ณ„๋กœ delivered์˜ ์ •์˜๋ฅผ ๋ฏธ๋ฆฌ ์ •ํ•˜์„ธ์š”. ๊ฐ€๋Šฅํ•˜๋ฉด ์›นํ›„ํฌ๋กœ ํ™•์ธ๋œ ์ „๋‹ฌ์„ ์‚ฌ์šฉํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด delivered๋ฅผ ์•Œ ์ˆ˜ ์—†์Œ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  sent๋กœ ๋ณด๊ณ ํ•˜์„ธ์š”. ๊ทธ๋ž˜์•ผ ๋ณด๊ณ ๊ฐ€ ์ •์งํ•˜๊ณ  ์ง€์› ๋‹ต๋ณ€์ด ์ผ๊ด€๋ฉ๋‹ˆ๋‹ค.

์žฌ์‹œ๋„, ํด๋ฐฑ, ์ค‘๋‹จ ์‹œ์ 

์žฌ์‹œ๋„๋Š” ์•Œ๋ฆผ ์‹œ์Šคํ…œ์—์„œ ์ž์ฃผ ์‹ค์ˆ˜ํ•˜๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ๋นจ๋ฆฌ ์žฌ์‹œ๋„ํ•˜๋ฉด ํญํ’์ด ์ƒ๊ธฐ๊ณ , ์˜์›ํžˆ ์žฌ์‹œ๋„ํ•˜๋ฉด ์ค‘๋ณต๊ณผ ์ง€์› ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค: ์‹ค์ œ๋กœ ์„ฑ๊ณต ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์„ ๋•Œ๋งŒ ๋‹ค์‹œ ์‹œ๋„ํ•˜๊ณ , ์˜๋ฏธ ์—†์„ ๋•Œ๋Š” ์ค‘๋‹จํ•˜์„ธ์š”.

์‹คํŒจ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์„ธ์š”. ์ด๋ฉ”์ผ ์ œ๊ณต์ž์˜ ํƒ€์ž„์•„์›ƒ, SMS ๊ฒŒ์ดํŠธ์›จ์ด์˜ 502, ์ผ์‹œ์  Telegram API ์˜ค๋ฅ˜๋Š” ๋ณดํ†ต ์žฌ์‹œ๋„ ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. ์ž˜๋ชป๋œ ์ด๋ฉ”์ผ ์ฃผ์†Œ, ์œ ํšจ์„ฑ ๊ฒ€์ฆ์— ์‹คํŒจํ•œ ์ „ํ™”๋ฒˆํ˜ธ, ๋ด‡์„ ์ฐจ๋‹จํ•œ Telegram ์ฑ„ํŒ…์€ ์žฌ์‹œ๋„ํ•ด๋„ ์†Œ์šฉ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๋“ค์„ ๋™์ผํ•˜๊ฒŒ ๋‹ค๋ฃจ๋ฉด ๋น„์šฉ์„ ๋‚ญ๋น„ํ•˜๊ณ  ๋กœ๊ทธ๋ฅผ ์ฑ„์›๋‹ˆ๋‹ค.

์‹ค์šฉ์ ์ธ ์žฌ์‹œ๋„ ๊ณ„ํš์€ ์ƒํ•œ์ด ์žˆ๊ณ  ๋ฐฑ์˜คํ”„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค:

  • ์‹œ๋„ 1: ์ฆ‰์‹œ ์ „์†ก
  • ์‹œ๋„ 2: 30์ดˆ ํ›„
  • ์‹œ๋„ 3: 2๋ถ„ ํ›„
  • ์‹œ๋„ 4: 10๋ถ„ ํ›„
  • ๊ฒฝ๋ณด์˜ ๊ฒฝ์šฐ ์ตœ๋Œ€ ์œ ํšจ๊ธฐ๊ฐ„(์˜ˆ: 30~60๋ถ„) ์ง€๋‚˜๋ฉด ์ค‘์ง€

์ค‘๋‹จ์€ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋ช…ํ™•ํžˆ ๋ฐ˜์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์žฌ์‹œ๋„ ํ•œ๋„๋ฅผ ๋„˜์œผ๋ฉด ๋ฉ”์‹œ์ง€๋ฅผ dead-letter(๋˜๋Š” failed-permanently)๋กœ ํ‘œ์‹œํ•˜์„ธ์š”. ๋งˆ์ง€๋ง‰ ์˜ค๋ฅ˜ ์ฝ”๋“œ์™€ ์งง์€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์œ ์ง€ํ•ด ์ง€์›ํŒ€์ด ์ถ”์ • ์—†์ด ์กฐ์น˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์„ธ์š”.

์„ฑ๊ณต ํ›„ ๋ฐ˜๋ณต ์ „์†ก์„ ๋ง‰์œผ๋ ค๋ฉด ๋ฉฑ๋“ฑ์„ฑ์„ ๊ตฌํ˜„ํ•˜์„ธ์š”. ๋…ผ๋ฆฌ์  ๋ฉ”์‹œ์ง€๋‹น(๋ณดํ†ต notification_id + user_id + channel) ๋ฉฑ๋“ฑ์„ฑ ํ‚ค๋ฅผ ๋งŒ๋“ค์–ด ์ œ๊ณต์ž๊ฐ€ ๋Šฆ๊ฒŒ ์‘๋‹ตํ•ด๋„ ๋‘ ๋ฒˆ์งธ ์‹œ๋„๋Š” ์ค‘๋ณต์œผ๋กœ ์ธ์‹๋˜์–ด ๊ฑด๋„ˆ๋›ฐ๊ฒŒ ํ•˜์„ธ์š”.

ํด๋ฐฑ์€ ์ž๋™ ๊ณตํ™ฉ ์ƒํƒœ๊ฐ€ ์•„๋‹ˆ๋ผ ์˜๋„์ ์œผ๋กœ ์„ค๊ณ„๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ๊ฐ๋„์™€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์—์Šค์ปฌ๋ ˆ์ด์…˜ ๊ทœ์น™์„ ์ •์˜ํ•˜์„ธ์š”. ์˜ˆ: ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์€ ๊ฐœ์ธ์ •๋ณด ์œ„ํ—˜ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์ฑ„๋„๋กœ ํด๋ฐฑํ•˜๋ฉด ์•ˆ ๋˜์ง€๋งŒ, ์šด์˜ ์ธ์‹œ๋˜ํŠธ ๊ฒฝ๊ณ ๋Š” ๋‘ ๋ฒˆ์˜ Telegram ์‹คํŒจ ํ›„ SMS๋ฅผ ์‹œ๋„ํ•˜๊ณ  10๋ถ„ ํ›„ ์ด๋ฉ”์ผ์„ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž ์„ ํ˜ธ, ๋™์˜, ์กฐ์šฉ ์‹œ๊ฐ„

์šด์˜์„ ๋‹จ์ˆœํ•œ UI๋กœ ์ „ํ™˜
๊ฒ€์ƒ‰, ์žฌ์ „์†ก ์ œ์–ด, ๊ฐ์‚ฌ ์ถ”์ ์„ ์œ„ํ•œ ๋‚ด๋ถ€ ๋„๊ตฌ๋ฅผ ๊ฐ™์€ ํ”Œ๋žซํผ์—์„œ ๋งŒ๋“œ์„ธ์š”.
๊ด€๋ฆฌ์ž ์•ฑ ์ƒ์„ฑ

์‚ฌ๋žŒ์„ ์กด์ค‘ํ•  ๋•Œ ์‹œ์Šคํ…œ์ด "์Šค๋งˆํŠธ"ํ•˜๊ฒŒ ๋А๊ปด์ง‘๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๋ฐฉ๋ฒ•์€ ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ๋ฆผ ์œ ํ˜•๋ณ„๋กœ ์ฑ„๋„์„ ์„ ํƒํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ํŒ€์€ ๋ณด์•ˆ, ๊ณ„์ •, ์ œํ’ˆ, ๋งˆ์ผ€ํŒ…์ฒ˜๋Ÿผ ์œ ํ˜•์„ ๋ฌถ์–ด ๊ทœ์น™๊ณผ ๋ฒ•์  ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค.

์ฑ„๋„์ด ์—†์„ ๋•Œ๋„ ์ž‘๋™ํ•˜๋Š” ์„ ํ˜ธ ๋ชจ๋ธ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž๋Š” ์ด๋ฉ”์ผ์€ ์žˆ์ง€๋งŒ ์ „ํ™”๋ฒˆํ˜ธ๊ฐ€ ์—†์„ ์ˆ˜ ์žˆ๊ณ , Telegram์„ ์•„์ง ์—ฐ๊ฒฐํ•˜์ง€ ์•Š์•˜์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ƒํ™ฉ์„ ์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ง๊ณ  ์ •์ƒ์œผ๋กœ ๋‹ค๋ฃจ์„ธ์š”.

๋Œ€๋ถ€๋ถ„ ์‹œ์Šคํ…œ์€ ์ปดํŒฉํŠธํ•œ ํ•„๋“œ ์ง‘ํ•ฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค: ์•Œ๋ฆผ ์œ ํ˜•(๋ณด์•ˆ, ๋งˆ์ผ€ํŒ…, ์ฒญ๊ตฌ), ์œ ํ˜•๋ณ„ ํ—ˆ์šฉ ์ฑ„๋„(์ด๋ฉ”์ผ, SMS, Telegram), ์ฑ„๋„๋ณ„ ๋™์˜(๋‚ ์งœ/์‹œ๊ฐ„, ์ถœ์ฒ˜, ์ฆ๊ฑฐ ํ•„์š” ์‹œ), ์ฑ„๋„๋ณ„ ์˜ตํŠธ์•„์›ƒ ์‚ฌ์œ (์‚ฌ์šฉ์ž ์„ ํƒ, ์ด๋ฉ”์ผ ๋ฐ˜์†ก, "STOP" ํšŒ์‹ ), ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ์ž์˜ ์‹œ๊ฐ„๋Œ€ ํฌํ•จ ์กฐ์šฉ ์‹œ๊ฐ„ ๊ทœ์น™(์‹œ์ž‘/์ข…๋ฃŒ).

์กฐ์šฉ ์‹œ๊ฐ„์€ ์‹œ์Šคํ…œ์ด ์ž์ฃผ ์‹คํŒจํ•˜๋Š” ์ง€์ ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์‹œ๊ฐ„๋Œ€(๋‹จ์ˆœ ์˜คํ”„์…‹์ด ์•„๋‹Œ)๋ฅผ ์ €์žฅํ•ด ์„ฌ๋จธํƒ€์ž„ ๋ณ€ํ™”๋กœ ๋†€๋ผ์ง€ ์•Š๊ฒŒ ํ•˜์„ธ์š”. ๋ฉ”์‹œ์ง€๊ฐ€ ์กฐ์šฉ ์‹œ๊ฐ„์— ์˜ˆ์•ฝ๋˜๋ฉด ์‹คํŒจ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ง๊ณ  ์—ฐ๊ธฐ(deferred)๋กœ ํ‘œ์‹œํ•˜๊ณ  ๋‹ค์Œ ํ—ˆ์šฉ ๋ฐœ์†ก ์‹œ๊ฐ„์„ ์„ ํƒํ•˜์„ธ์š”.

๊ธฐ๋ณธ๊ฐ’์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค, ํŠนํžˆ ์ค‘์š”ํ•œ ์•Œ๋ฆผ์˜ ๊ฒฝ์šฐ. ์ผ๋ฐ˜์ ์ธ ์ ‘๊ทผ์€: ๋ณด์•ˆ ์•Œ๋ฆผ์€ ์กฐ์šฉ ์‹œ๊ฐ„์„ ๋ฌด์‹œ(๊ทธ๋Ÿฌ๋‚˜ ํ•„์š”ํ•œ ๋ฒ•์  ํ•˜๋“œ ์˜ตํŠธ์•„์›ƒ์€ ์กด์ค‘), ๋น„ํ•ต์‹ฌ ์—…๋ฐ์ดํŠธ๋Š” ์กฐ์šฉ ์‹œ๊ฐ„๊ณผ ์ฑ„๋„ ์„ ํƒ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

์˜ˆ: ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์€ ํ—ˆ์šฉ๋œ ๊ฐ€์žฅ ๋น ๋ฅธ ์ฑ„๋„๋กœ ์ฆ‰์‹œ ๋ฐœ์†ก๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๊ฐ„ ์š”์•ฝ์€ ์•„์นจ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๊ณ  SMS๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.

์šด์˜: ๋ชจ๋‹ˆํ„ฐ๋ง, ๋กœ๊ทธ, ์ง€์› ์›Œํฌํ”Œ๋กœ

๋นŒ๋“œ์—์„œ ๋ฐฐํฌ๋กœ ์ „ํ™˜
์ค€๋น„๋˜๋ฉด AppMaster Cloud ๋˜๋Š” ์ž์ฒด ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌํ•˜์„ธ์š”.
์•ฑ ๋ฐฐํฌ

์•Œ๋ฆผ์ด ์ด๋ฉ”์ผ, SMS, Telegram์„ ์˜ค๊ฐ€๋ฉด ์ง€์›ํŒ€์€ ๋น ๋ฅด๊ฒŒ ๋‹ต์„ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค: ๋ณด๋ƒˆ๋‚˜, ๋„๋‹ฌํ–ˆ๋‚˜, ๋ฌด์—‡์ด ์‹คํŒจํ–ˆ๋‚˜? ๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ ์ œ๊ณต์ž๋ฅผ ์จ๋„ ์กฐ์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ๊ณณ์ฒ˜๋Ÿผ ๋А๊ปด์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฌ๋‚˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ๊ด€๋ฆฌ์ž ๋ทฐ๋กœ ์‹œ์ž‘ํ•˜์„ธ์š”. ์‚ฌ์šฉ์ž, ์ด๋ฒคํŠธ ์œ ํ˜•, ์ƒํƒœ, ์‹œ๊ฐ„ ์ฐฝ์œผ๋กœ ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๊ณ  ์ตœ์‹  ์‹œ๋„๋ฅผ ๋จผ์ € ๋ณด์—ฌ์ฃผ์„ธ์š”. ๊ฐ ํ–‰์€ ์ฑ„๋„, ์ œ๊ณต์ž ์‘๋‹ต, ๋‹ค์Œ ์˜ˆ์ •๋œ ์ž‘์—…(์žฌ์‹œ๋„, ํด๋ฐฑ, ์ค‘์ง€)์„ ๋ณด์—ฌ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ์ดˆ๊ธฐ์— ์žก์•„๋‚ด๋Š” ์ง€ํ‘œ

์žฅ์• ๋Š” ํ”ํžˆ ํ•˜๋‚˜์˜ ๊น”๋”ํ•œ ์˜ค๋ฅ˜๋กœ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์†Œ์ˆ˜์˜ ์ˆ˜์น˜๋ฅผ ์ถ”์ ํ•˜๊ณ  ์ •๊ธฐ์ ์œผ๋กœ ๊ฒ€ํ† ํ•˜์„ธ์š”:

  • ์ฑ„๋„๋ณ„ ์ „์†ก๋ฅ (๋ถ„๋‹น ๋ฉ”์‹œ์ง€)
  • ์ œ๊ณต์ž ๋ฐ ์˜ค๋ฅ˜ ์ฝ”๋“œ๋ณ„ ์‹คํŒจ์œจ
  • ์žฌ์‹œ๋„์œจ(๋ช‡ ๊ฑด์ด ๋‘ ๋ฒˆ์งธ ์‹œ๋„๋ฅผ ํ•„์š”๋กœ ํ–ˆ๋Š”์ง€)
  • ์ „๋‹ฌ ์‹œ๊ฐ„(queued์—์„œ delivered๊นŒ์ง€, p50 ๋ฐ p95)
  • ๋“œ๋กญ๋ฅ (์‚ฌ์šฉ์ž ์„ ํ˜ธ, ๋™์˜ ๊ฒฐ์—ฌ, ์ตœ๋Œ€ ์žฌ์‹œ๋„๋กœ ์ค‘์ง€๋œ ๋น„์œจ)

๋ชจ๋“  ๊ฒƒ์„ ์—ฐ๊ด€์ง€์–ด ๋ณด์„ธ์š”. ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ correlation ID๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ…œํ”Œ๋ฆฟ, ํ์ž‰, ์ œ๊ณต์ž ํ˜ธ์ถœ, ์ƒํƒœ ์—…๋ฐ์ดํŠธ ์ „๋ฐ˜์— ์ „๋‹ฌํ•˜์„ธ์š”. ๋กœ๊ทธ์—์„œ ๊ทธ ID๋Š” ์—ฌ๋Ÿฌ ์ฑ„๋„๋กœ ํผ์ง„ ์ด๋ฒคํŠธ๋ฅผ ์ถ”์ ํ•˜๋Š” ์‹ค(thread)์ด ๋ฉ๋‹ˆ๋‹ค.

์ง€์› ์นœํ™”์  ์žฌ์ „์†ก(replay) ๊ฐ€์ด๋“œ

์žฌ์ „์†ก์€ ํ•„์ˆ˜์ง€๋งŒ ์‚ฌ๋žŒ์—๊ฒŒ ์ŠคํŒธ์„ ๋ณด๋‚ด๊ฑฐ๋‚˜ ์ด์ค‘ ์ฒญ๊ตฌ๋ฅผ ํ•˜์ง€ ์•Š๋„๋ก ๊ฐ€๋“œ๋ ˆ์ผ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์•ˆ์ „ํ•œ ์žฌ์ „์†ก ํ๋ฆ„์€ ๋ณดํ†ต ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค: ์ „์ฒด ์ด๋ฒคํŠธ ๋ฐฐ์น˜๊ฐ€ ์•„๋‹Œ ํŠน์ • ๋ฉ”์‹œ์ง€ ID๋งŒ ์žฌ์ „์†ก, ์ „์†ก ์ „์— ์ •ํ™•ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฒ„์ „๊ณผ ๋ Œ๋”๋œ ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ, ์žฌ์ „์†ก ์‚ฌ์œ ์™€ ์‹คํ–‰์ž ๊ธฐ๋ก, ์ด๋ฏธ ์ „๋‹ฌ๋œ ๋ฉ”์‹œ์ง€๋Š” ๋ช…์‹œ์ ์œผ๋กœ ๊ฐ•์ œ๋กœ ํ•˜์ง€ ์•Š๋Š” ํ•œ ์ฐจ๋‹จ, ์‚ฌ์šฉ์ž ๋ฐ ์ฑ„๋„๋ณ„ ์†๋„ ์ œํ•œ ์ ์šฉ.

์•Œ๋ฆผ์˜ ๋ณด์•ˆ ๋ฐ ๊ฐœ์ธ์ •๋ณด ๊ธฐ๋ณธ

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ๊ฐœ์ธ ๋ฐ์ดํ„ฐ(์ด๋ฉ”์ผ, ์ „ํ™”๋ฒˆํ˜ธ, ์ฑ„ํŒ… ID)๋ฅผ ๋‹ค๋ฃจ๊ณ  ๋กœ๊ทธ์ธ, ๊ฒฐ์ œ, ์ง€์› ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ์ˆœ๊ฐ„์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ๊ณผ ๋กœ๊ทธ ๋ผ์ธ์ด ๋‚˜์ค‘์— ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ €์žฅ ๋ฒ”์œ„์™€ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์„ ์ œํ•œํ•˜์„ธ์š”.

๊ฐ€๋Šฅํ•˜๋ฉด ํ…œํ”Œ๋ฆฟ์— ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์ง€ ๋งˆ์„ธ์š”. ํ…œํ”Œ๋ฆฟ์€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๊ณ  ๋‹จ์ˆœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค: "Your code is {{code}}" ๊ฐ™์€ ํ˜•ํƒœ๋Š” ๊ดœ์ฐฎ์ง€๋งŒ ์ „์ฒด ๊ณ„์ • ์ƒ์„ธ, ๊ธด ํ† ํฐ, ๊ณ„์ •์„ ํƒˆ์ทจํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋Š” ํ”ผํ•˜์„ธ์š”. ์ผํšŒ์šฉ ์ฝ”๋“œ๋‚˜ ์žฌ์„ค์ • ํ† ํฐ์ด ๊ผญ ํ•„์š”ํ•˜๋ฉด ์›์‹œ๊ฐ’์ด ์•„๋‹Œ(์˜ˆ: ํ•ด์‹œ์™€ ๋งŒ๋ฃŒ ์‹œ๊ฐ„) ๊ฒ€์ฆ์— ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ์ €์žฅํ•˜์„ธ์š”.

์•Œ๋ฆผ ์ด๋ฒคํŠธ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋กœ๊ทธํ•  ๋•Œ๋Š” ์ ๊ทน์ ์œผ๋กœ ๋งˆ์Šคํ‚นํ•˜์„ธ์š”. ์ง€์› ๋‹ด๋‹น์ž๋Š” ๋ณดํ†ต ์ฝ”๋“œ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ์ฝ”๋“œ๊ฐ€ ์ „์†ก๋˜์—ˆ๋Š”์ง€๋ฅผ ์•Œ๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ „ํ™”๋ฒˆํ˜ธ์™€ ์ด๋ฉ”์ผ๋„ ์ „์†ก์—๋Š” ์ „์ฒด ๊ฐ’์ด ํ•„์š”ํ•˜์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ํ™”๋ฉด์—์„œ๋Š” ๋งˆ์Šคํ‚น๋œ ๋ฒ„์ „์„ ๋ณด์—ฌ์ฃผ์„ธ์š”.

๋Œ€๋ถ€๋ถ„ ์‚ฌ๊ณ ๋ฅผ ๋ง‰๋Š” ์ตœ์†Œํ•œ์˜ ํ†ต์ œ

  • ์—ญํ•  ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ์ œ์–ด: ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ๊ณผ ์ „์ฒด ์ˆ˜์‹ ์ž ์ •๋ณด๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์„ ์ œํ•œ
  • ๋””๋ฒ„๊ทธ ์ ‘๊ทผ๊ณผ ์ง€์› ์ ‘๊ทผ ๋ถ„๋ฆฌ: ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๊ฐœ์ธ์ •๋ณด ์œ ์ถœ๋กœ ์ด์–ด์ง€์ง€ ์•Š๊ฒŒ
  • ์›นํ›… ๋ณดํ˜ธ: ์„œ๋ช…๋œ ์ฝœ๋ฐฑ์ด๋‚˜ ๊ณต์œ  ๋น„๋ฐ€ ์‚ฌ์šฉ, ํƒ€์ž„์Šคํƒฌํ”„ ๊ฒ€์ฆ, ์•Œ ์ˆ˜ ์—†๋Š” ์ถœ์ฒ˜ ๊ฑฐ๋ถ€
  • ์ €์žฅ ์‹œ ๋ฏผ๊ฐ ํ•„๋“œ ์•”ํ˜ธํ™”, ์ „์†ก ์‹œ TLS ์‚ฌ์šฉ
  • ๋ณด์กด ์ •์ฑ… ์ •์˜: ์ƒ์„ธ ๋กœ๊ทธ๋Š” ์งง๊ฒŒ, ์ดํ›„์—๋Š” ์ง‘๊ณ„๋‚˜ ํ•ด์‹œ๋œ ์‹๋ณ„์ž๋งŒ ๋ณด๊ด€

์‹ค์šฉ์  ์˜ˆ: ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ • SMS๊ฐ€ ์‹คํŒจํ•ด Telegram์œผ๋กœ ํด๋ฐฑํ•  ๋•Œ๋Š” ์‹œ๋„, ์ œ๊ณต์ž ์ƒํƒœ, ๋งˆ์Šคํ‚น๋œ ์ˆ˜์‹ ์ž๋งŒ ์ €์žฅํ•˜๋˜ ์žฌ์„ค์ • ๋งํฌ ์›๋ฌธ์€ DB๋‚˜ ๋กœ๊ทธ์— ์ €์žฅํ•˜์ง€ ๋งˆ์„ธ์š”.

์˜ˆ์‹œ ์‹œ๋‚˜๋ฆฌ์˜ค: ํ•œ ์•Œ๋ฆผ, ์„ธ ์ฑ„๋„, ์‹ค์ œ ๊ฒฐ๊ณผ

์•Œ๋ฆผ์„ ํ•˜๋‚˜์˜ ์‹œ์Šคํ…œ์œผ๋กœ ํ†ตํ•ฉ
ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ์—์„œ ์ด๋ฉ”์ผ, SMS, Telegram์œผ๋กœ ๋ผ์šฐํŒ…๋˜๋Š” ๋‹จ์ผ ์•Œ๋ฆผ ํ๋ฆ„์„ ๋งŒ๋“œ์„ธ์š”.
AppMaster ์ฒดํ—˜ํ•˜๊ธฐ

๊ณ ๊ฐ ๋งˆ์•ผ(Maya)๋Š” Password reset๊ณผ New login ๋‘ ์•Œ๋ฆผ ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ–ˆ๊ณ  Telegram์„ ์šฐ์„ , ๊ทธ๋‹ค์Œ ์ด๋ฉ”์ผ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. SMS๋Š” ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์—๋งŒ ํด๋ฐฑ์œผ๋กœ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

์–ด๋А ์ €๋… ๋งˆ์•ผ๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ์•ˆ์ •๋œ ID๋ฅผ ๊ฐ€์ง„ ๋‹จ์ผ ์•Œ๋ฆผ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋งŒ๋“ค๊ณ  ํ˜„์žฌ ์„ ํ˜ธ์— ๋”ฐ๋ผ ์ฑ„๋„ ์‹œ๋„๋ฅผ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์•ผ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํ•ฉ๋‹ˆ๋‹ค: Telegram ๋ฉ”์‹œ์ง€๊ฐ€ ๋ช‡ ์ดˆ ๋‚ด์— ๋„์ฐฉํ•ด ์งง์€ ์žฌ์„ค์ • ์ฝ”๋“œ์™€ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์ค๋‹ˆ๋‹ค. Telegram์ด ์„ฑ๊ณตํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ๊ฒƒ์€ ๋„์ฐฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์ด ๊ธฐ๋กํ•˜๋Š” ๊ฒƒ์€ ๋” ์ƒ์„ธํ•ฉ๋‹ˆ๋‹ค:

  • Notification: type=PASSWORD_RESET, user_id=Maya, template_version=v4
  • Attempt #1: channel=TELEGRAM, status=SENT then DELIVERED
  • ์ •์ฑ…์ƒ(์ฒซ ์„ฑ๊ณต ํ›„ ์ค‘์ง€) ์ด๋ฉ”์ผ์ด๋‚˜ SMS ์‹œ๋„๋Š” ์ƒ์„ฑ๋˜์ง€ ์•Š์Œ

๊ทธ ์ฃผ ํ›„์— ์ƒˆ๋กœ์šด ๋””๋ฐ”์ด์Šค์—์„œ New login ์•Œ๋ฆผ์ด ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์•ผ๋Š” ๋กœ๊ทธ์ธ ์•Œ๋ฆผ์„ Telegram๋งŒ ํ—ˆ์šฉํ•ด ๋‘์—ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ Telegram์„ ๋ณด๋‚ด์ง€๋งŒ ์ œ๊ณต์ž๊ฐ€ ์ผ์‹œ์  ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ๋ฐฑ์˜คํ”„๋ฅผ ๋‘๊ณ  ๋‘ ๋ฒˆ ์žฌ์‹œ๋„ํ•œ ๋’ค FAILED๋กœ ํ‘œ์‹œํ•˜๊ณ  ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค(์ด ์•Œ๋ฆผ ์œ ํ˜•์€ ํด๋ฐฑ ๋ถˆํ—ˆ).

์ง„์งœ ์‹คํŒจ ์‚ฌ๋ก€: ๋งˆ์•ผ๊ฐ€ ์—ฌํ–‰ ์ค‘ ๋˜ ๋‹ค๋ฅธ ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •์„ ์š”์ฒญํ–ˆ์Šต๋‹ˆ๋‹ค. Telegram์„ ๋ณด๋ƒˆ์ง€๋งŒ 60์ดˆ ๋‚ด์— ์ „๋‹ฌ์ด ํ™•์ธ๋˜์ง€ ์•Š์œผ๋ฉด SMS ํด๋ฐฑ์ด ์„ค์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. SMS ์ œ๊ณต์ž๊ฐ€ ํƒ€์ž„์•„์›ƒ์„ ๊ธฐ๋กํ–ˆ์Šต๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์€ ํƒ€์ž„์•„์›ƒ์„ ๊ธฐ๋กํ•˜๊ณ  ํ•œ ๋ฒˆ ์žฌ์‹œ๋„ํ–ˆ์œผ๋ฉฐ ๋‘ ๋ฒˆ์งธ ์‹œ๋„๊ฐ€ ์„ฑ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งˆ์•ผ๋Š” 1๋ถ„ ํ›„ SMS ์ฝ”๋“œ๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.

๋งˆ์•ผ๊ฐ€ ์ง€์›์— ์—ฐ๋ฝํ•˜๋ฉด ์ง€์›ํŒ€์€ ์‚ฌ์šฉ์ž์™€ ์‹œ๊ฐ„ ์ฐฝ์œผ๋กœ ๊ฒ€์ƒ‰ํ•ด ์‹œ๋„ ์ด๋ ฅ: ํƒ€์ž„์Šคํƒฌํ”„, ์ œ๊ณต์ž ์‘๋‹ต ์ฝ”๋“œ, ์žฌ์‹œ๋„ ํšŸ์ˆ˜, ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ์ฆ‰์‹œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ, ํ”ํ•œ ์‹ค์ˆ˜, ๋‹ค์Œ ๋‹จ๊ณ„

๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ๋‘ ๊ฐ€์ง€ ์งˆ๋ฌธ์— ๋น ๋ฅด๊ฒŒ ๋‹ตํ•  ์ˆ˜ ์žˆ์„ ๋•Œ ์šด์˜ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค: "์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๋ณด๋‚ด๋ ค๊ณ  ํ–ˆ๋Š”๊ฐ€?"์™€ "๊ทธ ๋’ค์— ๋ฌด์Šจ ์ผ์ด ์žˆ์—ˆ๋Š”๊ฐ€?" ์ฑ„๋„์ด๋‚˜ ์ด๋ฒคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ์ „์— ์ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๋น ๋ฅธ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • ๋ช…ํ™•ํ•œ ์ด๋ฒคํŠธ ์ด๋ฆ„๊ณผ ์†Œ์œ ์ž(์˜ˆ: invoice.overdue๋Š” billing ์†Œ์œ )
  • ํ…œํ”Œ๋ฆฟ ๋ณ€์ˆ˜๋Š” ํ•œ ๋ฒˆ ์ •์˜(ํ•„์ˆ˜ vs ์„ ํƒ, ๊ธฐ๋ณธ๊ฐ’, ํ˜•์‹ ๊ทœ์น™)
  • ์ƒํƒœ ์‚ฌ์ „ ํ•ฉ์˜(created, queued, sent, delivered, failed, suppressed) ๋ฐ ๊ฐ ์ƒํƒœ์˜ ์˜๋ฏธ
  • ์žฌ์‹œ๋„ ํ•œ๋„์™€ ๋ฐฑ์˜คํ”„(์ตœ๋Œ€ ์‹œ๋„, ๊ฐ„๊ฒฉ, ์ค‘์ง€ ๊ทœ์น™)
  • ๋ณด์กด ๊ทœ์น™(๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ, ์ œ๊ณต์ž ์‘๋‹ต, ์ƒํƒœ ์ด๋ ฅ์„ ์–ผ๋งˆ๋‚˜ ๋ณด๊ด€ํ• ์ง€)

ํ•œ ๊ฐ€์ง€๋งŒ ํ•˜๋ ค๋ฉด, sent์™€ delivered์˜ ์ฐจ์ด๋ฅผ ๋ฌธ์žฅ์œผ๋กœ ์ ์–ด๋‘์„ธ์š”. Sent๋Š” ์‹œ์Šคํ…œ์ด ํ•œ ํ–‰๋™์ž…๋‹ˆ๋‹ค. Delivered๋Š” ์ œ๊ณต์ž๊ฐ€ ๋ณด๊ณ ํ•œ ๊ฒƒ(์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ๋ˆ„๋ฝ๋  ์ˆ˜ ์žˆ์Œ)์ž…๋‹ˆ๋‹ค. ์ด ๋‘˜์„ ์„ž์œผ๋ฉด ์ง€์›ํŒ€๊ณผ ์ดํ•ด๊ด€๊ณ„์ž๊ฐ€ ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ์ง‘๋‹ˆ๋‹ค.

ํ”ผํ•ด์•ผ ํ•  ํ”ํ•œ ์‹ค์ˆ˜

  • sent๋ฅผ ์„ฑ๊ณต์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ๊ณผ์žฅ๋œ ์ „๋‹ฌ๋ฅ ์„ ๋ณด๊ณ ํ•˜๋Š” ๊ฒƒ
  • ์ฑ„๋„๋ณ„ ํ…œํ”Œ๋ฆฟ์„ ๋ฐฉ์น˜ํ•ด ์ด๋ฉ”์ผ, SMS, Telegram์ด ์„œ๋กœ ๋ชจ์ˆœ๋˜๊ฒŒ ๋˜๋Š” ๊ฒƒ
  • ์ œ๊ณต์ž๊ฐ€ ํƒ€์ž„์•„์›ƒํ–ˆ์ง€๋งŒ ๋‚˜์ค‘์— ์ˆ˜๋ฝํ•œ ๊ฒฝ์šฐ ๋ฉฑ๋“ฑ์„ฑ ์—†์ด ์žฌ์‹œ๋„ํ•ด ์ค‘๋ณต์„ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • ์˜์›ํžˆ ์žฌ์‹œ๋„ํ•ด ์ผ์‹œ์  ์žฅ์• ๋ฅผ ์†Œ์Œ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • "ํ˜น์‹œ ๋ชฐ๋ผ"๋ผ๋Š” ์ด์œ ๋กœ ๋กœ๊ทธ์™€ ์ƒํƒœ ๊ธฐ๋ก์— ๊ณผ๋„ํ•œ ๊ฐœ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ

ํ•˜๋‚˜์˜ ์ด๋ฒคํŠธ์™€ ํ•˜๋‚˜์˜ ๊ธฐ๋ณธ ์ฑ„๋„๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋‘ ๋ฒˆ์งธ ์ฑ„๋„์€ ํด๋ฐฑ์œผ๋กœ ์ถ”๊ฐ€ํ•˜์„ธ์š”(๋ณ‘๋ ฌ ๋ฐœ์†ก์œผ๋กœ ์‹œ์ž‘ํ•˜์ง€ ๋งˆ์„ธ์š”). ํ๋ฆ„์ด ์•ˆ์ •๋˜๋ฉด ์ด๋ฒคํŠธ๋ณ„๋กœ ํ™•์žฅํ•˜๊ณ  ํ…œํ”Œ๋ฆฟ๊ณผ ๋ณ€์ˆ˜๋ฅผ ๊ณต์œ ํ•ด ๋ฉ”์‹œ์ง€ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜์„ธ์š”.

ํ•ธ๋“œ์ฝ”๋”ฉ ์—†์ด ์ด๊ฑธ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด AppMaster (appmaster.io)์€ ํ•ต์‹ฌ ๋ถ€๋ถ„์— ์‹ค์šฉ์ ์ž…๋‹ˆ๋‹ค: Data Designer์—์„œ ์ด๋ฒคํŠธ, ํ…œํ”Œ๋ฆฟ, ์ „์†ก ์‹œ๋„๋ฅผ ๋ชจ๋ธ๋งํ•˜๊ณ  Business Process Editor์—์„œ ๋ผ์šฐํŒ…๊ณผ ์žฌ์‹œ๋„๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉฐ ์ด๋ฉ”์ผ, SMS, Telegram์„ ํ†ตํ•ฉํ•ด ์ƒํƒœ ์ถ”์ ์„ ํ•œ ๊ณณ์— ์œ ์ง€ํ•˜์„ธ์š”.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
๋‹ค์ค‘ ์ฑ„๋„ ์•Œ๋ฆผ ์‹œ์Šคํ…œ: ํ…œํ”Œ๋ฆฟ, ์žฌ์‹œ๋„, ์„ ํ˜ธ ์„ค์ • | AppMaster