๐Ÿ“’ Today I Learn/๐Ÿ˜Š My SQL

SQL Challenge ์„ธ์…˜ #4 ๋ฆฌํ…์…˜, ์ฝ”ํ˜ธํŠธ ๋ถ„์„

ny:D 2024. 5. 30. 21:18

240530 Today I Learn

๋ฆฌํ…์…˜์ด๋ž€?

๐Ÿ’ก ๋ฆฌํ…์…˜(Retention)
์‹œ๊ฐ„์ด ์ง€๋‚ ์ˆ˜๋ก ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์œ ์ €๊ฐ€ ์ œํ’ˆ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„์˜ค๋Š”์ง€๋ฅผ ์ธก์ •ํ•œ ๊ฒƒ

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

๋ฆฌํ…์…˜์˜ ์ข…๋ฅ˜

1. ํด๋ž˜์‹ ๋ฆฌํ…์…˜ (Classic / N-Day)
๊ณ ๊ฐ์ด A ํ–‰๋™์„ ์ฒ˜์Œ ํ•œ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ, ๋ช‡์ผ์ฐจ์— ๋‹ค์‹œ A ํ–‰๋™์„ ํ–ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ„.
  • ํŽ˜์ด์Šค๋ถ, ์ธ์Šคํƒ€๊ทธ๋žจ, ์œ ํŠœ๋ธŒ, ํ‹ฑํ†ก, ์Šต๊ด€ ์•ฑ ๋“ฑ ๋งค์ผ๋งค์ผ ์ ‘์†ํ•˜๋Š” ์„œ๋น„์Šค์—์„œ ์‚ฌ์šฉ
  • ํ•˜๋ฃจ ๋‹จ์œ„๋กœ ์ง‘๊ณ„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค๋ณด๋‹ˆ, ์„ค๋ช…๊ณผ ๊ณ„์‚ฐ์ด ๊ฐ„๋‹จํ•จ.
๐Ÿงฎ ํด๋ž˜์‹ ๋ฆฌํ…์…˜ ๊ณ„์‚ฐํ•˜๊ธฐ
Day N์— ๋‹ค์‹œ A ํ–‰๋™์„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋žŒ / ๊ธฐ์ค€ ๋‚ ์งœ Day 0์— A ํ–‰๋™์„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋žŒ

๋ฌธ์ œ 1 | ์œ ์ €๋“ค์˜ Day 1 ์— ๋Œ€ํ•œ ํด๋ž˜์‹ ๋ฆฌํ…์…˜์œจ์„ ๊ณ„์‚ฐํ•ด์ฃผ์„ธ์š”.

  • ์„ ์žฌ, ์†”, ํƒœ์„ฑ, ์ธํ˜, ํ˜„์ฃผ 5๋ช…์˜ ์‹œ์ฒญ์ž ์ค‘, Day1์— '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ•œ ๊ฒƒ์€ ์„ ์žฌ, ํƒœ์„ฑ, ํ˜„์ฃผ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    → 3/5 = 0.6 = 60%

๋ฌธ์ œ 2 | ์œ ์ €๋“ค์˜ Day 7 ์— ๋Œ€ํ•œ ํด๋ž˜์‹ ๋ฆฌํ…์…˜์œจ์„ ๊ณ„์‚ฐํ•ด์ฃผ์„ธ์š”.

  • ์„ ์žฌ, ์†”, ํƒœ์„ฑ, ์ธํ˜, ํ˜„์ฃผ 5๋ช…์˜ ์‹œ์ฒญ์ž ์ค‘, Day7์— '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ•œ ๊ฒƒ์€ ์„ ์žฌ์™€ ์ธํ˜ 2๋ช… ์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
    → 2/5 = 0.4 = 40%

๐Ÿง ํด๋ž˜์‹ ๋ฆฌํ…์…˜์˜ ๋ฌธ์ œ์ 

  • ํŠน์ •์ผ ๋…ธ์ด์ฆˆ์— ๋ฏผ๊ฐํ•˜๋‹ค.
    → ์œ„์˜ ์‚ฌ๋ก€์—์„œ ํ˜„์ฃผ์˜ ๊ฒฝ์šฐ 8์ผ์ค‘ ์ด 7์ผ '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ–ˆ์œผ๋‚˜ Day7๋ฆฌํ…์…˜์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์•˜๋‹ค. ๋”ฐ๋ผ์„œ Day7์˜ ๊ธฐ์ค€์œผ๋กœ ๋ณด์•˜์„ ๋•Œ ์—ดํ˜ˆ ์‹œ์ฒญ์ž์ธ ํ˜„์ฃผ๋Š” ์ดํƒˆ ์‹œ์ฒญ์ž๊ฐ€ ๋˜์–ด๋ฒ„๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. 

 

2. ๋ฒ”์œ„ ๋ฆฌํ…์…˜ (Bracket / Range/ Bounded)
๊ธฐ๊ฐ„ ๋‚ด ํ•œ๋ฒˆ์ด๋ผ๋„ ๋‹ค์‹œ ํ–‰๋™ A๋ฅผ ํ•˜๋ฉด ๋ฆฌํ…์…˜์œผ๋กœ ๊ฐ„์ฃผ.
  • ํ•œ๋ช…์˜ ์œ ์ €๊ฐ€ ์—ฌ๋Ÿฌ๋ฒˆ ํ•ด๋‹น ํ–‰๋™์„ ํ•˜๋”๋ผ๋„ ๊ณ ์œ  ์œ ์ €๋‹น 1ํšŒ๋กœ ๊ฐ„์ฃผ.
  • ๊ฐ€๊ณ„๋ถ€, ์„ธ์ฐจ, ์ด์‚ฌ, ์‹๋ฃŒํ’ˆ ๋ฐฐ๋‹ฌ ๋“ฑ ์ผ์ • ๊ฐ„๊ฒฉ์˜ ์ฃผ๊ธฐ๊ฐ€ ์˜๋ฏธ์žˆ๋Š” ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ๋ฒ”์œ„ ๋ฆฌํ…์…˜์„ ์ด์šฉ

๐Ÿงฎ ๋ฒ”์œ„ ๋ฆฌํ…์…˜ ๊ณ„์‚ฐํ•˜๊ธฐ
ํ•ด๋‹น ๊ธฐ๊ฐ„ ๋‚ด ํ•œ๋ฒˆ์ด๋ผ๋„ A ํ–‰๋™์„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋žŒ / ์ฒซ ๋ฐฉ๋ฌธํ•œ ์‚ฌ๋žŒ

 

๋ฌธ์ œ 3 | Range 1 : Day 0 (์ฒ˜์Œ TIL์„ ์ž‘์„ฑ ์™„๋ฃŒํ•œ ๋‚ ) , Range 2 : Day 1~7, Range 3 : Day 8~14  ๋กœ Range(๋ฒ”์œ„)๋ฅผ ์ง€์ •ํ•˜์—ฌ ๋ฆฌํ…์…˜์œจ์„ ๊ตฌํ•ด์ฃผ์„ธ์š”.

  • Range 1์˜ ๋ฆฌํ…์…˜ : 5/5 = 100%
  • Range 2์˜ ๋ฆฌํ…์…˜ : 4/5 = 80%
    • ์ธํ˜์ด๋Š” Range2์— ํ•œ๋ฒˆ๋„ '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ•˜์ง€ ์•Š์•˜๋‹ค.
    • ๋‚˜๋จธ์ง€ ๋„ค ์นœ๊ตฌ๋Š” range2์— ์ ์–ด๋„ ํ•œ๋ฒˆ '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ–ˆ๋‹ค.
  • Range 3์˜ ๋ฆฌํ…์…˜ : 3/5 = 60%
    • ์ธํ˜์ด์™€ ํƒœ์„ฑ์ด๋Š” Range3์— ํ•œ๋ฒˆ๋„ '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ•˜์ง€ ์•Š์•˜๋‹ค.
    • ๋‚˜๋จธ์ง€ ์„ธ์นœ๊ตฌ๋Š” range3์— ์ ์–ด๋„ ํ•œ๋ฒˆ ์ด์ƒ '์„ ์žฌ์—…๊ณ ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ–ˆ๋‹ค.

๐Ÿง ๋ฒ”์œ„ ๋ฆฌํ…์…˜์˜ ๋ฌธ์ œ์ 

  • Range๊ฐ€ ๊ธธ์–ด์งˆ์ˆ˜๋ก ๊ณผ๋‹ค ๊ณ„์‚ฐ(over-estimate)์ด ๋  ์ˆ˜ ์žˆ์Œ.
  • ๊ธฐ๊ฐ„ ๋‹จ์œ„๋กœ ์ง€ํ‘œ๋ฅผ ํ™•์ธํ•˜๋‹ค ๋ณด๋‹ˆ, ์˜๋ฏธ์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฝค ์˜ค๋žœ ์‹œ๊ฐ„์ด ํ•„์š”ํ•จ.
3. ๋กค๋ง ๋ฆฌํ…์…˜ (Rolling / On or After / Unbounded)
Aํ–‰๋™์„ ํ•œ๋ฒˆ์ด๋ผ๋„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋žŒ ์ค‘ Day N ์ดํ›„์—๋„ ๋‚จ์•„์žˆ๋Š” ์‚ฌ์šฉ์ž
  •  first_date, last_date ๋งŒ ์žˆ์œผ๋ฉด ๋˜๊ธฐ์— ๊ณ„์‚ฐ์ด ๊ฐ„๋‹จ
  • ์—ฌํ–‰, ์ฐจ๋Ÿ‰ ๊ตฌ๋งค, ์‚ฌ๋ฌด์‹ค ์ž„๋Œ€ ๋“ฑ ์ •๊ธฐ์ ์œผ๋กœ ์ œํ’ˆ, ์„œ๋น„์Šค์— ๋Œ์•„์˜ฌ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜์ง€ ์•Š๋Š” ์œ ํ˜•์˜ ์„œ๋น„์Šค
๐Ÿงฎ ๋กค๋ง ๋ฆฌํ…์…˜ ๊ณ„์‚ฐํ•˜๊ธฐ
(Day 0 ์ฒซ A ํ–‰๋™์„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋žŒ - Day N ์ดํ›„ ์ดํƒˆํ•œ ์‚ฌ์šฉ์ž) / Day 0 ์ฒซ A ํ–‰๋™์„ ์ˆ˜ํ–‰ํ•œ ์‚ฌ๋žŒ

๋ฌธ์ œ 4 | Day 4์˜ Unbounded ๋ฆฌํ…์…˜์œจ 

  • Day 0์— '์„ ์žฌ์—…๊ณ  ํŠ€์–ด'๋ฅผ ์‹œ์ฒญํ•œ ์„ ์žฌ, ํƒœ์„ฑ, ์ธํ˜, ์†”, ํ˜„์ฃผ ๋‹ค์„ฏ๋ช… ์ค‘
  • Day4 ์ดํ›„ ์ดํƒˆํ•œ ์‚ฌ์šฉ์ž(Day4 ์ดํ›„ ํ•œ๋ฒˆ๋„ ์‹œ์ฒญํ•˜์ง€ ์•Š์€ ์‹œ์ฒญ์ž)๋Š” ํ˜„์ฃผ ํ•œ ๋ช…์ด๋‹ค.
  • ๋”ฐ๋ผ์„œ Day4์˜ ๋ฆฌํ…์…˜์œจ์€ 4/5 = 80%์ด๋‹ค.

๐Ÿง ๋กค๋ง ๋ฆฌํ…์…˜์˜ ๋ฌธ์ œ์ 

  • ์–ธ์ œ๋“  ๋Œ์•„์˜ค๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฆฌํ…์…˜ ์œ ์ €๋กœ ๊ฐ„์ฃผํ•˜๊ธฐ์—, ์ „๋ฐ˜์ ์œผ๋กœ ๊ณผ๋‹ค ๊ณ„์‚ฐ(over-estimate)๋˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Œ.

์ฝ”ํ˜ธํŠธ(Cohort) ๋ถ„์„

๋™์งˆ์ง‘๋‹จ(์ฝ”ํ˜ธํŠธ)๊ฐ€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ

๐Ÿ’ก ์ฝ”ํ˜ธํŠธ(Cohort)
๊ณตํ†ต์ ์ธ ํŠน์„ฑ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์˜ ์ง‘๋‹จ
→ ์ฃผ๋กœ ๊ฐ™์€ ์‹œ๊ธฐ์— ๊ฐ€์ž…ํ•œ ์‚ฌ์šฉ์ž๋“ค (์ฝ”ํ˜ธํŠธ ๋ฆฌํ…์…˜์—์„œ ์ฝ”ํ˜ธํŠธ์˜ ์˜๋ฏธ)

์ฝ”ํ˜ธํŠธ ๋ฆฌํ…์…˜

์ถœ์ฒ˜ : ์š”์ฆ˜ IT ๊น€๋ฏผ์šฐ๋‹˜

ํŠน์ • ์œ ์ €๋“ค์ด ์‹œ๊ฐ„์ด ๊ฒฝ๊ณผํ•จ์— ๋”ฐ๋ผ ์œ ์ง€๋˜๋Š” ๋น„์œจ

  • ํŠน์ • ์ง‘๋‹จ์˜ ๋ฆฌํ…์…˜์ด ์‹œ๊ฐ„์— ๋”ฐ๋ผ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๋Š”์ง€ ์˜ˆ์ธก
  • ๋ฌธ์ œ ๋ฐœ์ƒ์‹œ ์ด์˜ ์›์ธ์„ ์ฐพ๊ณ  ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Œ