์์ฆ์ ์ด ๋ธ๋ก๊ทธ์ ๊ธ์ ์ ์ฐ์ง ์์ง๋ง ๊ทธ๋๋ ํ๊ณ ๋ ๋จ๊ฒจ์ผ ํ ๊ฒ ๊ฐ์์ ์ค๋๋ง์ ์๋ํฐ๋ฅผ ์ผฐ๋ค.
์ฌ 5์์ ๋ค์ด๋ฒ๋ฅผ ํด์ฌํ๊ณ ์ฟ ํก์ ์ ์ฌํ๋ค.
์ / ์ด๋ป๊ฒ ์ด์ง์ ํ๋๋ฅผ ์ฐ๋ ค๋ฉด ๋๋ฌด ๊ธธ๊ฒ ์ง๋ง, ๊ทธ๋๋ ์ด๋ ์ ๋ ์๊ฐ์ด ์ง๋์ ์๊ฐํด๋ณด๋ ๋งํฌ์ ์ ์ํ๋ฉด์ ๋ฆฌ์กํธ๋ ๋ ธ๋๋ ์ ์์์ผ ๋๊ณ , ์คํ๋ง๋ ์ข ์ฐ๊ณ (๊ทผ๋ฐ WebFlux, Kotlin ์ ์ฐ๋๊น ์๋ ์ฌ๋ ๊ฐ๊ณ ), ๋ฌด๊ฑฐ์ด ๋ฐฐ์น๋ ์คํํฌ๋ก ์ง๋ ๋ฑ๋ฑ ์๋น์ค ๊ฐ๋ฐ์์๊ฒ ์๊ตฌ๋๋ ๊ฒ์ด ๋๋ฌด ๋ง์ ๋ฐ๋ฉด์ ์ด๋ ๊ฒ ์ด๊ณณ ์ ๊ณณ์ ์คํฏ์ ์ฐ๋ ๊ฒ์ด ๋ง๋ ์ถ์๋ ๊ฒ์ด ์ ์ผ ์ปธ๋ ๊ฒ ๊ฐ๋ค. ๋ฌผ๋ก ์ ๋๋ดํ SWE๋ฉด ๋ค ์ด๋ ์ ๋ ํ ์ค ์์์ผ ํ๋ ๊ฒ์ด ๋ง์ง๋ง, ๋งํฌ์ ์ ๋ชปํ๋ ํ์คํ์ ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํ๊ณ ์ง๊ธ ์ํ์์ ๋งํฌ์ ์ ๋ ๋ฐฐ์ฐ๊ธฐ๋ณด๋ค๋ ์ข ๋ ๋ฐฑ์๋ ์ชฝ์ผ๋ก ์ง์คํด์ ๊ฒฝํ์ ์๊ณ ์ถ์๋ค. ์ฌ์ค ์ฌ๊ธฐ๊น์ง๋ง ๋๊ณ ๋ณด๋ฉด ํ์ฌ ์์์ ํ์ ์ฎ๊ฒจ๋ ์ถฉ๋ถํ๊ธฐ๋ ํ์ง๋ง ๊ธฐ์ ํ์ ์ฎ๊ธฐ๋ ๊น์ ๋ค๋ฅธ ํ์ฌ ๋ฌธํ๋ ์ข ๊ฒฝํํด๋ณด๊ณ ์ถ์๋ ๋ง์์ด ์ปธ๋ค.
๊ตฌ์ง ๊ณผ์ ์์ ๋ด๊ฐ ๋งํฌ์ ์ ์ ๋ชปํ๋ ๋ชจ์ค๋ํ๊ฒ ํ๋ก ํธ์๋๋ฅผ ํ๋ ํ์ฌ๋ค์ ์ธ ์๊ฐ๋ ์ํ๋ค. ์๋ฒ ๊ฐ๋ฐ์(?)๋ก ๋ค๋ฅธ ํ์ฌ๋ฅผ ์์๋ณผ ์๋ ์์์ ๊ฒ ๊ฐ๊ธฐ๋ ํ๋ฐ ํ์ฌ ํ/ํ์ฌ ํฌ์ง์ ์ ๋ํด์๋ ์ง์ธ ๋ํ์ ์ด๋ ์ ๋ ํ์ ์ ํ ์ ์์๋ ๋ฐ๋ฉด์ ๋ค๋ฅธ ํ์ฌ์ ๋ํด์๋ ๊ทธ๋ฌ์ง ๋ชปํ์ด์ ๊ทธ๋ฅ ์ง๊ธ ํ์ฌ๋ง ํ๋ก์ธ์ค๋ฅผ ์งํํด์ ์ด์ง์ ํ๊ฒ ๋์๋ค. ์ฟ ํก์ ๊ธฐ๋ํ๋ ๊ฒ์ ๋ฏธ๊ตญ๋ง ์์ง๋์ด๋ง์ด์๊ณ ํ์คํ ๋ฏธ๊ตญ๋ง์ด ๋๊ธฐ๋ ํ๋ฐ ์ ํ์ฌ์ ๋นํด์ ์ฅ/๋จ์ ์ด ๋์์ ์กด์ฌํ๋ ๊ฒ ๊ฐ๋ค.
์๋ก์ด ํ์ ๊ด๊ณ ์ ์ฐ๊ด์ฑ์ ๊ฐ์ ํ๋ ๊ฒ์ด ์ฃผ ์ ๋ฌด์ด๋ค. ์์ ํ์์๋ ๋ด๊ฐ ๊ด๊ณ ์๋ฒ๋ฅผ ํธ์ถํ๋ค๋ฉด ์ด์ ๋ ๊ด๊ณ ์๋ฒ ์์์ ranking funnel์ ๊ณ์ํด์ ๊ฐ์ ํด๋๊ฐ๋ ๊ฒ์ด ์ฃผ ์ ๋ฌด๊ฐ ๋์๋ค. ์ฐ๊ด์ฑ์ด๋ผ๋ ๊ฒ์ ์ด๋ป๊ฒ ๊ฐ์ ํด์ผ ์ข์์ง ์์ง๋ ์ ๋ชจ๋ฅด๊ฒ ์ง๋ง ์ผ๋จ ์ฌํด๋ ์ธก์ ์ ๋๋ ๋๊ตฌ์๋ ์ข ๊ธฐ์ฌํ๊ณ , ์ฐ๊ด์ฑ์ ์ธก์ ํ๋ ๋ชจ๋ธ๋ ๋ง๋ค์ด์ ๋ฃ์ด๋ณด๊ณ , ๋งค๋ด์ผํ ์ค์ ๋ ๋ฃ์ด๋ณด๊ณ ์ด๊ฒ์ ๊ฒ ๋ค์ํ ์๋๋ฅผ ํ๋ ๊ฒ ๊ฐ๋ค. UI๋ฅผ ๋ง๋ค๊ณ API๋ฅผ ๋ง๋๋ ์ผ์ ๊ทธ๋๋ ์ด๋์ ๋ progress๊ฐ steadyํ๋๋ฐ ์ด์ชฝ์ ๋ญ๊ฐ ์ข์์ง ์คํํด๋ณด๊ธฐ ์ ์๋ ์ ๋ชจ๋ฅด๋ ๊ฒ์ด ์ฐธ ์ด๋ ค์ด ๊ฒ ๊ฐ๋ค. ๋์ ์ ๋ญ๊ฐ ์ ๋์๊ฐ ๋ ์ํฉํธ๋ ๊ฝค ํฐ ๊ฒ ๊ฐ์์ ๋๋ฆ ๋งค๋ ฅ์ด ์๋ ์ง๋ฌด๋ผ๊ณ ์๊ฐํ๋ค. ๋ค๋ฅธ ๋ถ๋ค์ ์ฑ๊ณต์ ์ธ ์คํ์ ๋ณด๋ฉด ๋๋ ์ ๋ง ์๊ฐ์ง๋ ๋ชปํ ์ง์ ์์ ๊ธฐํ๋ฅผ ์ก์์ ์ฑ๊ณผ๋ฅผ ๋ด์ ๋ค.
์ฌ์ค ๋๋ ํ์ฌ ๋ฆฌ์กํธ/๋ ธ๋ ๊ฐ๋ฐ์๋ผ๊ณ ํ๊ธฐ๋ ์ ๋งคํ๊ณ , ๊ฒ์ ๊ฐ๋ฐ์๋ผ๊ณ ํ๊ธฐ๋ ์ ๋งคํ ์ํ์ธ๋ฐ ์ด๊ฑด ๋ถ์ผ๋ฅผ ์ฝ๊ฐ ๋ฐ๊ฟจ์ผ๋ ์ด์ฉ ์ ์๋ ์ผ์ด๋ค. ํํ ์ด์ง์ ํ๋ฉด ๋ด๊ฐ ์ ๋ฌด๋ฅผ ์ํ๋์ง ๊ฐ๋ฐ์ ์ํ๋์ง ์ ์ ์๊ฒ ๋๋ค๊ณ ํ๋๋ฐ ์ ๋ง ๋ง๋ ๋ง์ด๋ค. ์ต์ํ๋ ์ฌ๋ด ์ธํ๋ผ/๋ด๋น์/์ฝ๋๋ฒ ์ด์ค๊ฐ ์น ๋ ์๊ฐ ์ํ์์ ์๋ก ์ผ์ ์์ํ๊ฒ ๋๋ฉด ๋ด๊ฐ ๋ฌ๋ ์ปค๋ธ๊ฐ ์ข์์ง / ์ ์ข์์ง ์ ์ ์ ์๊ฒ ๋๋ค. ์ฌ๊ธฐ์ ๋ถ์ผ๊น์ง ์ข ๋ฐ๊พธ๋ฉด ์ข ๋ ํ์คํ๋ค^^. ์ด์จ๋ ์ฌํด ์ด๋์ ๋ ์ ๋ฌด/์ฝ๋๋ฒ ์ด์ค์ ์ต์ํด์ก์ผ๋ ๋ด๋ ์๋ ๋ ๋ง์ ๊ธฐ์ฌ๋ฅผ ํ๊ณ , ๋ด๊ฐ ๋ญํ๋ ๊ฐ๋ฐ์์ธ๊ฐ?์ ๋ํด์ ๋ ์์ ์๊ฒ ์๊ธฐ๋ฅผ ํ ์ ์์ผ๋ฉด ์ข๊ฒ ๋ค.
์ฌํด๋ ๋ฆฌํธ์ฝ๋๋ฅผ ๋ง์ด ํ์ง๋ ์์๊ณ , ๋์ ์ ๊ฒ์/๋ญํน์ ๋ํด์ ํํ์ด ๊ณต๋ถ๋ฅผ ํ๋ ๊ฒ ๊ฐ๋ค. ์์ ์๋ ๊ฒ์ํ๋ฉด ๊ทธ๋ฅ ES์ ๋์ง๋ฉด ๋ญ๋ผ๋ ๋์ค์ง ์์๊น?ํ์๋๋ฐ ์ด์ ๋ ์งง์ ์๊ฐ ์์ query rewrite -> candidate generation -> ranking1 -> .. -> rankingN ๋ฑ ๋ค์ํ ๋จ๊ณ๊ฐ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๊ณ , ๊ด๋ จํด์ ํ์ดํผ๋ ๊ณ์ ๋์์ ์ด๊ฑฐ๋ ์ง์ง ๋์ด ์๊ตฌ๋ ๋๊ผ๋ค. ์ฌ์ค ์ด๋ ์ ๋ ์ฌ์ด์ฆ๊ฐ ๋๋ฉด ์ฑ๋ฅ์ 0.1%๋ง ๊ฐ์ ํด๋ ๋์ผ๋ก ์น๋ฉด ์ง์ง ์ปค๊ฐ์ง๊ณ ์ฐ๋ฆฌ๋ณด๋ค ๋ ํฐ ํ์ฌ๋ค์ ํฌ์์ ์ฐ๊ตฌ๋ฅผ ๊ณ์ ํ๋ ๊ฒ์ด ์ ์์ด๋ค.
์์ cutting-edge๋ ์๋์ด๋ ๊ทธ๋๋ ๋จ๋ค์ ๋ญ ํด์ ์ฌ๋ฏธ๋ฅผ ๋ดค๋ค๋๋ผ๋ฅผ ์ ํ๋ก์ํ๊ณ ํ์ฌ ๋ด ์์ ์๋ ์ฐ๋ฆฌ ํ์ฌ ๋ฌธ์ ์ ์ ์ ํ ์ ์ฉ์ ํด์ ์ฑ๊ณผ๋ฅผ ๋ด๋ ๊ฒ์ด ์ข์ ์์ง๋์ด์ ๋๋ชฉ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๊ทธ๋๋ ํ์ดํผ๋ฅผ ์ด๊ฒ ์ ๊ฒ ๋ง์ด ์ฝ์ ๊ฒ ๊ฐ์๋ฐ ์ข์ ๊ฒ์ ์ง๊ธ ์ถ๋ฆฌ๋ ค๋ ์๊ฐ์ด ๋์ง ์๋๋ค -_-;; (https://github.com/eugeneyan/applied-ml#searchโranking ๊ฒฐ๊ตญ ์ด๋ฐ ๋ฆฌ์คํธ๋ ๊ฒน์น๋ ๊ฒ์ด ๋ง๋ค). ๋ด๋
์๋ ๋ธ๋ก๊ทธ์ ์ข ์ ๋ฆฌ๋ฅผ ํด๊ฐ๋ฉด์ ์ฝ์ด์ผ ๊ฒ ๋ค. ์ฌ์ค ์ผ์์๋ ํ์ฌ ๋์๊ฐ๋ ์์คํ
์ ๊น์ด ์ดํดํ๊ณ ๊ด์ฐฐํ๋ ๊ฒ์ด ๋ ์ค์ํ๋ค๊ณ ์๊ฐํ๊ณ , ์ด๋ฐ ๋จ๋ค์ด ๋ญํ๋
๋ ๋ฑ ๊ต์ ์ ๋ ์ธ ๊ฒ ๊ฐ๋ค.
์ฑ ๋ ๊ฐ๋์ฉ ์ฝ์๋๋ฐ (๋ธ๋ก๊ทธ ์์ฌ ์ฐธ๊ณ ) ๊ฐ์ฅ ๊ด์ฐฎ์๋ 3๊ถ์ ๋ฝ์ผ๋ผ๋ฉด
๋ฅผ ๊ผฝ๊ฒ ๋ค.