All Articles

if Kakao 2021 ๋ฉ”๋ชจ

if Kakao 2021์—์„œ ๊ด€์‹ฌ์žˆ๋Š” ์„ธ์…˜์„ ๋ช‡ ๊ฐœ ๋ดค๋Š”๋ฐ ๋ธ”๋กœ๊ทธ์—๋‹ค๊ฐ€ ๋‚˜๋ฆ„์˜ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•ด๋†“์œผ๋ฉด ๋‚˜์ค‘์— ๋ณด๊ธฐ๊ฐ€ ์ข‹์•„์„œ ๊ฐ„๋‹จํžˆ ์„ธ์…˜๋ณ„๋กœ ์ ์–ด๋ณธ๋‹ค.

Commerce Query data Rebuild Success ํ–ˆ์„๊นŒ

https://if.kakao.com/session/106

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

์ด ๋•Œ Change stream ๋‘ ๊ฐœ๋ฅผ ์กฐ์ธํ•ด์„œ ์“ฐ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒโ€ฆ ๊ทธ๋Ÿฌ๋ฉด ์ข€ ๊ณ ๋ คํ• ๊ฒŒ ๋งŽ์•„์„œ ๊ทธ๋ƒฅ ์—…๋ฐ์ดํŠธํ•  ๋ฐ์ดํ„ฐ์˜ PK๋งŒ ๋ฉ”์‹œ์ง€์—์„œ ๋ฐ›๊ณ , ๊ทธ PK๋ฅผ ๊ฐ€์ง€๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ์›์ฒœ RDB์—์„œ ์กฐ์ธํ•˜๋Š” ์‹์œผ๋กœ ์ตœ๋Œ€ํ•œ ์ •ํ•ฉ์„ฑ์„ ๋งž์ถ”์…จ๋‹ค๊ณ  ํ•œ๋‹ค. ์‚ฌ์‹ค ์—…๋ฐ์ดํŠธํ•œ DB์˜ PK๋งŒ ๋ณด๋‚ผ๊ฑฐ๋ฉด Debezium๋„ ๊ณผํ•ด์„œ ๊ทธ๋ƒฅ ORM ๋‹จ์—์„œ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒํ•˜๋Š” ์‹์œผ๋กœ ๊ตฌ์„ฑํ•˜์…จ๋‹ค๊ณ  (์ด๋Ÿฐ ์‹ค์šฉ์ฃผ์˜ ๋„ˆ๋ฌด ์ข‹๋‹ค). 50์‹œ๊ฐ„ ๊ฑธ๋ฆฌ๋Š” ์ „์ฒด ์ •ํ•ฉ์„ฑ ํ…Œ์ŠคํŠธ๋ฅผ 7๋ฒˆํ•ด์„œ ๊ฒฐ๊ตญ ๋ฐ์ดํ„ฐ ์ •ํ•ฉ์„ฑ์„ ๋งž์ถ”์…จ๋‹ค๋Š” ๋ถ€๋ถ„์€ ๋ฆฌ์ŠคํŽ™.

๋ฐ์ดํ„ฐ ์กฐ์ธํ•˜๋Š” ๋ถ€๋ถ„์€ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” statefulํ•˜๊ฒŒ stream-stream ์กฐ์ธํ•˜๋Š” ๊ฒƒ์— ๊ด€์‹ฌ์ด ๋งŽ์•˜๋Š”๋ฐ ์˜ˆ์ „์— ๋ดค๋˜ ์šฐ์•„ํ•œ ํ˜•์ œ๋“ค MSA ๋ฐœํ‘œ๋„ ๊ทธ๋ ‡๊ณ  ์‹ค์ œ๋กœ๋Š” ๊ทธ๋ƒฅ โ€˜๋ณ€๊ฒฝโ€™ ์ด๋ฒคํŠธ๋งŒ ๋ฐœ์ƒํ•˜๊ณ  ์›๋ณธ์„ ๋‹ค์‹œ ์ฝ๋Š” ํ˜•ํƒœ๋กœ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์‚ฌ์‹ค ์›๋ณธ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์— ๊ฐ€ํ•ด์ง€๋Š” ๋ถ€ํ•˜๊ฐ€ ๊ณผํ•˜์ง€ ์•Š์œผ๋ฉด ์ด ๋ฐฉ์‹์ด ๋ณต๊ตฌ ๋ฐ ์žฌ์ฒ˜๋ฆฌ๋„ ๊น”๋”ํ•˜๊ณ  ์ข‹๋‹ค. ๊ฒฐ๊ตญ ๋ณ€๊ฒฝ์ด ์–ผ๋งˆ๋‚˜ ์ž์ฃผ ์ผ์–ด๋‚˜๋ƒ์˜ ๋ฌธ์ œ.

BERT๋ณด๋‹ค 10๋ฐฐ ๋น ๋ฅธ BERT ๋ชจ๋ธ ๊ตฌ์ถ•

https://if.kakao.com/session/27

์นด์นด์˜ค ์‡ผํ•‘ํ•˜์šฐ์—์„œ๋Š” ์ƒํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ ๋ถ„๋ฅ˜๋ฅผ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๊ธฐ์กด ๋ชจ๋ธ์„ transformer ๊ธฐ๋ฐ˜์˜ ๋ชจ๋ธ๋กœ ๋ฐ”๊พธ๋ฉด์„œ ์•Œ๊ฒŒ๋˜์‹  ์ ์„ ๊ณต์œ ํ•ด์ฃผ์‹œ๋Š” ๋‚ด์šฉ. ์ƒํ’ˆ ๋ถ„๋ฅ˜๋ฅผ ์œ„ํ•ด ๋ณ„๋„์˜ MLM pretrain์„ ๊ฑฐ์นœ ๋ ˆ์ด์–ด๊ฐ€ ์ ๊ณ  vocab size๊ฐ€ ํฐ bert ๊ตฌ์ถ• ์ด๋ผ๊ณ  ์“ฐ๋ฉด ๋Œ€๋žต ๋งž๋‹ค. Encoder block์€ 3๊ฐœ, attention heads๋Š” 2๊ฐœ, vocab size๋Š” 30๋งŒ, BPE๊ฐ€ ์•„๋‹Œ unigram์ด์šฉ, segment embedding์€ ์•„์˜ˆ ์‚ญ์ œ ๋“ฑ๋“ฑ์ด ์ฃผ์š” ๋ณ€๊ฒฝ ๋‚ด์šฉ์ด๋‹ค.

Encoder block์„ ์ค„์ด๋Š” ๊ฒƒ์€ ์ตœ๊ทผ์— Que2Search: Fast and Accurate Query and Document Understanding for Search at Facebook ๋ผ๋Š” ํŽ˜์ดํผ๋ฅผ ์ฝ์œผ๋ฉด์„œ๋„ ๋งŒ๋‚ฌ๋˜ ๋‚ด์šฉ์ด๋ผ์„œ ์‹ ๊ธฐํ–ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋„ ๋น ๋ฅธ ์˜จ๋ผ์ธ ์„œ๋น™์„ ์œ„ํ•ด์„œ ์ฟผ๋ฆฌ๋ฅผ ์ธ์ฝ”๋”ฉ ํ•  ๋•Œ๋Š” 2-Layer XLM์„ ์‚ฌ์šฉํ–ˆ๋‹ค๊ณ  ํ•˜๋Š”๋ฐ vocab size ์–˜๊ธฐ๋Š” ์—†๊ณ  ๋Œ€์‹ ์— ์•„์˜ˆ char 3-gram์„ ์ž„๋ฒ ๋”ฉํ•ด๊ฐ€์ง€๊ณ  XLM์˜ CLS ํ† ํฐ์ด๋ž‘ ๊ฐ™์ด ์“ฐ๋Š” ๋ถ€๋ถ„์ด ์ฐจ์ด์ . ๊ฒฐ๊ตญ ๊ฐ ํ† ํฐ์˜ ์˜๋ฏธ๋ฅผ ๋” ์ž˜ ํ•™์Šต์‹œํ‚ค๊ฒŒ ํ•˜๋ ค๋Š” ์˜๋„๊ฐ€ ์•„๋‹๊นŒ ์‹ถ๋‹ค.

์€ํ–‰ ์ „์ฒด๊ณ„์ขŒ์กฐํšŒ API Renewal. ์˜ค์Šฌ๋กœ

https://if.kakao.com/session/109

์€ํ–‰์—๋Š” ๊ณ„์ •๊ณ„๋ผ๊ณ  ์ฐ ํ•ต์‹ฌ OLTP๊ฐ€ ์žˆ๊ณ , ์ด๊ฑธ ๊ฐ€์ง€๊ณ  ๊ณ ๊ฐ์—๊ฒŒ ๋ณด๋‚ด์ฃผ๋Š” ๋ ˆ์ด์–ด๊ฐ€ ์žˆ๋Š”๋ฐ ๊ณ„์ขŒ ์กฐํšŒ ๊ฐ™์€ ๊ฒƒ์€ ๊ณ„์ •๊ณ„๊ฐ€ ์ž ์‹œ ์ค‘๋‹จ๋˜์–ด๋„ ๊ฐ€๋Šฅํ•˜๋„๋ก Consistentํ•œ Read-only ๋ ˆ์ด์–ด๋ฅผ ๊ตฌ์ถ•ํ•˜์‹  ๋‚ด์šฉ.

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

์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๋ ˆ๋””์Šค ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์ถ•๊ธฐ

https://if.kakao.com/session/52

stateless ์•ฑ๋“ค์ด์•ผ ์ด์ œ k8s ๋•Œ๋ฌธ์— ํ™•์žฅ์ด ๋„ˆ๋ฌด ์‰ฝ์ง€๋งŒ ๋ ˆ๋””์Šค๋Š” ๊ทธ๋ƒฅ ์Šค์ผ€์ผ์„ ๊ณ ์ •ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ์€๋ฐ, ๋ฐœํ‘œ์ž๋‹˜์€ ์ง์ ‘ ์˜คํผ๋ ˆ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜ ๋งŒ๋“œ์…”์„œ ์นด์นด์˜ค TV์—์„œ ์“ฐ์ด๋Š” ๋ ˆ๋””์Šค ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์˜จ๋ผ์ธ์œผ๋กœ ์Šค์ผ€์ผ ์ธ/์•„์›ƒํ•˜์‹ ๋‹ค๊ณ  ํ•œ๋‹ค (AWS์—์„œ ElasticCache์—์„œ ๋…ธ๋“œ ๋”ํ•˜๋Š” ๋Š๋‚Œ์œผ๋กœ). ์‚ฌ์‹ค ์ด๊ฑฐ๋Š” ๋” ์ „์‚ฌ/์ธํ”„๋ผ์ ์ธ ๋ ˆ๋ฒจ์—์„œ ์ œ๊ณต/๊ด€๋ฆฌํ•ด์•ผํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ง์ ‘ ๋งŒ๋“œ์…”์„œ ๋ฌธ์ œ์—†์ด ์„œ๋น„์Šค์—์„œ ์“ฐ์‹œ๋Š” ๊ฒƒ์ด ์ฐธ ๋Œ€๋‹จํ•˜์‹œ๋‹ค๊ณ  ๋Š๊ผˆ๋‹ค.

์Šค๋งˆํŠธ ๋ฉ”์‹œ์ง€ ์„œ๋น„์Šค ๊ฐœ๋ฐœ๊ธฐ

https://if.kakao.com/session/22

๊ด‘๊ณ ๋ฅผ ์นดํ†ก ๋ฉ”์‹œ์ง€๋กœ ๋ณด๋‚ด๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐœํŽธํ•˜๋ฉด์„œ ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“œ์…จ๋‹ค๊ณ  ํ•œ๋‹ค. ์žฌ๋ฐŒ์—ˆ๋˜ ํฌ์ธํŠธ๋งŒ ๋ช‡ ๊ฐœ ์ •๋ฆฌํ•˜๋ฉด

  1. ์ผ๋‹จ golang์œผ๋กœ ์ž‘์„ฑํ•˜์…จ๋˜ ๋ถ€๋ถ„. ํ”ํžˆ ๋Œ€๊ธฐ์—… ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๋‚˜๋ผ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ž๋ฐ” ์Šคํ”„๋ง ์œ„์ฃผ์˜ ๊ฒฝ๋ ฅ์„ ์Œ“๋Š”๋‹ค๋Š” ์ธ์‹์ด ๋งŽ์€๋ฐ ์ด๋ ‡๊ฒŒ ์Šคํ”„๋ง์„ ์•ˆ ์“ฐ๋Š” ์‚ฌ๋ก€๊ฐ€ ๋งŽ์ด ๋ฐœํ‘œ๋˜๋ฉด ๋‹ค์–‘์„ฑ์— ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์•„์˜ˆ โ€˜์Šคํ”„๋ง ๊ณตํ™”๊ตญ ํƒˆ์ถœ๊ธฐโ€™๋ผ๋Š” ์ œ๋ชฉ์˜ ๋ฐœํ‘œ๋„ ์žˆ์—ˆ๋Š”๋ฐ ๋ฒŒ์จ ์œ ์ง€๋ณด์ˆ˜ ์ƒ๊ฐ์ด ๋“œ๋‹ˆ ๋‚ด๊ฐ€ ์ด์ œ ๊ผฐ๋Œ€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋œ ๊ฒƒ ๊ฐ™๋‹ค.
  2. ์˜ˆ์•ฝ ์Šค์ผ€์ฅด๋ง์„ ์œ„ํ•ด Rabbit MQ๋ฅผ ์‚ฌ์šฉํ•˜์‹  ๋ถ€๋ถ„ (์ด๊ฑด RabbitMQ๊ฐ€ ์ž˜ํ•œ๋‹ค)
  3. ์นดํ”„์นด ์ŠคํŠธ๋ฆผ์„ ์ด์šฉํ•ด์„œ ํ•„ํ„ฐ/์กฐ์ธ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜์‹  ๋ถ€๋ถ„. ์˜ˆ์ œ๋Š” ๋งŽ์ด ๋ดค์–ด๋„ ์‹ค์ œ ์“ฐ์ด๋Š” ์‚ฌ๋ก€๋Š” ๋ณ„๋กœ ๋ณด์ง€ ๋ชปํ•ด์„œ ๋ฐ˜๊ฐ€์› ๋‹ค.

Published Nov 21, 2021

If I keep marking the dots, someday they will ๐Ÿ”—๐Ÿ”—