Elasticsearch๋ฅผ ์ด์ฉํ ์ง๋ฅํ B2B ๊ณต๊ธ์ ์ฒด ๊ฒ์ ์์ง
ํด๋น ๋ฒค๋ ํ๋ซํผ์ ์์ฒ ๊ฐ์ ํด์ธ ๊ณต๊ธ์ ์ฒด๋ฅผ ๋์์ผ๋ก ๋ณต์กํ ๋ค๋ฉด ๊ฒ์ ์ฟผ๋ฆฌ๋ฅผ 1์ด ๋ฏธ๋ง์ ์๋ต ์๊ฐ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ๊ณ ์ฑ๋ฅ ๊ฒ์ ์์ง์ ํ์๋ก ํ์ต๋๋ค.
ํ๋ก์ ํธ ์๋ดํ๊ธฐ
๊ณผ์
๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฟผ๋ฆฌ๋ ๊ฒ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ ์ ์์์ต๋๋ค:
- ๋ฒค๋๋น 80๊ฐ ์ด์์ ํ๋์ ๊ฑธ์น ์ ์ฒด ํ ์คํธ ๊ฒ์์ SQL๋ก๋ ๋๋ฌด ๋๋ ธ์ต๋๋ค.
- ์ฐ์ ์์ ๊ธฐ๋ฐ ์์๋ ๋ฐ์ดํฐ ์์ ์ฑ๊ณผ ๊ฒ์ฆ์ ๊ณ ๋ คํด์ผ ํ์ต๋๋ค.
- ์์ ๋ฏธ๋์ด ์กด์ฌ ์ฌ๋ถ๋ 1๊ธ ์์ฑ์ผ๋ก ๊ฒ์ ๊ฐ๋ฅํด์ผ ํ์ต๋๋ค.
- ํผ์ง ๋งค์นญ๊ณผ ์คํ ํ์ฉ์ ํด์ธ ๊ณต๊ธ์ ์ฒด ์ด๋ฆ์ ํ์์ ์ด์์ต๋๋ค.
- ์นดํ ๊ณ ๋ฆฌ ๋ฐ ์์น ๊ณ์ธต์ ํจ์ฏ ๊ฒ์ ๊ธฐ๋ฅ์ ์๊ตฌํ์ต๋๋ค.
์ฐ๋ฆฌ์ ์๋ฃจ์
์ฐ๋ฆฌ๋ ๋ฒค๋ ๊ฒ์์ ์ํด ์ฐ์ ์์ ๊ธฐ๋ฐ ์ธ๋ฑ์ฑ, ๋ค์ค ํ๋ ๊ฒ์ ๋ฐ ์ง๋ฅํ ์์ ์ง์ ์ ํฌํจํ๋ ๋ง์ถคํ Elasticsearch ํตํฉ์ ๊ตฌํํ์ต๋๋ค.
์ํคํ ์ฒ
- ๊ฒ์ ์์ง: ๋ฒค๋, ์นดํ ๊ณ ๋ฆฌ, ์์ ๋ฏธ๋์ด์ฉ ๋ง์ถค ๋งคํ์ ํฌํจํ Elasticsearch
- ๋ฐ์ดํฐ ๊ณ์ธต: ์ง์ค์ ์์ฒ(source of truth)์ผ๋ก์ TypeORM/PostgreSQL, Elasticsearch์ ๋๊ธฐํ
- API ๊ณ์ธต: Elasticsearch ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ๋ Node.js/Express
- ํ๋ก ํธ์๋: ์ค์๊ฐ ์ ๋ ฅ ์ค ๊ฒ์ ๊ธฐ๋ฅ์ ๊ฐ์ถ React
- ๋ถ์: ๊ฒ์ ํ๋ ์ถ์ ์ ์ํ PostHog
๊ฒ์ ๊ธฐ๋ฅ
- ๋ค์ค ํ๋ ๊ฒ์ - ๋ฒค๋ ์ด๋ฆ, ์ค๋ช , ๋ธ๋๋, ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋์์ ์ฟผ๋ฆฌ
- ์์ ๋ฏธ๋์ด ํํฐ๋ง - ํน์ ํ๋ซํผ์์์ ์กด์ฌ ์ฌ๋ถ๋ก ๋ฒค๋ ๊ฒ์
- ์นดํ ๊ณ ๋ฆฌ ํจ์ฏ - ์ ํ ์นดํ ๊ณ ๋ฆฌ ๊ณ์ธต์ ํตํด ์์ธ ๊ฒ์
- ์์น ํํฐ๋ง - ๊ตญ๊ฐ, ์ง์ญ ๋๋ ๋์๋ณ ๊ฒ์
- ์ฐ์ ์์ ์์ - ๊ฒ์ฆ๋๊ณ ๋ฐ์ดํฐ๊ฐ ์์ ํ ๋ฒค๋๊ฐ ๋ ๋์ ์์๋ก ํ์
- ํผ์ง ๋งค์นญ - ์คํ ๋ฐ ๊ตญ์ ์ด๋ฆ ๋ณํ ์ฒ๋ฆฌ
์ฃผ์ ๊ธฐ๋ฅ
- ๋ง์ถคํ ์ธ๋ฑ์ค ๋งคํ - ๋ฒค๋, ์นดํ ๊ณ ๋ฆฌ ๋ฐ ์์ ๋ฏธ๋์ด ๋ฐ์ดํฐ์ ์ต์ ํ๋ ์คํค๋ง
- ์ค์๊ฐ ๋๊ธฐํ - ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณ๊ฒฝ ์ฌํญ์ด ๋ช ์ด ๋ด์ ๊ฒ์์ ๋ฐ์
- ๊ฒ์ ๋ถ์ - ์ธ๊ธฐ ์ฟผ๋ฆฌ, ๊ฒ์ ๊ฒฐ๊ณผ ์์ ์ฟผ๋ฆฌ ๋ฐ ํด๋ฆญ๋ฅ ์ถ์
- ๋๋ ์ธ๋ฑ์ฑ - ๋๊ท๋ชจ ๋ฒค๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ํ ํจ์จ์ ์ธ ๋ฐฐ์น ์ธ๋ฑ์ฑ
- ๊ฐ์ค์น ๋ถ์ฌ ์ ์ - ํ๋ ์ค์๋์ ๋ฐ๋ฅธ ๊ตฌ์ฑ ๊ฐ๋ฅํ ๊ด๋ จ์ฑ ์ ์
๊ฒฐ๊ณผ
๊ธฐ์ ์คํ
caseStudyDetail.more ์ฌ๋ก ์ฐ๊ตฌ
๋ ๋ง์ ๊ธฐ์ ๊ตฌํ ์ฌ๋ก๋ฅผ ์ดํด๋ณด์ธ์
AI ๊ธฐ๋ฐ ๊ณต๊ธ์ ์ฒด ๋ฐ๊ตด ๋ฐ ์์ฑ ํ๋ซํผ
์ ์์๊ฑฐ๋ ๊ธฐ์ ๊ณผ ์์ ์ ์๋ค์ Alibaba์ ๊ฐ์ B2B ๋ง์ผํ๋ ์ด์ค์์ ์๋์ผ๋ก ๊ฒ์ํ๋ ๊ณผ์ ์ ๋์ฒดํ์ฌ ๊ตญ์ ๊ณต๊ธ์ ์ฒด๋ฅผ ๋ฐ๊ตด, ํ๊ฐ, ๊ด๋ฆฌํ ์ ์๋ ์ง๋ฅํ ํ๋ซํผ์ด ํ์ํ์ต๋๋ค.
OCR ๋ฐ QuickBooks ์ฐ๋์ ํตํ AI ๊ธฐ๋ฐ ์ก์ฅ ์ฒ๋ฆฌ
๋งค์ ์๋ฐฑ ๊ฑด์ ๊ณต๊ธ์ ์ฒด ์ก์ฅ์ ์ฒ๋ฆฌํ๋ ์ค๊ฒฌ ๊ธฐ์ ์ AI/OCR์ ์ฌ์ฉํ์ฌ ์ก์ฅ ๋ฐ์ดํฐ๋ฅผ ์๋์ผ๋ก ์ถ์ถํ๊ณ ์ด๋ฅผ QuickBooks์ ์ง์ ๋๊ธฐํํ์ฌ ์ฅ๋ถ ์ ๋ฆฌ ๋ฐ ์ง๊ธ ์ถ์ ์ ํจ์ผ๋ก์จ ์๋ ๋ฐ์ดํฐ ์ ๋ ฅ์ ์์ ์ผ ํ์ต๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
MicrocosmWorks๋ ๋ถ๋ถ ์ผ์น๋ฅผ ์ํ edge n-gram tokenization, ์ฐ์ ์ฉ์ด๋ฅผ ์ํ synonym dictionaries, ๊ทธ๋ฆฌ๊ณ ์ ํํ ๋ถํ ๋ฒํธ ์กฐํ๋ฅผ ์ํ ์ ์ฉ keyword field๋ฅผ ๊ฒฐํฉํ custom analyzers๋ก Elasticsearch๋ฅผ ๊ตฌ์ฑํ์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ํตํด ๊ตฌ๋งค์๊ฐ ๊ณต๊ธ์ ์ฒด ์นดํ๋ก๊ทธ์ ์๋ ๊ฒ๊ณผ ๋ค๋ฅธ ์ฉ์ด๋ฅผ ์ฌ์ฉํ๋๋ผ๋ ๊ด๋ จ์ฑ ๋์ ๊ณต๊ธ์ ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค.
MicrocosmWorks๋ ์ฐ์ ๋ถ์ผ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฌ ๋ ธ๋์ ๊ฑธ์ณ ๊ณต๊ธ์ ์ฒด ๋ฌธ์๋ฅผ ๋ถ์ฐํ๋ ์ค๋ฉ ์ ๋ต์ผ๋ก Elasticsearch ํด๋ฌ์คํฐ๋ฅผ ์ค๊ณํ์ฌ ์ฌ์ธ๋ฑ์ฑ ์์ด ์ํ ํ์ฅ์ ๊ฐ๋ฅํ๊ฒ ํ์ต๋๋ค. ์ด ์ํคํ ์ฒ๋ ์ง๋ฆฌ์ ๋ถ์ฐ์ ์ํ ํฌ๋ก์ค ํด๋ฌ์คํฐ ๊ฒ์์ ์ง์ํ๋ฉฐ, ์๋ฐฑ๋ง ๊ฐ์ ๊ณต๊ธ์ ์ฒด ๊ธฐ๋ก์์๋ 200ms ๋ฏธ๋ง์ ์ฟผ๋ฆฌ ์๋ต ์๊ฐ์ ์ ์งํฉ๋๋ค.
๋ค, MicrocosmWorks๋ ๊ทผ์ ์ฑ, MOQ ์ ํฉ์ฑ, ๋ฆฌ๋ ํ์, ์ธ์ฆ ์๊ฑด, ๊ทธ๋ฆฌ๊ณ ๊ณผ๊ฑฐ ๊ฑฐ๋ ๋ด์ญ์ ๋ํ ๊ตฌ๋งค์ ์ ์ ๊ฐ์ค์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ณต๊ธ์ ์ฒด ์์๋ฅผ ๋์ ์ผ๋ก ํฅ์์ํค๋ ํจ์ ์ค์ฝ์ด ์ฟผ๋ฆฌ๋ฅผ ๊ตฌํํ์ต๋๋ค. ๊ตฌ๋งค์๋ ์์ ์ ๊ฐ์ค์น ํ๋กํ์ ์ ์ฅํ๊ณ ์ผ๊ด๋ ์์ฑ ์ ํธ๋๋ฅผ ์ํด ๊ฒ์ ์ ๋ฐ์ ๊ฑธ์ณ ์ ์ฉํ ์ ์์ต๋๋ค.
MicrocosmWorks๋ PostgreSQL ์์ค ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋ Debezium์ ์ฌ์ฉํ์ฌ ๋ณ๊ฒฝ ๋ฐ์ดํฐ ์บก์ฒ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ผ๋ฉฐ, Kafka๋ฅผ ํตํด ๊ณต๊ธ์ ์ฒด ๋ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ Elasticsearch๋ก ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ์คํธ๋ฆฌ๋ฐํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ผ๊ด ์ฌ์ธ๋ฑ์ฑ ์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ช ์ด ์ด๋ด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ํ๋๋ก ๋ณด์ฅํฉ๋๋ค.
MicrocosmWorks๋ Elasticsearch ๊ธฐ๋ฐ ๊ฒ์ ์๋ฃจ์ ์ ์๊ฐ๋น $20-$45์ ์์จ๋ก ์ ๊ณตํ๋ฉฐ, ์ฌ์ฉ์ ์ง์ ๋ถ์๊ธฐ, ๊ด๋ จ์ฑ ํ๋, ํจ์ฏ ํํฐ๋ง ๋ฐ CDC ํ์ดํ๋ผ์ธ์ ํฌํจํ๋ ์ ์ฒด B2B ๊ณต๊ธ์ ์ฒด ๊ฒ์ ์์ง์ ์ผ๋ฐ์ ์ผ๋ก 350-550 ๊ฐ๋ฐ ์๊ฐ์ด ์์๋ฉ๋๋ค. Elasticsearch ์ธํ๋ผ ์์ฒด๋ AWS์์ ์ ์ฝ $500๋ถํฐ ์์ํ๋ 3๋ ธ๋ ํด๋ฌ์คํฐ์์ ๋น์ฉ ํจ์จ์ ์ผ๋ก ์คํ๋ฉ๋๋ค.
๋น์ฆ๋์ค ํ์ ์ ์์ํ ์ค๋น๊ฐ ๋์ จ๋์?
๊ทํ์ ๊ณผ์ ์ ์ ์ฌํ ์๋ฃจ์ ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ ผ์ํด ๋ณด๊ฒ ์ต๋๋ค.