๐คทโ๏ธ ๋ณธ๋ก ์ ์์
Firebase Cloud Messaging(FCM)? ์ฑ์์ ์๋,๊ณต์ง์ ๋ณด๋ด๊ธฐ์ํด์ ์ฌ์ฉ๋๋ ์๋ฆผ์ ๋ณด๋ด๋ ๋๊ตฌ์ ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ์ฑ/์น์์ ์ฐ๋ฆฌ๋ ์๋ฆผ์ ๊ณต์ง, ์ ๋ฐ์ดํธ, ์๋ฆผ์ ํด๋ํฐ ๋ฉ์ธ์ง๋ก ๋ฐ๋๋ฐ ์ด ํธ์ ์๋ฆผ์ ๋ณด๋ผ์ ์๋๋ก ๋์์ฃผ๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ๋ฉ์ธ์ง ์๋ฃจ์ ๊ธฐ์ ์ ๋๋ค.
์ ๋ Nest.js ๋ฐฑ์๋๋ก FCM์ ๊ตฌ์ถํด์ ํธ์์๋ฆผ ์๋น์ค๋ฅผ ๊ฐ๋ฐํ ์์ ์ด์ง๋ง ๊ฐ๋ฐ์ ์์ FCM์ ๊ฐ๋ ๋ฐ ์ํคํ ์ฒ๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
FCM ์ด๋?
๐ก Firebase Cloud Messaging(FCM)๋ Google Firebase ํ๋ซํผ์์ ์ ๊ณตํ๋ ๋ฉ์์ง ์๋น์ค๋ก ์๋ฒ์์ ์ฌ์ฉ์๋ค ํธ๋ํฐ์ผ๋ก ํธ์ ๋ฉ์์ง๋ฅผ ์์ ์ ์ผ๋ก ์ ๋ฌํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด์ ๋ค์ํ ํธ๋ํฐ๊ธฐ๊ธฐ์ ์ฌ์ฉ์์ ๋ง์ถฐ์ ์ค์๊ฐ ์๋ฆผ ์๋น์ค๋ฅผ ํ ์ ์์ต๋๋ค.
๐คทโ๏ธ FCM์ ์ฃผ์๊ธฐ๋ฅ?
FCM ๊ธฐ์ ์ ์ฃผ์ ๊ธฐ๋ฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ค์ํ ํธ์ ์๋ฆผ ํ์: ๋จ์ ํ ์คํธ, ์ด๋ฏธ์ง, ์ก์ ๋ฒํผ ๋ฑ ๋ค์ํ ํ์์ ํธ์ ์๋ฆผ์ ์ง์ํ์ฌ ์๋ฆผ์ ๊ฐ์์ฑ๊ณผ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค.
- ๋์ ์ง์ : ์ฃผ์ (topic) ๊ตฌ๋ , ๊ธฐ๊ธฐ ๋ฑ๋ก ํ ํฐ์ ์ฌ์ฉํ์ฌ ๋ฉ์์ง๋ฅผ ํน์ ๊ทธ๋ฃน ๋๋ ๊ฐ๋ณ ๊ธฐ๊ธฐ๋ก ์ ์กํ ์ ์์ต๋๋ค.
- ๋ฐฑ๊ทธ๋ผ์ด๋ ๋ฐ์ดํฐ ๋๊ธฐํ: FCM์ ์ฌ์ฉํ๋ฉด ์ฑ์ด ๋ฐฑ๊ทธ๋ผ์ด๋์ ์๋ ๋์์๋ ๋ฐ์ดํฐ๋ฅผ ๋๊ธฐํํ๊ฑฐ๋ ์์ ์ ์ํํ ์ ์์ด ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํต๋๋ค.
FCM์ ์ฌ์ฉํด์ ํธ์ ์๋ฆผ์ ๋ณด๋ด๋ ์ด์ ?
์ฌ์ฉ์์์ธ ํธ์ ์๋ฆผ ์๋น์ค์ ๋ณด๋ด๊ธฐ ์ํด์ FCM ๋๊ตฌ๋ฅผ ํ์ฉํฉ๋๋ค.
๊ทธ๋ผ ์? FCM ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ผ๊น?
- ๊ธฐ์กด์ ios, Android, web๋ฑ์ ํ๋ซํผ์์ ํธ์ ์๋ฆผ์ ๋ณด๋ด๊ธฐ ์ํด์๋ ๊ฐ ํ๋ซํผ ํ๊ฒฝ์ ๋ง์ถฐ์ ๊ฐ๋ฐํด์ ํธ์ ์๋ฆผ์ ๋ณด๋ด์ผ ๋๋๋ฐ FCMํ์ฉํ๋ฉด ํธํ์ฑ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํฉ๋๋ค.
- FCM ๊ต์ฐจ ํ๋ซํผ ๋ฉ์์ง ์๋ฃจ์ ์ด๊ธฐ๋๋ฌธ์ ๋ค๋ฅธ ํ๋ซํผ์ ์ข ์๋์ง ์๊ณ ํธ์ ์๋ฆผ์ ์ ์กํ ์ ์์ต๋๋ค.
๐คทโ๏ธ FCM ์ํคํ ์ฒ?
FCM ๋์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์๋ฒ์์ FCM ์๋ฒ๋ก HTTP Request๋ฅผ POST ๋ฉ์๋ ๋ฐฉ์์ผ๋ก ์์ฒญ
- FCM ์๋ฒ์์ HTTP Response ์๋ต
- ios, Android, web ๊ธฐ๊ธฐ ํ๊ฒฝ์ ๋ง์ถฐ ๋ฉ์์ง ๋ณํ
- FCM ์๋ฒ์์ ์ฌ์ฉ์ ์ฑ์ผ๋ก ํธ์์๋ฆผ
- ์ฑ์์ ๋ฐ์ ์๋ฆผ์ ์ฒ๋ฆฌํ๊ณ ์๋ต
FCM ๋์ ์๋ฆฌ
์ก์ ์, FCM ๋ฐฑ์๋ ์๋ฒ, ์์ ์ 3๊ฐ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
- ์ก์ ์: ์ฃผ๋ก ์ฑ์๋ฒ, HTTP ๊ธฐ๋ฐ์ ์๋ฒ, Firebase Console GUI ๋ฑ๋ฑ, ios, Android ์ด์์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ
- FCM ๋ฐฑ์๋ ์๋ฒ: ์ค์ง์ ์ผ๋ก ์ฑ ์๋ฒ์์ ์์ฒญ์ ๋ฐ์์ ์ฒ๋ฆฌํ๋ firebase ์๋ฒ
- ์์ ์: ios, Android, web FCM ๋ฉ์ธ์ง๋ฅผ ๋ฐ๋ ์ฌ์ฉ์
FCM ์ฌ์ฉํ๊ธฐ ์ํ ์๋ฒ ํ๊ฒฝ ๊ตฌ์ฑ
FCM ๋ฐฑ์๋ ์๋ฒ์ ํต์ ์ ํ๊ธฐ์ํ ์๋ฒ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํด์ ๋ค์ 3๊ฐ์ง ๊ท์น์ ์ง์ผ์ผ ํฉ๋๋ค.
- FCM ๋ฐฑ์๋ ์๋ฒ์ ์ง์ ํ ๋ฐ์ดํฐ ์ ํ์์ ๋ง์ถฐ์ ์์ฒญ์ ๋ณด๋ด์ผํฉ๋๋ค.
- ์ง์ ๋ฐฑ์คํ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋ค์ ๋ณด๋ผ ์ ์์ด์ผ ํฉ๋๋ค.
- ์ง์ ๋ฐฑ์คํ๋? ์์ฒญ์ด ์คํจํ ๋๋ง๋ค ์ฌ์์ฒญ์ ์ง์ฐ์ํค๋ ์๊ณ ๋ฆฌ์ฆ
- ์๋ฒ ์น์ธ ์ฌ์ฉ์์ ์ธ์ฆ์ ๋ณด์ ํด๋ผ์ด์ธํธ ํธ์ ํ ํฐ์ ์์ ํ๊ฒ ์ ์ฅํด์ผํฉ๋๋ค.
- ์๋ฒ ์น์ธ ์ฌ์ฉ์์ ์ธ์ฆ ์ ๋ณด Authentication ์ ๋ณด
- ํด๋ผ์ด์ธํธ์ ๋ฑ๋ก ํ ํฐ: ๋ฉ์์ง๋ฅผ ๋ณด๋ด๊ณ ์ ํ๋ ์ฌ์ฉ์ ๋๋ฐ์ด์ค์ ์ ๋ณด
FCM ๊ณต์๋ฌธ์
https://firebase.google.com/docs/cloud-messaging/send-message?hl=ko#node.js_5โ
๐คทโ๏ธ ๋ง์ง๋ง์ผ๋ก
์ฐ๋ฆฌ๊ฐ ํธ๋ํฐ์์ ํํ ๋ฐ๋ ์๋ฆผ์๋น์ค๋ฅผ FCM ๋๊ตฌ๋ฅผ ํ์ฉํด์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.
FCM ๋๊ตฌ๋ฅผ ํ์ฉํด์ ์ฑ์ด๋ ์น์์ ์ค์ํ ์ ๋ณด๋ฅผ ๊ณ ๊ฐ๋ค์๊ฒ ๋น ๋ฅด๊ณ ์์ ํ๊ฒ ์ ๋ฌ๋ฐ์์ ์๋๋ก ๋์์ฃผ๋ ์๋น์ค๋ผ๊ณ ์๊ฐํฉ๋๋ค.
FCM ๊ฐ๋ , ๋์์๋ฆฌ, ์๋ฒํ๊ฒฝ์ ํ์ํ ๋ถ๋ถ๋ค์ ์์๋ณด๋ฉด์ ์ฒ์ ์๊ฒ๋ ๋ด์ฉ๋ ๋ง์๊ณ ๋ ์์ธํ ์ ๋ณด๋ฅผ ๊ณต์ ํ์ง๋ ์์์ง๋ง ์ค์ํ ํต์ฌ ํฌ์ธํธ๋ฅผ ์ ๋ฆฌํด๋ดค์ต๋๋ค.
์ฌ๋ฐ๋ ์ค๋์ ๋ ๋ณ ์ด์ธ ๋ณด๊ณ ๊ฐ์ธ์!
https://cometruedream.tistory.com/247
https://cometruedream.tistory.com/243
https://cometruedream.tistory.com/242
https://cometruedream.tistory.com/241
https://cometruedream.tistory.com/244
'ITstudy' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Mac] iTerm ํฐ๋ฏธ๋ Shell ๊ฐ๋ / alias ์ค์ ๋ช ๋ น์ด์ ํธ๋ฆฌํ ์ฌ์ฉ๋ฒ (28) | 2024.07.18 |
---|---|
ChatGPT AI ๊ธฐ์ ์ ํ์ฉํ๊ธฐ ์ํ ์ต์ API ํค ๋ฐ๊ธ & ์ฌ์ฉ ๋ฐฉ๋ฒ (38) | 2024.07.09 |
[NOSQL] Redis ๊ฐ๋ ๊ณผ ์ฅ์ ์ ๋ฆฌ (2) | 2024.06.07 |
ngrok ํ์ฉํด์ ์ธ๋ถ์ ๋ก์ปฌ ์๋ฒ ๊ณต๊ฐ & ํฐ๋๋ง ๋ฐฉ๋ฒ ์ ๋ฆฌ (1) | 2024.06.04 |
API Param vs Query Parameter ๊ฐ๋ ๊ณผ ์ฐจ์ด (0) | 2024.05.21 |