๐ŸŽŠ if(kakao)2020 ์„ธ์…˜ ์ •๋ฆฌ

if(kakao)2020 ์„ธ์…˜์„ ๋“ค์œผ๋ฉด์„œ ์ข‹์•˜๋˜ ์„ธ์…˜๋“ค์ด๋‚˜ ๋‚˜์ค‘์— ๋‹ค์‹œ ๋ณผ ์„ธ์…˜ ์•„์นด์ด๋น™ ์šฉ๋„๋กœ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ์„ธ์…˜ ์˜์ƒ์„ ์ž˜ ๋…นํ™”ํ•ด์ฃผ์–ด์„œ ์ •๋ง ๊ฐ์‚ฌํ•˜์ง€๋งŒ ๋ฐœํ‘œ ์ž๋ฃŒ๊ฐ€ ๊ฐ™์ด ๋งํฌ๋˜์–ด ์žˆ์—ˆ๋‹ค๋ฉด ํ›จ์”ฌ ์ข‹์ง€ ์•Š์•˜์„๊นŒ ์‹ถ๋‹ค.

๊ฐœ์ธํ™” ์ฝ˜ํ…์ธ  ํ‘ธ์‹œ ๊ณ ๋„ํ™” ํ›„๊ธฐ

๊ฑด๋„ˆ๋›ฐ๋ฉด์„œ ๋“ค์–ด์„œ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ๋‰ด์Šค์ชฝ์ธ๋“ฏ ํ•˜๋‹ค.

  • ๊ฐœ์ธํ™” ํ‘ธ์‹œ๋Š” 1) ์ž˜ ์•ˆ์“ฐ๋Š” ์‚ฌ๋žŒ์ด ์“ฐ๋„๋ก ํ•˜๋„๋ก, 2) ์ด๋ฏธ ์“ฐ๋Š” ์‚ฌ๋žŒ์ด ๋” ๋งŽ์ด ์“ฐ๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด ์žˆ๋Š”๋ฐ, 1๋ฒˆ์— ์ดˆ์ ์„ ๋งž์ถค.
    • ๋น„ํ™œ์„ฑ๊ธฐ๊ฐ„์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ๊ธ‰์†๋„๋กœ ๋‹ค์Œ์ฃผ ์ ‘์†๋ฅ ์ด ๋–จ์–ด์ง -> ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋‹น์—ฐํ•  ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋น„ํ™œ์„ฑํ™” ๊ธฐ๊ฐ„์„ ๋„ˆ๋ฌด ๊ธธ๊ฒŒ ๊ฐ€์ ธ๊ฐ€์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ ๊ฐ™์Œ
    • ๊ทผ๋ฐ ๋‹น์—ฐํ•œ๋ฐ ์ด ์‚ฌ๋žŒ๋“ค์€ ํ‘ธ์‹œ๋ฅผ ๊ฑฐ์˜ ํด๋ฆญ ์•ˆํ•จ
  • ํ‘ธ์‹œ๋Š” ์ฝ˜ํ…์ธ ์— ๋”ฐ๋ผ ํด๋ฆญ์œจ์ด ๊ต‰์žฅํžˆ ๋‚˜๋‰จ
    • ๋ˆ„๊ตฌ๋‚˜ ์ข‹์•„ํ•  ์ฝ˜ํ…์ธ ๋ฅผ ๋ณด๋‚ด๋ฉด ์ „์ฒด์ ์ธ ํด๋ฆญ์œจ์ด ๊ต‰์žฅํžˆ ์ข‹์•„์ง, WAU๋„ ๊ฝค ์ฆ๊ฐ€
    • ๊ทผ๋ฐ ๋ˆ„๊ตฌ๋‚˜ ์ข‹์•„ํ•  ์ฝ˜ํ…์ธ ๋Š” ์ž์ฃผ ์ƒ๊ธฐ์ง€ ์•Š์Œ
  • ๊ทธ๋ ‡๋‹ค๋ฉด ์ผ๋ฐ˜์ ์ธ ์ฝ˜ํ…์ธ ๋ผ๋„ ๋ชจ๋‘๊ฐ€ ์ข‹์•„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ์ธํ™” ์ฝ˜ํ…์ธ  ํ‘ธ์‹œ๋ฅผ ํ™œ์šฉ
    • ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์ •ํ•˜์—ฌ ์„ ํ˜ธ๋„๋ฅผ ์˜ˆ์ธกํ•œ ๋’ค, ๊ฒฐ๊ณผ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋‹ค์‹œ ์ฝ˜ํ…์ธ ๋ฅผ ์„ ์ •ํ•˜๋Š” ์ „์ฒด ์ž๋™ํ™”๋ฅผ ์ ์šฉํ–ˆ๋‹ค.
    • Gradient Boosting ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๊ณ , ์ œ๋ชฉ, ๋ณธ๋ฌธ์— ๊ธฐ๋ฐ˜ํ•ด์„œ ๋ชจ๋ธ๋งํ–ˆ๋‹ค.
    • ํ‘ธ์‹œ ์นดํ”ผ (์ œ๋ชฉ, ๋ถ€์ œ)๋Š” ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜์œผ๋กœ A/B Testing์„ ํ†ตํ•ด ๊ณ„์† ๊ฑธ๋Ÿฌ๋ƒ„
  • ์˜ˆ์ธก ๋ฐฉ์‹
    • Contents-based: ์ฝ˜ํ…์ธ ๋ฅผ ๋ชจ๋ธ๋งํ•ด์„œ ์œ ์ €๋„ ๋ชจ๋ธ๋งํ•จ -> bi encoder ํ˜•์‹์ธ๊ฐ€?
    • CTR(Click through rate) Prediction: ๊ณผ๊ฑฐ์— ์œ ์ €๊ฐ€ ํด๋ฆญํ–ˆ๋˜ ์ •๋ณด๋ฅผ ๋ชจ๋ธ๋ง, ํด๋ฆญ ํ™•๋ฅ  ์˜ˆ์ธก
    • Lookalike: ๋น„์Šทํ•œ ์œ ์ €๋ผ๋ฆฌ ํด๋Ÿฌ์Šคํ„ฐ๋ง

E2E ์Œ์„ฑ์ธ์‹ ๊ฐ€์†ํ™” ๊ธฐ์ˆ  ๊ทธ๋ฆฌ๊ณ  On-Device๋กœ์˜ ํ™•์žฅ

์š”๊ฑฐ๋Š” ๊ทธ๋ƒฅ ์ˆœ์ˆ˜ ํ˜ธ๊ธฐ์‹ฌ์œผ๋กœ ๋“ค์Œ -> ๊ทผ๋ฐ ๋ณด๋‹ค๋ณด๋‹ˆ๊นŒ ๋…ผ๋ฌธ ์ €์ž๋ถ„์ด ๋ฐœํ‘œํ•˜์‹œ๋Š” ์„ธ์…˜์ด์—ˆ๋‹ค. https://arxiv.org/abs/2002.03577

  • ์š”์•ฝ: Adaptive Expansion Search๋ฅผ ์ œ์•ˆํ–ˆ๋Š”๋ฐ, ์ด๊ฒŒ WER์—์„œ ํฐ ์ฐจ์ด๊ฐ€ ๋‚˜์ง€ ์•Š๋Š” ์„ฑ๋Šฅ์—์„œ ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋นจ๋ผ์ง. ์ด๊ฑธ on-device๋กœ ๊ฐœ๋ฐœํ•˜์ž!
  • ์šฉ๋Ÿ‰์ด ํฌ๊ธด ํ•˜์ง€๋งŒ, ์ข‹์€ ์„ฑ๋Šฅ์œผ๋กœ ๋น ๋ฅธ ์†๋„๋กœ ์Œ์„ฑ์ธ์‹์„ On-device๋กœ ๊ฐœ๋ฐœํ•จ -> ๋ฐ๋ชจ๋น„๋””์˜ค ์žˆ๋Š”๋ฐ ๊ฝค ์ข‹์•„์š”

์ถ”์ฒœ ์‹œ์Šคํ…œ, ์จ๋ณด์ง€ ์•Š๊ฒ ๋Š”๊ฐ€? - ๋งฅ๋ฝ๊ณผ ์ทจํ–ฅ ์‚ฌ์ด ์ค„ํƒ€๊ธฐ

  • ํ”ผ์ฝ”๋งˆ๋ผ๋Š” ์นด์นด์˜ค ์žฌํŒฌ์—์„œ ๋งŒ๋“  ๋งŒํ™” ํ”Œ๋žซํผ์—์„œ ์ถ”์ฒœ ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ ์‚ฌ๋ก€
  • ์ถ”์ฒœ์‹œ์Šคํ…œ์„ ์ ์šฉํ•˜๋ ค๋Š” ์ƒํ™ฉ: ์œ ์ €๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒˆ๋กœ์šด ์ž‘ํ’ˆ์„ ๋ณด๊ณ  ์‹ถ์–ดํ•  ๋•Œ
  • ๊ฐœ์ธํ™” ์ถ”์ฒœ vs ์—ฐ๊ด€ ์ถ”์ฒœ -> ์œ ์ €๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ทจํ–ฅ์„ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋‚˜, ์ง€๊ธˆ ์†Œ๋น„์ค‘์ธ ๋งฅ๋ฝ์„ ๊ธฐ์ค€์œผ๋กœ ๊ณ ๋ คํ•ด์•ผ ํ•˜๋‚˜.
    • ๊ทธ๋ž˜์„œ ๋‘˜์„ A/B ํ…Œ์ŠคํŠธ๋ฅผ ํ•ด๋ด„
  • ๊ตฌํ˜„: Matrix Factorization ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐฉ์‹ ์„ ์ •
    • user-item matrix๋ฅผ user embedding์„ ๊ฐ€์ง€๋Š” user matrix์™€ item embedding์„ ๊ฐ€์ง€๋Š” item matrix๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๊ตฌํ•จ
    • ๊ฐœ์ธํ™” ์ถ”์ฒœ: user matrix X item matrix๋กœ ๊ตฌํ˜„
    • ์—ฐ๊ด€ ์ถ”์ฒœ: item matrix X item matrix๋กœ similarity ๊ตฌํ˜„
  • ๊ฒฐ๊ณผ
    • ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด์ง€๋งŒ, ์œ ์ €๊ฐ€ ํ˜„์žฌ ์ž‘ํ’ˆ์ด ๋งˆ์Œ์— ์•ˆ๋“ค์–ด์„œ ๋‚˜๊ฐˆ๋•Œ๋Š” ๊ฐœ์ธํ™”๊ฐ€ ์ž˜๋˜๋Š” ๋ชจ์–‘์ƒˆ(ํ˜„์žฌ ์ž‘ํ’ˆ๊ณผ ์œ ์ €๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์œ ์‚ฌํ•˜์ง€ ์•Š์„ ๋•Œ)์ด๊ณ , ์œ ์ €์™€ ํ˜„์žฌ ์ž‘ํ’ˆ์ด ์œ ์‚ฌํ•  ๋•Œ๋Š” ์—ฐ๊ด€ ์ถ”์ฒœ์ด ์ž˜ ๋œ๋‹ค.
    • ๊ฐœ์ธํ™” ์ถ”์ฒœ์ด ์ž‘ํ’ˆ๋ผ๋ฆฌ์˜ ์œ ์‚ฌ๋„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋น„๊ตํ•ด๋ณด์•˜์„ ๋•Œ ์„ฑ๋Šฅ์ด ์ข‹๋‹ค.
    • ๋‹ค๋งŒ, ์ž‘ํ’ˆ์„ ๋๊นŒ์ง€ ์ฝ๊ณ  ๋‚˜์˜ค๋Š” ์ถ”์ฒœ์˜ ๊ฒฝ์šฐ์—๋Š” ๋งˆ์Œ์— ๋“ค์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋๊นŒ์ง€ ์ฝ์€ ๊ฒƒ์ด๋ผ ์—ฐ๊ด€ ์ถ”์ฒœ์ด ํ›จ์”ฌ ์ข‹์•˜์Œ.

UI ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ์—ฌ์ •

  • ๋‚ด๋ถ€์ ์œผ๋กœ ์œ ์ง€ํ•˜๋Š” React, Vue์šฉ ์ปดํฌ๋„ŒํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์กด์žฌ
  • ํ•ด๋‹น UI ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์ „๋ถ€ ๋ฆด๋ฆฌ์ฆˆ ์ „์— ํ™•์ธํ•  ์ˆ˜ ์—†์œผ๋‹ˆ ํ…Œ์ŠคํŠธ ์ž‘์„ฑ
  • Snapshot testing with Storybook
    • ์ด์Šˆ1) React Hook์„ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•จ -> ์ง€๊ธˆ์€ ๊ดœ์ฐฎ์Œ
    • ์ด์Šˆ2) Ref๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•จ -> Enzyme์œผ๋กœ ๊ต์ฒด
    • ์ด์Šˆ3) ๋ชจ๋…ธ๋ ˆํฌ ํ˜•ํƒœ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ด๊ธฐ ๋•Œ๋ฌธ์— jest๊ฐ€ ์ƒ์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ asset์— ์ ‘๊ทผํ•˜๊ธฐ ํž˜๋“ค์–ด ํ•จ -> jest์˜ rootDir๋ฅผ ๋ชจ๋…ธ๋ ˆํฌ์˜ ์ตœ์ƒ์œ„๋กœ ๋Œ๋ฆฌ๊ณ  ์„ค์ •ํ•จ
  • ๊ทผ๋ฐ Snapshot๋งŒ์œผ๋กœ๋Š” CSS ์ถ”์ ์€ ์•ˆ๋จ
    • storyshots-puppeteer๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฏธ์ง€๋กœ ํ…Œ์ŠคํŠธํ•˜๊ธฐ๋กœ ํ•จ
    • ์ด์Šˆ1) GIF ํƒ€์ด๋ฐ ๋ฌธ์ œ๋•Œ๋ฌธ์— ์ด์ƒํ•ด์ง
    • ์ด์Šˆ2) ์‚ฌ์šฉ์ž ๋™์ž‘ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์ด ํ•„์š”

์นด์นด์˜ค์™€ MongoDB

  • ๋‹ค๋ฅธ ๋‚ด์šฉ์€ ์Šคํ‚ต
  • ๋ชจ๋‹ˆํ„ฐ๋ง์€ ํ”„๋กœ๋ฉ”ํ…Œ์šฐ์Šค, ๊ทธ๋ผํŒŒ๋‚˜ ์ ์šฉ (exporter๋Š” ์ปค์Šคํ…€์œผ๋กœ ์ž‘์„ฑ)
  • ์‚ฌ๋ก€
    • ๊ณต๊ฐ„ ์ธ๋ฑ์Šค (์นด์นด์˜ค ๋ชจ๋นŒ๋ฆฌํ‹ฐ์—์„œ ์‚ฌ์šฉ์ž ์œ„์น˜ ๊ธฐ๋ฐ˜ ๊ฒ€์ƒ‰): ์ด๊ฑธ ๋ณตํ•ฉ ์ธ๋ฑ์Šค๋กœ ์ ์šฉ
    • MySQL -> MongoDB ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜
      • ๋ฌธ์ œ: ์Šค์ผ€์ผ๋ง์˜ ํ•œ๊ณ„, ์Šคํ‚ค๋งˆ ๋ณ€๊ฒฝ ๋ถ€๋‹ด
      • ๋ชฝ๊ณ ๋””๋น„๋Š” ์••์ถ•์„ ํ•ด์ฃผ๊ธฐ ๋–„๋ฌธ์— ๋กœ๊ทธ ๋ฐ์ดํ„ฐ ์ด๊ด€ ํ›„ 63% ์ •๋„์˜ ์••์ถ•๋ฅ ์„ ๋ณด์˜€์Œ
      • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑํ•ด์„œ ์Šค์ผ€์ผ๋ง ๋ถ€๋‹ด ์ ์–ด์ง

์นด์นด์˜คํ†ก ์‹œ์Šคํ…œ์˜ ์ง„ํ™” - ํ…Œ์ŠคํŠธ ์ž๋™ํ™”๋กœ ์ž์‹ ๊ฐ ๊ฐ–๊ธฐ

  • ์š”๊ตฌ์‚ฌํ•ญ ์ถฉ์กฑ์„ ์œ„ํ•œ ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•˜๋‹ค๋ณด๋‹ˆ ํ…Œ์ŠคํŠธ๊ฐ€ ์ ์–ด์กŒ๊ณ , ๊ฐœ๋ฐœ/๋ฐฐํฌ์— ๋Œ€ํ•œ ๋ถ€๋‹ด์ด ์ฆํญ๋จ
  • ๋‹จ์œ„ ํ…Œ์ŠคํŠธ/ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€, BDD ๊ธฐ๋ฐ˜
  • ์‚ฌ์‹ค ๋’ค๋กœ๋Š” ๋‹ค๋ฅธ ๋ฐœํ‘œ์—์„œ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ์ด์•ผ๊ธฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ฆฌ๋Š” ์ƒ๋žต, ๊ทผ๋ฐ ๋“ค์–ด๋ณด๋ฉด ์„ธ์„ธํ•œ ์ƒ๊ฐ์„ ๋“ค์„ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹๊ธด ํ•˜๋‹ค.
    • ์š”์•ฝ: ๋ฐฐํฌ๊ฐ€ ํž˜๋“ค๋‹ค! -> ํ…Œ์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ์ž๋™ํ™” ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜์ž -> ์ข‹์€ ํ™˜๊ฒฝ์ด ๊ตฌ์„ฑ๋จ

์นด์นด์˜คํ†ก ์‚ฌ๋ก€๋กœ ์‚ดํŽด๋ณด๋Š” ๊ฒฌ๊ณ ํ•œ ์•ˆ๋“œ๋กœ์ด๋“œ ์•ฑ ๋งŒ๋“ค๊ธฐ

์ด๊ฑฐ๋Š” ์ด์ œ๋Š” ์•ˆ๋“œ๋กœ์ด๋“œ๋ฅผ ์ ˆ๋Œ€ ์•ˆํ•˜์ง€๋งŒ ๊ทธ๋ƒฅ ๊ถ๊ธˆํ•ด์„œ ๋“ค์—ˆ๋‹ค. ์ •๋ฆฌ๋Š” ์Šคํ‚ตํ•˜์ง€๋งŒ ๋“ค์–ด๋ณด๋ฉด ์žฌ๋ฐŒ์–ด์š”.

November 30, 2020
Tags: conference