๐Ÿš€ Novu | ์˜คํ”ˆ์†Œ์Šค ์•Œ๋ฆผ ์ธํ”„๋ผ

๋ฐœํ–‰: (2025๋…„ 12์›” 28์ผ ์˜คํ›„ 04:22 GMT+9)
4 ๋ถ„ ์†Œ์š”
์›๋ฌธ: Dev.to

Source: Dev.to

Cover image for ๐Ÿš€ Novu | Open-Source Notification Infrastructure

๊ฐœ์š”

์•Œ๋ฆผ ์‹œ์Šคํ…œ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์€ ์‹œ๊ฐ„๋„ ๋งŽ์ด ๋“ค๊ณ  ๋ณต์žกํ•˜๋ฉฐ ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ด๋ฉ”์ผ, SMS, ํ‘ธ์‹œ ์•Œ๋ฆผ, ์ธ์•ฑ ์ธ๋ฐ•์Šค, ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ ์ด๋ฅผ ๊ฐ๊ฐ ๋”ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ์•…๋ชฝ๊ณผ๋„ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Novu๋Š” ์ด๋ฉ”์ผ, SMS, ํ‘ธ์‹œ, ์ฑ„ํŒ…, ์ธ์•ฑ ์•Œ๋ฆผ์„ ๋‹จ์ผ API๋กœ ํ†ตํ•ฉํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ์˜คํ”ˆ์†Œ์Šค ์•Œ๋ฆผ ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜์ด๋ฉฐ, ์›Œํฌํ”Œ๋กœ ์ž๋™ํ™”, ์‹ค์‹œ๊ฐ„ ์ „๋‹ฌ, ์ž„๋ฒ ๋“œ ๊ฐ€๋Šฅํ•œ UI ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ๊ธฐ๋Šฅ

  • โœ… ํ†ตํ•ฉ ์•Œ๋ฆผ API โ€“ ํ•˜๋‚˜์˜ API๋กœ ์ด๋ฉ”์ผ, SMS, ํ‘ธ์‹œ, ์ฑ„ํŒ… ๋ฐ ์ธ์•ฑ ๋ฉ”์‹œ์ง€ ์ „์†ก
  • โœ… ์ž„๋ฒ ๋“œ ๊ฐ€๋Šฅํ•œ ์•Œ๋ฆผ ์„ผํ„ฐ โ€“ ์ฝ์Œ/์ฝ์ง€ ์•Š์Œ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ธ๋ฐ•์Šค UI
  • โœ… ์›Œํฌํ”Œ๋กœ ๋ฐ ๋ผ์šฐํŒ… ์—”์ง„ โ€“ ์ฑ„๋„ ์šฐ์„ ์ˆœ์œ„, ํด๋ฐฑ ๋ฐ ์กฐ๊ฑด๋ถ€ ๋กœ์ง
  • โœ… ๋‹ค์ด์ œ์ŠคํŠธ ๋ฐ ์Šค์ผ€์ค„๋ง ์‹œ์Šคํ…œ โ€“ ์•Œ๋ฆผ์„ ๋ฐฐ์น˜ ์ฒ˜๋ฆฌํ•ด ์†Œ์Œ ๊ฐ์†Œ
  • โœ… ์‚ฌ์šฉ์ž ์„ ํ˜ธ๋„ ๊ด€๋ฆฌ โ€“ ์ฑ„๋„ ๋ฐ ๋นˆ๋„์— ๋Œ€ํ•œ ์™„์ „ํ•œ ์ œ์–ด
  • โœ… ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ โ€“ WebSocket ๊ธฐ๋ฐ˜ ์ฆ‰์‹œ ์ „๋‹ฌ
  • โœ… ์˜คํ”ˆ์†Œ์Šค ๋ฐ ์ž์ฒด ํ˜ธ์ŠคํŒ… ๊ฐ€๋Šฅ โ€“ MIT ๋ผ์ด์„ ์Šค, ์–ด๋””์„œ๋“  ๋ฐฐํฌ ๊ฐ€๋Šฅ

๊ธฐ์ˆ  ์Šคํƒ ๋ฐ ์•„ํ‚คํ…์ฒ˜

๋ฐฑ์—”๋“œ

  • ๐Ÿ’ป Node.js + TypeScript โ€“ ํ•ต์‹ฌ ๋ฐฑ์—”๋“œ
  • ๐Ÿงฉ Express / NestJS โ€“ API ํ”„๋ ˆ์ž„์›Œํฌ
  • ๐Ÿ“ฆ MongoDB โ€“ ์•Œ๋ฆผ ์ €์žฅ์†Œ
  • โšก Redis + BullMQ โ€“ ํ ๋ฐ ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…
  • ๐Ÿ”Œ WebSocket / Socket.io โ€“ ์‹ค์‹œ๊ฐ„ ์ „๋‹ฌ
  • ๐Ÿ“จ Handlebars โ€“ ์ด๋ฉ”์ผ ํ…œํ”Œ๋ฆฟ ์—”์ง„

ํ”„๋ก ํŠธ์—”๋“œ

  • ๐ŸŽจ React โ€“ ๋Œ€์‹œ๋ณด๋“œ ๋ฐ ์ธ๋ฐ•์Šค UI
  • ๐Ÿ’  Tailwind CSS / CSS Modules โ€“ ์Šคํƒ€์ผ๋ง
  • ๐Ÿ“˜ Storybook โ€“ UI ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ

DevOps ๋ฐ ์ธํ”„๋ผ

  • ๐Ÿณ Docker & Docker Compose
  • ๐Ÿ” CI/CD ํŒŒ์ดํ”„๋ผ์ธ
  • ๐ŸŒ REST + WebSocket ์•„ํ‚คํ…์ฒ˜

์ง€์›๋˜๋Š” ์ œ๊ณต์ž ํ†ตํ•ฉ

  • ์ด๋ฉ”์ผ: SendGrid, Mailgun, AWS SES, Postmark, SMTP
  • SMS: Twilio, Vonage, Plivo, SNS
  • ํ‘ธ์‹œ: Firebase Cloud Messaging, Expo, APNS, Pushpad
  • ์ฑ„ํŒ…: Slack, Discord, Microsoft Teams

Novu๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

  • ๐Ÿ”น ์ค‘๋ณต๋œ ์•Œ๋ฆผ ๋กœ์ง ์ œ๊ฑฐ
  • ๐Ÿ”น ์ฑ„๋„ ๊ฐ„ ์›Œํฌํ”Œ๋กœ ํ‘œ์ค€ํ™”
  • ๐Ÿ”น ๊ฐœ๋ฐœ ์‹œ๊ฐ„ ๋Œ€ํญ ์ ˆ๊ฐ
  • ๐Ÿ”น ์•Œ๋ฆผ์„ ์•ˆ์ •์ ์œผ๋กœ ํ™•์žฅ
  • ๐Ÿ”น ์ค€๋น„๋œ UI ์ปดํฌ๋„ŒํŠธ ํ™œ์šฉ

GitHub ์ €์žฅ์†Œ ๋ฐ ๋ฌธ์„œ

https://reactjsguru.com/repos/mastering-modern-notification-systems-with-novu?utm_source=devto&utm_medium=social&utm_campaign=repo_post (maintained by NovuHQ)

๐Ÿ’ฌ ์—ฌ๋Ÿฌ๋ถ„์€ ์ง์ ‘ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ, ์•„๋‹ˆ๋ฉด Novu์™€ ๊ฐ™์€ ์˜คํ”ˆ์†Œ์Šค ์ธํ”„๋ผ์ŠคํŠธ๋Ÿญ์ฒ˜๋ฅผ ํ™œ์šฉํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ์˜๊ฒฌ์„ ๋‚˜๋ˆ ๋ณด์„ธ์š”!

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

[FREE TOOL] ๐Ÿป Digibear Icons โ€” manifest ๊ธฐ๋ฐ˜, ํฌ๋กœ์Šค ํ”Œ๋žซํผ ์•„์ด์ฝ˜ ์‹œ์Šคํ…œ

์—ฌ๋Ÿฌ๋ถ„, ์•ˆ๋…•ํ•˜์„ธ์š” ๐Ÿ‘‹ ์ €๋Š” ๋ฐฉ๊ธˆ Digibear Icons๋ฅผ ๊ณต๊ฐœํ–ˆ์Šต๋‹ˆ๋‹ค โ€” ๋ฌด๋ฃŒ manifestโ€‘based, crossโ€‘platform ์•„์ด์ฝ˜ ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋‹จ์ˆœํžˆ ๋˜ ๋‹ค๋ฅธ ์•„์ด์ฝ˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ฐœ๋…์€ ๋งค์šฐโ€ฆ

์˜คํ”ˆ์†Œ์Šค๋Š” ํ•ดํฌํ† ๋ฒ„ํŽ˜์ŠคํŠธ๋งŒ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค

Hacktoberfest โ€” 10์›”์ด ์ง€๋‚˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ๋งค๋…„ 10์›”๋งˆ๋‹ค ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” Hacktoberfest ์—๋„ˆ์ง€๋กœ ํ™œ๊ธฐ๋ฅผ ๋ฑ๋‹ˆ๋‹ค. PR์ด ์Ÿ์•„์ง€๊ณ , ํ‹ฐ์…”์ธ ๋ฅผ ํš๋“ํ•˜๋ฉฐ, GitHub โ€ฆ