1. IOS ํธ์ ์๋ฆผ
์๋ฆผ ์ ๊ณต์(provider)
์๋ฆผ ์์ฒญ(notification request)์ ๋ง๋ค์ด ์ ํ ํธ์ ์๋ฆผ ์๋น์ค(APNS)๋ก ๋ณด๋ด๋ ์ฃผ์ฒด
์๋ฆผ ์์ฒญ์ ๋ง๋ค๊ธฐ ์ํด์๋...
๋จ๋ง ํ ํฐ(device token): ์๋ฆผ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐ ํ์ํ ๊ณ ์ ์๋ณ์
ํ์ด๋ก๋(payload): ์๋ฆผ ๋ด์ฉ์ ๋ด์ JSON ๋์ ๋๋ฆฌ(dictionary)
๊ฐ ํ์ํ๋ค.
APNS
์ ํ์ด ์ ๊ณตํ๋ ์๊ฒฉ ์๋น์ค. ํธ์ ์๋ฆผ์ iOS ์ฅ์น๋ก ๋ณด๋ด๋ ์ญํ
iOS ๋จ๋ง(iOS device)
ํธ์ ์๋ฆผ์ ์์ ํ๋ ์ฌ์ฉ์ ๋จ๋ง
2. ์๋๋ก์ด๋ ํธ์ ์๋ฆผ
๋น์ทํ ์ ์ฐจ๋ก ์ ์ก. APNS ๋์ FCM(Firebase Cloud Messaging)์ ์ฌ์ฉ.
3. SMS ๋ฉ์ธ์ง
ํธ์๋ฆฌ์ค(Twilio), ๋ฅ์ค๋ชจ(Nexmo) ๊ฐ์ ์ 3 ์ฌ์
์ ์๋น์ค๋ฅผ ๋ง์ด ์ด์ฉ - ๋น์ฐ ์ ๋ฃ
4. ์ด๋ฉ์ผ
๋ณดํต ์์ฉ ์ด๋ฉ์ผ ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ฉฐ ์๋๊ทธ๋ฆฌ๋(Sendgrid), ๋ฉ์ผ์นจํ(Mailchimp)๋ฅผ ๋ง์ด ์ฌ์ฉ.
์ ์ก ์ฑ๊ณต๋ฅ ๋ ๋๊ณ , ๋ฐ์ดํฐ ๋ถ์ ์๋น์ค(analytics)๋ ์ ๊ณต.
์์ฝ
์ฑ ์ค์น ํน์ ๊ณ์ ๋ฑ๋ก ์ api ์๋ฒ๊ฐ ํด๋น ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์์งํ์ฌ DB์ ์ ์ฅ
์ด์: ๊ฐ๋ต์ ์ค๊ณ์
์ด ์ค๊ณ์ ๋ฌธ์ ์
1. SPOF(Single-Point-Of-Failure): ๋จ์ผ ์๋ฒ - ํ๋ ๊ณ ์ฅ๋๋ฉด ์ ์ฒด ์ฅ์ ๋ก ์ด์ด์ง
2. ๊ท๋ชจ ํ์ฅ์ฑ: ๋ง์ฐฌ๊ฐ์ง๋ก ๋จ์ผ ์๋ฒ - DB๋ Cache ๋ฑ ์ค์ํ ์ปดํฌ๋ํธ์ ๊ท๋ชจ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๋๋ฆด ๋ฐฉ๋ฒ์ด ์์
3. ์ฑ๋ฅ ๋ณ๋ชฉ: ๋จ์ผ ์๋ฒ - ์ฌ์ฉ์ ํธ๋ํฝ์ด ๋ชฐ๋ฆฌ๋ ์๊ฐ์๋ ์์คํ
๊ณผ๋ถํ ์ฐ๋ ค
๊ฐ์ ๋ ๋ฒ์ : ๊ฐ๋ต์ ์ค๊ณ์
๊ฐ์ ๋ฐฉํฅ
- DB์ Cahce๋ฅผ ์๋ฆผ ์์คํ ์ ์ฃผ ์๋ฒ์์ ๋ถ๋ฆฌ
- ์๋ฆผ ์๋ฒ๋ฅผ ์ฆ์คํ๊ณ ์๋์ผ๋ก ์ํ์ ๊ท๋ชจ ํ์ฅ์ด ์ด๋ฃจ์ด์ง ์ ์๋๋ก...
- ๋ฉ์ธ์ง ํ๋ฅผ ์ด์ฉํด ์์คํ ์ปดํฌ๋ํธ ์ฌ์ด์ ๊ฐํ ๊ฒฐํฉ์ ๋์
์ ๋ฆฌ
- API๋ฅผ ํธ์ถํ์ฌ ์๋ฆผ ์๋ฒ๋ก ์๋ฆผ์ ๋ณด๋
- ์๋ฆผ ์๋ฒ๋ ์ฌ์ฉ์ ์ ๋ณด, ๋จ๋ง ํ ํฐ, ์๋ฆผ ์ค์ ๊ฐ์ ๋ฉํ๋ฐ์ดํฐ(metadata)๋ฅผ ์บ์๋ DB์์ ๊ฐ์ ธ์ด
- ์๋ฆผ ์๋ฒ๋ ์ ์กํ ์๋ฆผ์ ๋ง๋ ์ด๋ฒคํธ๋ฅผ ๋ง๋ค์ด์ ํด๋น ์ด๋ฒคํธ๋ฅผ ํ ํ์ ๋ฃ๋๋ค.
- ์์ ์๋ฒ๋ ๋ฉ์ธ์ง ํ์์ ์๋ฆผ ์ด๋ฒคํธ๋ฅผ ๊บผ๋
- ์์ ์๋ฒ๋ ์๋ฆผ์ ์ 3์ ์๋น์ค๋ก ๋ณด๋
- ์ 3์ ์๋น์ค๋ ์ฌ์ฉ์ ๋จ๋ง๋ก ์๋ฆผ์ ์ ์กํจ
๋ฐ์ดํฐ ์์ค ๋ฐฉ์ง
์๋ฆผ ์ค๋ณต ์ ์ก ๋ฐฉ์ง
๊ฐ๋จํ ์ค๋ณต ๋ฐฉ์ง ๋ก์ง์ ์ฌ๋ก
: ๋ณด๋ด์ผ ํ ์๋ฆผ์ด ๋์ฐฉํ๋ฉด ๊ทธ ์ด๋ฒคํธ ID๋ฅผ ๊ฒ์ฌํ์ฌ ์ด์ ์ ๋ณธ ์ ์ด ์๋ ์ด๋ฒคํธ์ธ์ง ์ดํ๋ค. ์ค๋ณต๋ ์ด๋ฒคํธ๋ผ๋ฉด ๋ฒ๋ฆฌ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์๋ฆผ ๋ฐ์ก
์ค๋ณต ์ ์ก์ 100% ๋ฐฉ์งํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ ์ด์
์๋ฆผ ํ ํ๋ฆฟ, ์๋ฆผ ์ค์ , ์ด๋ฒคํธ ์ถ์ , ์์คํ ๋ชจ๋ํฐ๋ง, ์ฒ๋ฆฌ์จ ์ ํ ๋ฑ...
์ง์ง์ง ๐