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% ์ฌ์ด๋ฅผ ์ ์งํ์๋ค.