Skip to content

Latest commit

ย 

History

History
66 lines (41 loc) ยท 14.5 KB

File metadata and controls

66 lines (41 loc) ยท 14.5 KB

postgresql-plotly

sql ํ•™์Šต์„ ์ตœ๊ทผ์— ๋„ˆ๋ฌด ํ•˜์ง€ ์•Š์€ํƒ“์— ๋Œ€๋ถ€๋ถ„ ์žŠ์–ด๋ฒ„๋ฆฐ ๊ฒƒ ๊ฐ™์•„ ์ด๋ฒˆ์—๋Š” postgresql์„ ์ด์šฉํ•ด๋ณด๊ธฐ๋กœ ํ•˜์˜€๋‹ค. ์ด์ „์—๋Š” oracle์ด๋‚˜ pyspark๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•ด๋ณด์•˜์ง€๋งŒ ์ด๋ฒˆ์—๋Š” postgresql์„ jupyter notebook๊ณผ ์—ฐ๋™ํ•˜์—ฌ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ๋กœ ํ•œ๋‹ค. ์‹œ๊ฐํ™”๋Š” ์ด์ „์— ์‚ฌ์šฉํ•˜์˜€๋˜ plotly๋ฅผ ๋ณต์Šต๊ฒธ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•œ๋‹ค.

์‚ฌ์‹ค ์ด์ „์— ์‚ฌ์šฉํ•˜์˜€๋˜ pyspark๋„ ๋ณต์Šต๊ฒธ ์‚ฌ์šฉํ•ด๋ณด๊ณ  ์‹ถ์—ˆ์œผ๋‚˜, postgresql๊ณผ pyspark์—ฐ๋™์ด ๊ณ„์† ์˜ค๋ฅ˜๋•Œ๋ฌธ์— ๋˜์ง€ ์•Š๋Š”๋‹ค. ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์…‹์€ North-Wind ์ƒ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ์…‹๊ณผ ๊ตฌ๊ธ€ ์•„๋‚ ๋ฆฌํ‹ฑ์Šค ์„ธ์…˜ ๋กœ๊ทธ ๋ฐ์ดํ„ฐ์…‹์ด๋‹ค. ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ๋ถ„์„์—๋„ ๋งˆ์นจ ํฅ๋ฏธ๊ฐ€ ์žˆ์—ˆ๊ธฐ์— (๋น…์ฝ˜ํ…Œ์ŠคํŠธ ํ•€๋‹ค ๋ฐ์ดํ„ฐ ๋ถ„์„๋Œ€ํšŒ๋•Œ ๋กœ๊ทธ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘ํ•ด๋ณธ ์ ์ด ์žˆ์ง€๋งŒ, ์ผ์ • ์ˆ˜๋งŒํผ์˜ ๋ฐ์ดํ„ฐ๋งŒ์ด ์ œ๊ณต๋˜์–ด ์žˆ์–ด ๋ถ„์„ ๋ชจ๋ธ์— ๋„ฃ๊ธฐ๋Š” ๋ถ€์ ํ•ฉํ•˜๋‹ค๋Š” ํŒ๋‹จํ•˜์— ๋‹จ์ˆœ ์ฐธ๊ณ ์šฉ์œผ๋กœ๋งŒ ์‚ดํŽด๋ณธ ๊ธฐ์–ต์ด ์žˆ๋‹ค.)

  • postgresql๋งŒ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋‹ˆ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต์„ ํ•  ๋•Œ ๋ง‰ํžˆ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข€ ์žˆ์—ˆ๋‹ค... ์•„๋ฌด๋ž˜๋„ postgresql์—๋งŒ ์žˆ๋Š” ํ•จ์ˆ˜๊ฐ€ ๊ฝค๋‚˜ ํŽธ์˜์„ฑ์ด ๋†’์•„์„œ ์ต์ˆ™ํ•ด์ง„ ํƒ“ ์ธ๊ฒƒ ๊ฐ™๋‹ค.

ํ•™์Šต ๋กœ๊ทธ

  • ๊ฐ€์ค‘์ด๋™ํ‰๊ท  (WMA)๋ฅผ ๊ตฌํ•˜๋Š”๊ฒƒ์— ์ƒ๋‹นํžˆ ์• ๋ฅผ ๋จน์—ˆ๋‹ค. ์›”๋ณ„์ด๋‚˜ ์ผ๋ณ„ ๋งค์ถœ์„ ๊ตฌํ•œ ๋’ค ๋‹จ์ˆœ ์ด๋™ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ์‰ฌ์› ์œผ๋‚˜, ๋” ๊ฐ€๊นŒ์šด ์ผ์ž์— ๋” ํฐ ๊ฐ€์ค‘์น˜๋ฅผ ์ฃผ๋Š” ๊ฐ€์ค‘์ด๋™ํ‰๊ท ์€ sql๋งŒ์œผ๋กœ ํ•˜๊ธฐ์—๋Š” ๊ต‰์žฅํžˆ ๋ฒˆ๊ฑฐ๋กœ์› ๋‹ค. (๋งค์ถœ ํ…Œ์ด๋ธ”์„ ์›ํ•˜๋Š” ๊ธฐ๊ฐ„๋งŒํผ ์ถ”์ถœํ•˜๊ธฐ ์œ„ํ•œ ์…€ํ”„์กฐ์ธ, ๊ทธ ๊ธฐ๊ฐ„๋“ค์— ๊ฐ€์ค‘์น˜๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ case when ๋“ฑ) ๊ทธ๋ž˜์„œ ์›”๋ณ„๋งค์ถœ ํ…Œ์ด๋ธ”์„ pandas์™€ ์—ฐ๋™ ํ›„ ๊ฐ€์ค‘ ์ด๋™ํ‰๊ท ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜์ง€๋งŒ, ๋œ ๋ณต์žกํ•˜๊ธด ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ๋ฒˆ๊ฑฐ๋กœ์› ๋‹ค. (rolling์„ ํ†ตํ•ด ๊ธฐ๊ฐ„๋งŒํผ ์ถ”์ถœ๋’ค apply๋ฅผ ํ†ตํ•ด weight ๋ถ€์—ฌ)

  • fanchart๋ผ๊ณ  ํ•˜๋Š” ๊ทธ๋ž˜ํ”„๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋˜ ์ค‘, first_value() ๋ผ๋Š” ํ•จ์ˆ˜๋ฅผ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ๊ทธ๋™์•ˆ ๊ทธ๋ฃน๋ณ„๋กœ ์ฒ˜์Œ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด row_number์„ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ  1์ธ๊ฐ’์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์‹์œผ๋กœ ์ž‘์„ฑ์„ ํ•ด์™”์—ˆ๋Š”๋ฐ, first_value์— ๊ธฐ์กด ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋“ฏ์ด ํŒŒํ‹ฐ์…˜๋ณ„๋กœ ๋‚˜๋ˆ„๋ฉด ๋ฐ”๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑธ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

  • ๋ณดํ†ต ํ”ผ๋ฒ—ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋ฐ์ดํ„ฐ๋ฅผ ๋ถˆ๋Ÿฌ์˜จ ๋’ค ํŒŒ์ด์ฌ์˜ ํŒ๋‹ค์Šค์—์„œ group by๋‚˜ pivot_table์„ ํ†ตํ•˜์—ฌ ๋งŒ๋“ค์–ด ์™”์—ˆ๋Š”๋ฐ, ๋ฌธ๋“ sql์„ ์ด์šฉํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋Š”์ง€ ๊ถ๊ธˆํ•ด์ ธ์„œ ์•Œ์•„๋ณด์•˜๋‹ค. group by๋ฅผ ํ•œ ๋’ค์— ์ง‘๊ณ„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ case when์„ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ์ด์˜€๋‹ค. (์—ฌ์ „ํžˆ ํŒŒ์ด์ฌ์ด ๋” ํŽธํ•˜๋‹ค)

  • sql ํ•™์Šต์„ ๋งˆ์น˜๊ณ  ๊ณต๋ถ€ํ•  ์˜ˆ์ •์ธ ์ถ”์ฒœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ผ๋ถ€๋ถ„์„ sql๋กœ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค. ์–ด๋–ค ํŠน์ •ํ•œ ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ–ˆ์„ ๋•Œ ๊ฐ™์ด ์ฃผ๋ฌธ๋œ ์ƒํ’ˆ๋“ค์ค‘ ๋นˆ๋„์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์ œํ’ˆ์„ ๊ณจ๋ผ๋‚ด๋Š” ์ฟผ๋ฆฌ์™€, ํŠน์ • ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ–ˆ์„ ๋•Œ ๊ทธ ์œ ์ €๊ฐ€ ๊ฐ™์ด ์ฃผ๋ฌธํ–ˆ๋˜ ์ œํ’ˆ๋“ค์ค‘ ๋นˆ๋„์ˆ˜๊ฐ€ ๊ฐ€์žฅ ๋งŽ์€ ์ œํ’ˆ์„ ๊ณจ๋ผ๋‚ด๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

  • RFM ๋ถ„์„์— ๋Œ€ํ•˜์—ฌ ํ•™์Šต์„ ํ•˜์˜€๋‹ค. RFM ๋ถ„์„์€ ๊ณ ๊ฐ์ด ์–ผ๋งˆ๋‚˜ ์ตœ๊ทผ์— (Recency), ์–ผ๋งˆ๋‚˜ ์ž์ฃผ (Frequency), ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ๊ธˆ์•ก (Monetary)๋ฅผ ์‚ฌ์šฉํ–ˆ๋Š”์ง€์— ๋”ฐ๋ผ ๊ณ ๊ฐ์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ธฐ๋ฒ•์œผ๋กœ, ์ด์ „์— ์˜คํผ๋ ˆ์ด์…˜์Šค ๋งค๋‹ˆ์ง€๋จผํŠธ๋ผ๋Š” ๊ฒฝ์˜ํ•™๊ณผ ๊ณผ๋ชฉ์„ ์ˆ˜๊ฐ•ํ–ˆ์„ ๋•Œ ๋ฐฐ์šด์ ์ด ์žˆ๋˜ ๋‚ด์šฉ์ด์˜€๋‹ค. ์ด ๊ณผ๋ชฉ์—์„œ ๋ฐฐ์› ๋˜ ๋‚ด์šฉ์œผ๋กœ๋Š” ๊ธฐ์—…์—์„œ ์‹ ๊ทœ ์†Œ๋น„์ž๋ฅผ ๋Œ์–ด๋“ค์ด๋Š”๋ฐ ํ•„์š”ํ•œ ๋น„์šฉ์€ ๊ธฐ์กด ๊ณ ๊ฐ๋“ค์„ ์œ ์ง€ํ•˜๋Š” ๋น„์šฉ๋ณด๋‹ค ๋งค์šฐ ๋งŽ์€ ๋น„์šฉ์ด ์†Œ๋ชจ๋˜๋ฏ€๋กœ ๊ธฐ์กด ๊ณ ๊ฐ๋“ค์„ ์œ ์ง€์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋ฐฐ์› ์—ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ RFM๋ถ„์„์„ ํ†ตํ•˜์—ฌ ์ด์ „์—๋Š” ์ž์ฃผ ๋†’์€ ๊ธˆ์•ก์œผ๋กœ ์ฃผ๋ฌธํ•œ ๊ณ ๊ฐ๋“ค์„ ์ฐพ์•„๋‚ด์–ด ํ˜œํƒ๊ฐ™์€ ๊ฒƒ์„ ์คŒ์œผ๋กœ์จ ๋‹ค์‹œ ์ด ๊ธฐ์—…์˜ ์†Œ๋น„์ž๋กœ ๋Œ์•„์˜ค๊ฒŒ ํ•œ๋‹ค๋˜์ง€ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์ฃผ๋ฌธ์œผ๋กœ๋ถ€ํ„ฐ ๋ฉฐ์น ์ด ์ง€๋‚ฌ๋Š”์ง€ ๊ตฌํ•œ ๋’ค์—, ์ด ๋‚ ์งœ๋“ค์„ 5๋ถ„์œ„๋กœ ๋‚˜๋ˆ„์–ด frequency ๋“ฑ๊ธ‰์„ ์ธก์ •ํ•ด์ฃผ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ตœ๊ทผ์—๋งŒ ์ฃผ๋ฌธ์„ ๋œ ํ–ˆ์„ ๋ฟ์ด์ง€, ํ‰์†Œ์— ์ฃผ๋ฌธ์„ ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ํ•œ ๊ฒฝ์šฐ๋„ ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์—ฌ ๊ทธ ์ด์ „์— ๋‹ค์Œ ์ฃผ๋ฌธ๋“ค๊นŒ์ง€์˜ ํ‰๊ท  ๊ธฐ๊ฐ„๋“ค์„ ๊ตฌํ•œ ๋’ค ์—ญ์‹œ ๋ถ„์œ„๋กœ ๋‚˜๋ˆ„์—ˆ๋‹ค.
    ์–ด์ฐจํ”ผ ๋จธ์‹ ๋Ÿฌ๋‹์ด๋‚˜ ๋”ฅ๋Ÿฌ๋‹์—์„œ ์ด๋Ÿฐ ๋ฐ์ดํ„ฐ๋“ค์„ ์‚ฌ์šฉํ•  ๋•Œ์—๋Š” ๋ชจ๋ธ์—์„œ ํ•™์Šต ๊ณผ์ •์ค‘์— ์•Œ์•„์„œ ๋“ฑ๊ธ‰์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ฑฐ๋‚˜ ํŠน์ง•๋“ค์„ ์ถ”์ถœํ• ํ…Œ๋‹ˆ ์˜๋ฏธ๋Š” ์—†์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ๊ทธ ์ด์ „์— ์ง๊ด€์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์‹œ๊ฐํ™”๋ฅผ ํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„ ๊ณผ์ •์ด๋ผ ์ƒ๊ฐํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์•˜๋‹ค. ์ฒ˜์Œ์—๋Š” ntile์„ ์ด์šฉํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋“ฑ๊ธ‰์„ ๋ถ„๋ฅ˜ํ•˜๊ณ ์ž ํ•˜์˜€์œผ๋‚˜, ๋ฐ”๋กœ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.
    Frequency Rank๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ณผ์ •์—์„œ ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ธฐ๊ฐ„์ด 2๋‹ฌ ์ •๋„๋กœ ์งง๊ธฐ ๋•Œ๋ฌธ์— (์šฉ๋Ÿ‰ ๊ด€๊ณ„์ƒ), ๋Œ€๋ถ€๋ถ„์˜ ๊ณ ๊ฐ๋“ค์˜ ์ฃผ๋ฌธ ํšŸ์ˆ˜๋Š” 1๋ฒˆ์ด๋‚˜ 2๋ฒˆ์—์„œ ๊ทธ์ณค๊ณ  ๊ทธ์— ๋”ฐ๋ผ ntile์„ ์“ฐ๋ฉด ntile์€ ๊ฐ™์€ ํฌ๊ธฐ์˜ ์ˆœ์œ„ ๊ทธ๋ฃน์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋งค์šฐ ๊ทน๋‹จ์ ์œผ๋กœ ๋ถ„๋ฅ˜๊ฐ€ ๋  ๋ฟ๋”๋Ÿฌ, ๊ฐ™์€ ์ฃผ๋ฌธํšŸ์ˆ˜์ธ๋ฐ๋„ ๋‹ค๋ฅธ ๋“ฑ๊ธ‰์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋Š” ๋ถˆ์ƒ์‚ฌ๋„ ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.
    ๋”ฐ๋ผ์„œ ntile์„ ์ด์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฐฐ์ œํ•˜๊ณ , ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•˜์—ฌ recency, frequency, monetary ๊ฐ๊ฐ์— ๋Œ€ํ•œ ๋“ฑ๊ธ‰ ๊ธฐ์ค€ ํ‘œ๋ฅผ ๋งŒ๋“ค๊ณ  ์ด์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜ํ•˜๊ธฐ๋กœ ํ•˜์˜€๋‹ค.
    ๊ทธ ๋’ค ์ „์ฒด ๋“ฑ๊ธ‰์„ ๋ฐฐ์ •ํ•œ ๋’ค, ํŠธ๋ฆฌ๋งต์„ ํ†ตํ•˜์—ฌ ๋ถ„ํฌ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์‰ฝ๋„๋ก ํ•˜์˜€๋‹ค.

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

  • dau, wau, mau๋ฅผ ๊ตฌํ•˜๋˜ ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •ํ•œ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•˜์—ฌ ํ•™์Šต์„ ํ•˜์˜€๋‹ค. ์ด์ „์— ํ•˜๋˜๋ฐ๋กœ date_trunc๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๊ฑด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์Œ“์—ฌ์žˆ๋Š” ๊ณณ์—์„œ ์ •ํ•ด์ง„ ๊ธฐ๊ฐ„ ํ‹€์—์„œ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋ผ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. (wau๋ฅผ ๊ตฌํ• ๋•Œ์˜ ์˜ˆ์‹œ๋กœ ๋“ค์–ด๋ณด๋ฉด, ์ผ์š”์ผ๋ถ€ํ„ฐ ๋‹ค์Œ์ฃผ ์ผ์š”์ผ ์ „๊นŒ์ง€์˜ ์œ ์ € ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ฑฐ๋‚˜, ํ˜น์€ ์–ด๋– ํ•œ ๋‚ ์งœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ทธ ๋‚ ์งœ๊นŒ์ง€ ์ผ์ฃผ์ผ๋™์•ˆ์˜ ์œ ์ € ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์„ date_trunc๋กœ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.) ๋”ฐ๋ผ์„œ, ๋ฐ”์ธ๋“œ ๋ณ€์ˆ˜ (:column)์„ ์ด์šฉํ•˜์—ฌ ์›ํ•˜๋Š” ๋‚ ์งœ๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  interval์„ ํ†ตํ•˜์—ฌ wau๋‚˜ mau๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

  • postgresql์—์„œ do ๋ช…๋ น์–ด์™€ for loop๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚ ์งœ์— ๋”ฐ๋ฅธ dau,wau,mau๋ฅผ insertํ•˜๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์•˜๋‹ค. for loop์— ๋‚ ์งœ๋ฅผ ์ฃผ๊ณ , ์ด ๋‚ ์งœ๋งˆ๋‹ค dau๋“ฑ์„ ๊ตฌํ•œ ๋’ค์— insert values๋ฅผ ํ•ด์ฃผ๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ, ์†๋„๋„ ๋А๋ฆฌ๊ณ  ์ฟผ๋ฆฌ๋„ ๋ณต์žกํ•ด์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๊ฒƒ์ด ๋” ๋‚˜์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. recursive๋ฌธ์„ ํ†ตํ•˜์—ฌ ์ž„์‹œ view๋ฅผ ๋งŒ๋“  ๋’ค insert๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์ƒ๊ฐํ•ด๋ณด์•˜์œผ๋‚˜ ์˜คํžˆ๋ ค ๋” ๋ณต์žกํ•ด์ง€๊ณ , ์‹œ๊ฐ„์€ ๊ทธ๋Œ€๋กœ์ผ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋‚ด์—ˆ๋Š”๋ฐ, generate_series๋ฅผ ํ†ตํ•ด ๋ชจ๋“  ๋‚ ์งœ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ , ์ด ๋‚ ์งœ ๋ฆฌ์ŠคํŠธ์™€ ์„ธ์…˜๋“ค์„ cross join์„ ํ•œ ๋’ค where์—์„œ ๊ตฌํ•˜๊ณ  ์‹ถ์€ ์กฐ๊ฑด (๋‚ ์งœ ๊ธฐ์ค€ ๋ช‡์ผ ์ „๊นŒ์ง€์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ถˆ๋Ÿฌ์˜ค๋Š”)์„ ์„ค์ •ํ•ด์ค€๋‹ค๋ฉด ๋‹จ ํ•œ๋ฒˆ์˜ join์œผ๋กœ ๋ชจ๋“  ๋‚ ์งœ์— ๋Œ€ํ•˜์—ฌ for loop๋ฅผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

  • ํŠน์ • ๋‚ ์งœ์—์„œ ์ตœ๊ทผ ํ•œ๋‹ฌ๊ฐ„์˜ ์ ‘์†์ž๋“ค์ค‘, ์‹ ๊ทœ ์ƒ์„ฑ๋œ ์œ ์ € (ํ•œ๋‹ฌ ์ด๋‚ด) ์ˆ˜์™€ ๊ธฐ์กด ์œ ์ € (์ƒ์„ฑ ๋‚ ์งœ๊ฐ€ ํ•œ๋‹ฌ๋ณด๋‹ค ์˜ค๋ž˜๋œ)์ˆ˜๋ฅผ ๊ตฌํ•ด๋ณด์•˜๋‹ค. ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์—์„œ๋Š” ์‹ ๊ทœ ์ƒ์„ฑ ์œ ์ €๋Š” ๋งค์ผ ๋งค์ผ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์–ด ์ข‹์€ ๋ชจ์Šต์„ ๋ณด์ด์ง€๋งŒ, ๊ธฐ์กด ์œ ์ €์˜ ์ˆ˜๋Š” ์ƒ์Šนํญ์ด ์ ์–ด ์ฒด๋ฆฌํ”ผ์ปค๊ฐ€ ๋งŽ์€ ์‚ฌ์ดํŠธ ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

  • ์ด์ „๊นŒ์ง€ ํ–ˆ๋˜ ๋ถ„์„๋“ค์€ ๋Œ€๋ถ€๋ถ„ ๋‚ ์งœ (๊ณ„์ • ์ƒ์„ฑ ์‹œ๊ฐ„, ์ฃผ๋ฌธ ์‹œ๊ฐ„, ๋ฐฉ๋ฌธ ์‹œ๊ฐ„ ๋“ฑ)์„ ์ด์šฉํ•˜์˜€๋‹ค๋ฉด, ์ด๋ฒˆ์—๋Š” ์ด์šฉ ๊ฒฝ๋กœ์— ๋Œ€ํ•ด ๋ถ„์„ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. ์ง์ ‘ ๊ฒ€์ƒ‰ํ•ด์„œ ์˜จ ๊ฒฝ์šฐ, ๊ด‘๊ณ ๋ฅผ ํ†ตํ•ด ์˜จ ๊ฒฝ์šฐ ๋“ฑ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์‹ ๊ทœ์œ ์ €/๊ธฐ์กด์œ ์ €์˜ ์ˆ˜๋ฅผ ๋ณธ๋‹ค๊ฑฐ๋‚˜, ์œ ์ž… ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ์ฃผ๋ฌธ์€ ์–ผ๋งˆ๋‚˜ ๋‚˜์™”์œผ๋ฉฐ ๋งค์ถœ์€ ์–ผ๋งˆ๋‚˜ ๋‚˜์™”๋Š”์ง€ ๋“ฑ ๋ถ„์„ํ•ด ๋ณผ ์˜ˆ์ •์ด๋‹ค.

  • ์„ธ์…˜๋ณ„ ์–ด๋–ค ๋™์ž‘ (hit)๊ฐ€ ์žˆ์—ˆ๋Š”์ง€ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•ด sess_hits ํ…Œ์ด๋ธ”์„ ๋ถˆ๋Ÿฌ์˜จ ๋’ค, ๋ถ„์„์„ ํ•ด ๋ณด์•˜๋‹ค. ์ฒ˜์Œ์—๋Š” ๊ฐ€์žฅ ๋‹จ์ˆœํ•˜๊ฒŒ ์„ธ์…˜๋ณ„๋กœ ๋™์ž‘์ด ๋ช‡๋ฒˆ ์žˆ์—ˆ๋Š”์ง€ ๋ถ„ํฌ๋ฅผ ์•Œ์•„ ๋ณด์•˜๋Š”๋ฐ, ๋Œ€๋ถ€๋ถ„ 10๋ฒˆ ์ „ํ›„์ •๋„์ธ๋ฐ ์ตœ๋Œ€ ํšŸ์ˆ˜๊ฐ€ 500์ด๊ธฐ๋•Œ๋ฌธ์— ๋ถ„ํฌ๊ฐ€ ์น˜์šฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์ผ์ • ๋ฒ”์œ„ ์ด์ƒ ๋ฒ—์–ด๋‚œ ๊ฐ’๋“ค (q3+1.5*IQR ์ด์ƒ)์„ ์ œ๊ฑฐํ•ด ์ค€ ๋’ค ๋ถ„ํฌ๋ฅผ ๋‹ค์‹œ ํŒŒ์•…ํ•˜์˜€๋‹ค.

  • ํŽ˜์ด์ง€๋ณ„ ํ‰๊ท  ์„ธ์…˜ ์ˆ˜์™€ ํ‰๊ท  ์ ‘์† ์‹œ๊ฐ„์„ ์•Œ์•„๋ณด๋Š” ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค.

  • ์œ ์ €๋ณ„ ์„ธ์…˜์˜ ๋งˆ์ง€๋ง‰ ํŽ˜์ด์ง€ (์ข…๋ฃŒ ํŽ˜์ด์ง€)๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•œ ์ฟผ๋ฆฌ ์ž‘์„ฑ ์ค‘ ๋ง‰ํžˆ๋˜ ๋ถ€๋ถ„์ด ์žˆ์–ด ๊ณ ๋ฏผํ•˜๋˜ ์ค‘ ํ•ด๊ฒฐํ•˜์˜€๋Š”๋ฐ, ์ด๋ฅผ ํ†ตํ•ด ์œˆ๋„์šฐ ํ•จ์ˆ˜์™€ ์ข€ ๋” ์นœํ•ด์ ธ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. partition by์— 2๊ฐœ์˜ ์ปฌ๋Ÿผ์„ ํ•œ๋ฒˆ์— ์‚ฌ์šฉํ•  ์ƒ๊ฐ์„ ํ•˜์ง€ ๋ชปํ–ˆ์–ด์„œ, ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ๋งŒ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ์ž„์‹œ ๋ทฐ๋ฅผ ๋งŒ๋“  ๋’ค ๋‚˜๋จธ์ง€ ํ•˜๋‚˜์˜ ์ปฌ๋Ÿผ์œผ๋กœ ๋˜ ํŒŒํ‹ฐ์…˜์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋น„ํšจ์œจ์ ์ธ ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€, ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ปฌ๋Ÿผ์œผ๋กœ๋„ ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ๋‹ค.

  • ํŽ˜์ด์ง€๋ณ„ ๋ฐ”์šด์Šค ์œ ์ € ์ˆ˜(ํŽ˜์ด์ง€ ์ ‘์† ํ›„ ๋ฐ”๋กœ ์ข…๋ฃŒ)์™€ ํŠน์ • ํŽ˜์ด์ง€๋กœ ์‹œ์ž‘ํ•˜์˜€์ง€๋งŒ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ„ ๋’ค ์ข…๋ฃŒํ•˜๋Š” ์œ ์ €์ˆ˜๋ฅผ ๊ตฌํ•œ ๋’ค ํŽ˜์ด์ง€๋ณ„ ์ดํƒˆ์œจ์„ ๊ตฌํ•˜์˜€๋Š”๋ฐ, ์ด ๋ฐ์ดํ„ฐ์…‹์˜ ๊ฒฝ์šฐ์—๋Š” ํ™ˆํŽ˜์ด์ง€์—์„œ ์ดํƒˆ์œจ์ด 50%๊ฐ€ ๋„˜๋Š” ํ˜„์ƒ์ด ๋‚˜ํƒ€๋‚ฌ๋‹ค. ํ™ˆํŽ˜์ด์ง€์˜ ๋กœ๋”ฉ์ด ๋А๋ฆฌ๋‹ค๊ฑฐ๋‚˜, UI๊ฐ€ ๋„ˆ๋ฌด ์‚ฐ๋งŒํ•˜๋‹ค๋˜์ง€ ํ•˜๋Š” ์š”์ธ์œผ๋กœ ์ธํ•˜์—ฌ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ํด๋ฆญํ•  ์ƒ๊ฐ๋„ ํ•˜์ง€ ์•Š๊ณ  ๋ฐ”๋กœ ์ข…๋ฃŒ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ์œ ์ €๊ฐ€ 50%๊ฐ€ ๋„˜๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์ถ”๊ฐ€๋กœ ๊ถ๊ธˆํ•˜์—ฌ ์ ‘์†ํ•œ ๊ฒฝ๋กœ๋ณ„๋กœ ๋‹ค๋ฅธ ๊ฒฝํ–ฅ์ด ์žˆ์ง€ ์•Š์„๊นŒ ๋ถ„์„ํ•ด๋ณธ ๊ฒฐ๊ณผ, ์–ด๋А์ •๋„ ์ฐจ์ด๋Š” ์žˆ์ง€๋งŒ ์ง์ ‘ ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์˜จ ์œ ์ €๋“ค๋„ 40%๊ฐ€ ๋„˜๋Š”๊ฑธ ๋ณด๋ฉด ํ™ˆํŽ˜์ด์ง€์˜ ๊ฐœํŽธ์ด ํ•„์ˆ˜์ธ ์‚ฌ์ดํŠธ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

  • ํŽ˜์ด์ง€๋ณ„ ์ข…๋ฃŒ์œจ๋„ ์กฐ์‚ฌํ•ด๋ณธ ๊ฒฐ๊ณผ ์ข…๋ฃŒ์œจ์ด ๋งค์šฐ ๋†’์€ (>70%) ํŽ˜์ด์ง€์ค‘ ํŠน์ง•์ ์ด์˜€๋˜ ์ ์ด, ์—ญ์‹œ๋‚˜ ํ™ˆํŽ˜์ด์ง€์—์„œ ์ข…๋ฃŒ์œจ์ด ๋งค์šฐ ๋†’์•˜๊ณ , ๋กœ๊ทธ์ธ ํ™”๋ฉด์—์„œ์˜ ์ข…๋ฃŒ์œจ๋„ ๋งค์šฐ ๋†’์•˜๋‹ค. ๋กœ๊ทธ์ธ ๊ณผ์ •์—์„œ ์•„์ด๋””๋‚˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๊ธฐ์–ต์ด ๋‚˜์ง€์•Š์•„ ๊ทธ๋Œ€๋กœ ๋‹ซ๋Š” ๊ฒฝ์šฐ๋˜์ง€, ๋ฌด์–ธ๊ฐ€๋ฅผ ํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ๋กœ๊ทธ์ธ์„ ์š”๊ตฌํ•˜์—ฌ ๋‹ซ๋Š”๋‚  ๊ฒฝ์šฐ๊ฐ€ ๊ฝค๋‚˜ ์žฆ์€๊ฒƒ ๊ฐ™๋‹ค. ๋˜ ๋‹น์—ฐํ•˜๊ฒŒ๋„, ์ƒํ’ˆ ์ฃผ๋ฌธ ์™„๋ฃŒ ํŽ˜์ด์ง€์—์„œ์˜ ์ข…๋ฃŒ์œจ์ด ๋งค์šฐ ๋†’์•˜๋‹ค. ์ฃผ๋ฌธ ์™„๋ฃŒ ํ›„ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” 20%๋„ ๋˜์ง€ ์•Š์•˜๋‹ค.

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

  • ์ž”์กด์œจ์„ ์ข€ ๋” ๋น ๋ฅด๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ƒ๊ฐํ•ด๋‚ด์–ด ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด์•˜๋‹ค. ์ด์ „์— RFM ๋ถ„์„๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ๋ฐฉ๋ฒ•์ฒ˜๋Ÿผ, ๋จผ์ € generate_series (์˜ค๋ผํด์—์„œ ์‚ฌ์šฉํ•˜๋˜ connect by level์„ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜์˜€์œผ๋‚˜ postgresql์€ ์ง€์› x)์„ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑ์‹œ๊ฐ„ ์ปฌ๋Ÿผ์„ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ค€ ๋’ค, ์œ ์ € ๋ฐ์ดํ„ฐ์™€ cross join์„ ํ•˜๋˜ ์ƒ์„ฑ์‹œ๊ฐ„์ด ์ผ์น˜ํ•˜๋Š” ์ปฌ๋Ÿผ๋“ค๋งŒ ๋‚จ๊ธฐ๋„๋ก where์ ˆ์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด generate_series๋กœ ๋งŒ๋“  ์ƒ์„ฑ์‹œ๊ฐ„ ์ปฌ๋Ÿผ์— ์˜ํ•ด ๋งˆ์น˜ groupby๋ฅผ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๊ทธ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’๋“ค๋งŒ ๋‚จ๊ฒŒ๋˜๊ณ , ๋‚˜๋จธ์ง€ ๊ฐ’๋“ค์€ ์‚ฌ๋ผ์ ธ ์šฉ๋Ÿ‰๋„ ์ค„์–ด๋“ค๊ณ  ๋งค๋ฒˆ ๋‚ ์งœ๋ณ„๋กœ ๊ตฌํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์†๋„๋„ ๋นจ๋ผ์ง€๋ฉฐ ์›ํ•˜๋Š” ๊ฐ’์„ ๊ตฌํ•˜๋„๋ก ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•˜๋Š”๋ฐ ๋งค์šฐ ํŽธ๋ฆฌํ•ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ž”์กด์œจ์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐ”๊พธ์—ˆ๋Š”๋ฐ, ๋งˆ์ง€๋ง‰ ์ ‘์†์ผ์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๋‹จ์ˆœํžˆ ๊ทธ n์ผ ๋’ค์— ์ ‘์†์„ ํ•˜์˜€๋Š”์ง€๋กœ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์ž”์กด์œจ์ด๋ผ๊ณ  ํ•œ๋‹ค. ์ฆ‰ ์ด์ „์— ๊ตฌํ–ˆ๋˜ ์ž”์กด์œจ?๋ณด๋‹ค ํ›จ์”ฌ ์‹์ด ๋‹จ์ˆœํ•ด์ง„๋‹ค. ์ฃผ๋ณ„, ์ฑ„๋„๋ณ„ ์ž”์กด์œจ๋„ ๊ตฌํ•ด ๋ณด์•˜์œผ๋‚˜, 3๋‹ฌ์น˜์˜ ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ง€๊ณ  ๋ถ„์„์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค ๋ณด๋‹ˆ ๋ฐ์ดํ„ฐ์˜ ์–‘์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ๋А๋‚Œ์ด ์ข€ ๋“ค์—ˆ๋‹ค.

  • ์ผ๋ณ„ ๋งค์ถœ ์ „ํ™˜์œจ๊ณผ ๋งค์ถœ์•ก์„ ๊ตฌํ•ด๋ณด์•˜๋‹ค. ์ฒ˜์Œ์— ๋„ˆ๋ฌด ํ•œ๋ฒˆ์— ๊ตฌํ•˜๋ ค๊ณ  ํ•˜๋‹ค๊ฐ€ ๋งค์ถœ์•ก ๋ถ€๋ถ„์—์„œ ์ค‘๋ณต ๊ฐ’์ด ๋“ค์–ด๊ฐ€ ์ž˜๋ชป ๊ตฌํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ฐจ๊ทผ์ฐจ๊ทผ ์ž„์‹œ ์ฟผ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ด๊ฐ€๋ฉฐ ์ผ๋ณ„ ์ „ํ™˜์œจ๊ณผ ์ผ๋ณ„ ๋งค์ถœ์„ ์ตœ์ข…์ ์œผ๋กœ ์กฐ์ธํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค. ์ด๋Ÿฐ ์‡ผํ•‘๋ชฐ์—์„œ๋Š” ์ „ํ™˜์œจ์ด ์–ด๋А์ •๋„์—ฌ์•ผ ์ข‹์€๊ฑด์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์ผ๋‹จ ์ด ๋ฐ์ดํ„ฐ์—์„œ๋Š” ์ผ๋ณ„ ์ „ํ™˜์œจ์ด 0~3% ์‚ฌ์ด๋ฅผ ์œ ์ง€ํ•˜์˜€๋‹ค.