ํ”ผ๋“œ๋กœ ๋Œ์•„๊ฐ€๊ธฐ
How Slack Rebuilt Notifications ๐Ÿ“ฃ
Slack EngineeringSlack Engineering
Backend

How Slack Rebuilt Notifications ๐Ÿ“ฃ

Slack์ด 4๊ฐ€์ง€ ์ƒ์ถฉํ•˜๋Š” ์•Œ๋ฆผ ์„ค์ • ๋ชจ๋ธ์„ ๋‹จ์ผ ํ†ตํ•ฉ ๋ชจ๋ธ๋กœ ์žฌ์„ค๊ณ„ํ•ด ์„ค์ • engagement 5๋ฐฐ ์ฆ๊ฐ€

Frances Coronel2026๋…„ 3์›” 19์ผ12๋ถ„intermediate

Context

Slack์˜ ๋ ˆ๊ฑฐ์‹œ ์•Œ๋ฆผ ์‹œ์Šคํ…œ์€ ์ˆ˜๋…„๊ฐ„ ๋ณต์žก์„ฑ์ด ์ถ•์ ๋˜์–ด 4๊ฐ€์ง€ ์ƒ์ถฉํ•˜๋Š” mental model์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๋‹ค. ๋ฐ์Šคํฌํ†ฑ๊ณผ ๋ชจ๋ฐ”์ผ์ด ์„œ๋กœ ๋‹ค๋ฅธ ์„ค์ • ์˜ต์…˜๊ณผ ๋™์ž‘์„ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ๊ณ , ์„ค์ •์ด ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ์ผ๊ด€๋˜๊ฒŒ ๋™๊ธฐํ™”๋˜์ง€ ์•Š์•„ ์‚ฌ์šฉ์ž๊ฐ€ ์•Œ๋ฆผ ๋™์ž‘์„ ์˜ˆ์ธกํ•  ์ˆ˜ ์—†์—ˆ๋‹ค. ์•Œ๋ฆผ ๊ด€๋ จ ๊ณ ๊ฐ ์ง€์› ์š”์ฒญ์ด ์ƒ์œ„ 3๊ฐœ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์˜€์œผ๋ฉฐ, ์‚ฌ์šฉ์ž๋“ค์€ ์„ค์ •์„ ์ดํ•ดํ•˜๊ฑฐ๋‚˜ ์ œ์–ดํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ๋ฅด๊ณ  ์žˆ์—ˆ๋‹ค.

Technical Solution

  • 4๊ฐ€์ง€ preference ์‹œ์Šคํ…œ์„ ๋‹จ์ผ ํ†ตํ•ฉ ๋ชจ๋ธ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜: "All new posts", "Mentions", "Mute" 3๊ฐ€์ง€ ๋ช…ํ™•ํ•œ ์„ ํƒ์ง€๋กœ ํ†ตํ•ฉ
  • Read-time ์ „๋žต์„ ํ™œ์šฉํ•œ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ ์œ ์ง€: ๊ธฐ์กด "Off" ์„ค์ •์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ˆ˜์ • ์—†์ด "Mentions + push disabled"๋กœ ๋™์ž‘ํ•˜๋„๋ก ๋ณ€ํ™˜
  • ์ƒˆ๋กœ์šด "desktop_push_enabled" preference ๋„์ž…: push ์•Œ๋ฆผ ํ™œ์„ฑํ™”๋ฅผ ์ œ์–ดํ•˜๋Š” ์œ ์ผํ•œ ๋“œ๋ผ์ด๋ฒ„๋กœ ์ž‘๋™
  • "What"๊ณผ "How" ๋ถ„๋ฆฌ: in-app ์•Œ๋ฆผ์€ ๋ชจ๋“  ํด๋ผ์ด์–ธํŠธ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ , push ์•Œ๋ฆผ์€ ํ”Œ๋žซํผ๋ณ„๋กœ ๋…๋ฆฝ์ ์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅํ•˜๋„๋ก ์žฌ์„ค๊ณ„
  • Cross-platform ๋™๊ธฐํ™” ๊ฐœ์„ : ๋‹จ์ˆœํ™”๋œ preference ๋กœ์ง์œผ๋กœ ๋ชจ๋ฐ”์ผ๊ณผ ๋ฐ์Šคํฌํ†ฑ ๊ฐ„ ์ƒํƒœ ์ผ๊ด€์„ฑ ๋‹ฌ์„ฑ

Impact

  • Settings engagement 5๋ฐฐ ์ฆ๊ฐ€ (์ถœ์‹œ ํ›„ ๋ช‡ ์ฃผ ๋™์•ˆ ์ง€์†)
  • Push notification toggle ๋„์ž… ํ›„ ์‚ฌ์šฉ์ž engagement ์ƒ์Šน
  • "Badge every unread message" ๊ฐ™์€ ๊ณ ๊ธ‰ visibility ์˜ต์…˜ significant engagement ๋‹ฌ์„ฑ
  • Per-channel override๊ฐ€ ํ•„์š”ํ•œ ์‚ฌ์šฉ์ž ๋น„์œจ ๊ฐ์†Œ
  • Notification settings engagement๊ฐ€ ์ถœ์‹œ ํ›„ ๋ช‡ ์ฃผ ์ง€์†๋˜๋ฉฐ ํ•œ ๋ฒˆ์˜ spike๊ฐ€ ์•„๋‹Œ ์ง€์†์  engagement ์œ ์ง€

Key Takeaway

Legacy ์‹œ์Šคํ…œ์„ ๋ถ€๋ถ„์ ์œผ๋กœ ํŒจ์น˜ํ•˜์ง€ ์•Š๊ณ  ๊ทผ๋ณธ์ ์œผ๋กœ ์žฌ์„ค๊ณ„ํ•  ๋•Œ ์‚ฌ์šฉ์ž์˜ mental model๊ณผ ์‹œ์Šคํ…œ ๋ชจ๋ธ์„ ์ •๋ ฌํ•˜๋ฉด, ๊ธฐ์ˆ ์  ๋‹จ์ˆœํ™”๊ฐ€ ์ˆ˜๋ฐฑ๋งŒ ์‚ฌ์šฉ์ž์˜ ์ •์„œ์  ์•ˆ์ •๊ฐ์œผ๋กœ ์ง๊ฒฐ๋œ๋‹ค. Cross-functional ํŒ€์˜ ๊ธด๋ฐ€ํ•œ ํ˜‘์—…๊ณผ ์†๋„๋ณด๋‹ค ๋ช…ํ™•์„ฑ์„ ์šฐ์„ ์‹œํ•˜๋Š” ์ผ๊ด€๋œ ์ •๋ ฌ์ด ์ด๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•œ๋‹ค.


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

์›๋ฌธ ์ฝ๊ธฐ