Skip to main content

Posts

์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง๊ณผ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ ์ž๋™ํ™”

์™ธ๋ถ€ ๋ฐ์ดํ„ฐ ํฌ๋กค๋ง๊ณผ ๋‹ค๊ตญ์–ด ์ฒ˜๋ฆฌ ์ž๋™ํ™” 1. ๋ฐฐ๊ฒฝ — ์™ธ๋ถ€ ์—ฐ๋™ ๋Œ€์‹  ํฌ๋กค๋ง ์„ ํƒ์˜ ์ด์œ  REINDEERS ํ”Œ๋žซํผ์€ ๊ฐ๊ตญ์˜ ํ‘œ์ค€, ์ธ์ฆ, ๊ด€์„ธ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๊ตฌ์กฐํ™”ํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฐ ๊ธฐ๊ด€์˜ ๊ณต๊ฐœ API๋Š” ์กด์žฌํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ ‘๊ทผ์ด ์ œํ•œ์ ์ด์—ˆ๋‹ค. ํƒœ๊ตญ TISI, ํ•œ๊ตญ UNIPASS, ์ค‘๊ตญ GBํ‘œ์ค€, ๋ง๋ ˆ์ด์‹œ์•„ SIRIM ๋“ฑ์€ ๋ชจ๋‘ ์›น ๊ธฐ๋ฐ˜ HTML ๊ตฌ์กฐ๋งŒ ์ œ๊ณตํ–ˆ๋‹ค. ์ด์— ๋”ฐ๋ผ API ์—ฐ๋™ ๋Œ€์‹  ํฌ๋กค๋ง ๊ตฌ์กฐ๋ฅผ ๋„์ž…ํ–ˆ๋‹ค. ํฌ๋กค๋ง์€ ์ธ์ฆ/ํ‘œ์ค€ ๋ฐ์ดํ„ฐ๋ฟ ์•„๋‹ˆ๋ผ ํ™˜์œจ๊ณผ ํ•ด์šด ์Šค์ผ€์ค„์—๋„ ์ ์šฉ๋˜์—ˆ๋‹ค. ํ™˜์œจ์€ 4๊ฐœ ์€ํ–‰(๋ฐฉ์ฝ•์€ํ–‰, ํ•˜๋‚˜์€ํ–‰, ์ค‘๊ตญ์€ํ–‰, ๋ฉ”์ด๋ฑ…ํฌ)์—์„œ ๋งค์ผ ์ˆ˜์ง‘๋˜๋ฉฐ, ํ•ด์šด ์Šค์ผ€์ค„์€ HMM, KMTC, SM Line ์„ธ ๊ฐœ ์„ ์‚ฌ์—์„œ ํฌ๋กค๋ง๋œ๋‹ค. ์ด ๋ชจ๋“  ์™ธ๋ถ€ ๋ฐ์ดํ„ฐ๊ฐ€ ํ”Œ๋žซํผ์˜ ๊ฐ€๊ฒฉ ๊ณ„์‚ฐ, ๋ฌผ๋ฅ˜ ์ผ์ •, ์ธ์ฆ ๊ฒ€์ฆ์˜ ๊ธฐ์ดˆ๊ฐ€ ๋œ๋‹ค. 2. ๊ตญ๊ฐ€๋ณ„ ์Šคํฌ๋ž˜ํผ ์•„ํ‚คํ…์ฒ˜ ํฌ๋กค๋Ÿฌ๋Š” ๊ตญ๊ฐ€๋ณ„๋กœ ๋…๋ฆฝ์ ์ธ ์„ค์ •์„ ๊ฐ€์ง„๋‹ค. ๊ฐ ํฌ๋กค๋Ÿฌ๋Š” Cloud Function์—์„œ ์ฃผ๊ธฐ์ ์œผ๋กœ ํ˜ธ์ถœ๋˜๋ฉฐ, ์ˆ˜์ง‘ ์ฃผ๊ธฐ๋Š” ๋ฐ์ดํ„ฐ์˜ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. ํ™˜์œจ ๋ฐ์ดํ„ฐ๋Š” ๋งค์ผ 1ํšŒ, ํ•ด์šด ์Šค์ผ€์ค„์€ ์›” 1ํšŒ, ์ธ์ฆ ๋ฐ์ดํ„ฐ๋Š” ์ฃผ 1ํšŒ ์ˆ˜์ง‘๋œ๋‹ค. ์Šคํฌ๋ž˜ํผ๋Š” ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ์„ค๊ณ„๋˜์–ด ์žˆ๋‹ค. ์ตœ์ƒ์œ„์— ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค(Scraper Layer)๊ฐ€ ์žˆ๊ณ , ๊ทธ ์•„๋ž˜์— ๊ตญ๊ฐ€๋ณ„ ๊ตฌํ˜„์ด ์กด์žฌํ•œ๋‹ค. ๊ณตํ†ต ์ธํ„ฐํŽ˜์ด์Šค๋Š” HTTP ์š”์ฒญ, ์‘๋‹ต ํŒŒ์‹ฑ, ๋ฐ์ดํ„ฐ ์ •๊ทœํ™”, ์—๋Ÿฌ ํ•ธ๋“ค๋ง์˜ ํ‘œ์ค€์„ ์ •์˜ํ•œ๋‹ค. ๊ตญ๊ฐ€๋ณ„ ๊ตฌํ˜„์€ ํ•ด๋‹น ์‚ฌ์ดํŠธ์˜ HTML ๊ตฌ์กฐ์™€ ์ธ์ฆ ๋ฐฉ์‹์— ๋งž์ถฐ ๊ตฌ์ฒด์ ์ธ ํŒŒ์‹ฑ ๋กœ์ง์„ ๋‹ด๋‹นํ•œ๋‹ค. # Scraper architecture example class BaseScraper: def fetch(self, url): ... def parse(self, html):...

MQ + Redis ๊ธฐ๋ฐ˜ ๊ธ€๋กœ๋ฒŒ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๊ตฌ์กฐ

MQ + Redis ๊ธฐ๋ฐ˜ ๊ธ€๋กœ๋ฒŒ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๊ตฌ์กฐ 1. ๋ฌธ์ œ ์ธ์‹ — ๋‹ค๊ตญ๊ฐ€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์˜ ๋ณต์žก์„ฑ 8์›” ์ดˆ, ํ™์ฝฉ(HK), ์„œ์šธ(KR), ์ฟ ์•Œ๋ผ๋ฃธํ‘ธ๋ฅด(MY), ๋ฐฉ์ฝ•(TH)์˜ ๋„ค ๊ฐœ ๋ฆฌ์ „์ด ๋™์‹œ์— ์„œ๋น„์Šค๋˜๋ฉด์„œ ๊ฐ€์žฅ ํฐ ๋ฌธ์ œ๋Š” ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์ด์—ˆ๋‹ค. ๊ฐ ๋ฆฌ์ „์˜ Redis ์บ์‹œ์™€ MySQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž„์Šคํƒฌํ”„๋กœ ์—…๋ฐ์ดํŠธ๋˜์–ด, ๋™์ผ ์ƒํ’ˆ์˜ ์žฌ๊ณ  ์ˆ˜๋Ÿ‰, ์„ธ์…˜, ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถˆ์ผ์น˜ํ•˜๋Š” ํ˜„์ƒ์ด ์ž์ฃผ ๋ฐœ์ƒํ–ˆ๋‹ค. ๊ธฐ์กด ๋ณต์ œ(Replication) ๋ฐฉ์‹์€ ์ง€์—ฐ์ด 300~800ms ์ˆ˜์ค€์œผ๋กœ ๋ถˆ์•ˆ์ •ํ–ˆ๊ณ , Redis async replication์€ ํŠธ๋ž˜ํ”ฝ ํ”ผํฌ ์‹œ ๋ณต์ œ ์†์‹ค์ด ๋ฐœ์ƒํ–ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋‹จ์ˆœ ๋ฐ์ดํ„ฐ ๋ณต์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ์ด๋ฒคํŠธ ๋ ˆ๋ฒจ์—์„œ์˜ ๋ณด์ •(Event-level Consistency) ์œผ๋กœ ์ ‘๊ทผํ•ด์•ผ ํ–ˆ๋‹ค. ํŠนํžˆ B2B ๋ฌด์—ญ ํ”Œ๋žซํผ์—์„œ๋Š” ์žฌ๊ณ  ๋ฐ์ดํ„ฐ์˜ ๋ถˆ์ผ์น˜๊ฐ€ ์‹ค์ œ ์ฃผ๋ฌธ ์˜ค๋ฅ˜๋กœ ์ง๊ฒฐ๋œ๋‹ค. ํ•œ ๋ฆฌ์ „์—์„œ ์žฌ๊ณ ๊ฐ€ 0์ธ ์ƒํ’ˆ์ด ๋‹ค๋ฅธ ๋ฆฌ์ „์—์„œ๋Š” ์žฌ๊ณ ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜๋ฉด, ์ฃผ๋ฌธ์ด ์ ‘์ˆ˜๋œ ํ›„ ์ทจ์†Œ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋Š” ๊ณต๊ธ‰์‚ฌ์™€ ๋ฐ”์ด์–ด ์–‘์ชฝ ๋ชจ๋‘์—๊ฒŒ ์‹ ๋ขฐ ๋ฌธ์ œ๋ฅผ ๋งŒ๋“ ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์€ ๋‹จ์ˆœ ๊ธฐ์ˆ  ๊ณผ์ œ๊ฐ€ ์•„๋‹ˆ๋ผ ๋น„์ฆˆ๋‹ˆ์Šค ์‹ ๋ขฐ๋„์˜ ๋ฌธ์ œ์˜€๋‹ค. 2. MQ ํ† ํด๋กœ์ง€ ์„ค๊ณ„ — Topic Exchange์™€ Routing Key ์šฐ๋ฆฌ๋Š” Redis ๋ณต์ œ ๋Œ€์‹  MQ ๊ธฐ๋ฐ˜์˜ "Event-driven Sync" ๊ตฌ์กฐ๋กœ ์ „ํ™˜ํ–ˆ๋‹ค. LavinMQ์˜ Topic Exchange๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฒคํŠธ๋ฅผ ๋ผ์šฐํŒ…ํ•œ๋‹ค. ๊ฐ ๋ฆฌ์ „์˜ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋Š” data.sync ํ† ํ”ฝ์œผ๋กœ ๋ฐœํ–‰๋˜๋ฉฐ, routing key๋Š” data.sync.{source_region}.{data_type} ํ˜•์‹์„ ๋”ฐ๋ฅธ๋‹ค. # Routing key examp...

AI ํ˜‘์—… ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ ์ฝ”๋“œ ์ž๋™ํ™” ์‹œ์Šคํ…œ

AI ํ˜‘์—… ํ™˜๊ฒฝ ๊ตฌ์ถ•๊ณผ ์ฝ”๋“œ ์ž๋™ํ™” ์‹œ์Šคํ…œ 1. AI ํ˜‘์—… ํ™˜๊ฒฝ ๋„์ž… ๋ฐฐ๊ฒฝ 8์›” ์ดˆ, ์ „์ฒด ๊ฐœ๋ฐœ ์†๋„๋Š” ์•„ํ‚คํ…์ฒ˜ ์•ˆ์ •ํ™”์™€ ํ•จ๊ป˜ ๊ธ‰๊ฒฉํžˆ ๋А๋ ค์กŒ๋‹ค. ๋‹ค๊ตญ์–ด ์ฝ”๋“œ๋ฒ ์ด์Šค, ์„œ๋น„์Šค ๊ฐ„ ์ธํ„ฐํŽ˜์ด์Šค ๋ณต์žก๋„, ๋ฆด๋ฆฌ์ฆˆ ๊ฐ„ ์ถฉ๋Œ ๋“ฑ์œผ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•ด์•ผ ํ•  ์˜์—ญ์ด ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์•˜๋‹ค. ๋‹จ์ˆœ ๋ฐ˜๋ณต์ ์ธ ํ…Œ์ŠคํŠธ, ๋ฆฌ๋ทฐ, ๋นŒ๋“œ ์ž‘์—…์„ ์‚ฌ๋žŒ ๋Œ€์‹  AI์—๊ฒŒ ๋งก๊ธฐ๊ธฐ๋กœ ํ–ˆ๋‹ค. ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค. AI๊ฐ€ ์ฝ”๋“œ ๋ฌธ๋งฅ์„ ์ดํ•ดํ•˜๊ณ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์š”์•ฝ ๋ฐ ๋ฆฌ๋ทฐ CI/CD ํŒŒ์ดํ”„๋ผ์ธ๊ณผ ์ง์ ‘ ์—ฐ๋™ํ•˜์—ฌ ์ฝ”๋“œ ํ’ˆ์งˆ ํ‰๊ฐ€ Prompt Repository๋ฅผ ํ†ตํ•œ ์ฝ”๋“œ ์ˆ˜์ • ์ž๋™ํ™” Telegram์„ ํ†ตํ•œ ๋นŒ๋“œ/๋ฐฐํฌ ๋ช…๋ น ๋ฐ ์ƒํƒœ ๋ณด๊ณ  ํ•ต์‹ฌ ์›์น™์€ ํ•˜๋‚˜์˜€๋‹ค. AI๋Š” ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜์ •ํ•˜์ง€๋งŒ, ์ตœ์ข… ๋ณ‘ํ•ฉ๊ณผ ๋ฐฐํฌ๋Š” ๋ฐ˜๋“œ์‹œ ์‚ฌ๋žŒ์ด ์Šน์ธํ•œ๋‹ค. ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋„ AI๊ฐ€ ๋‹จ๋…์œผ๋กœ ํ”„๋กœ๋•์…˜์— ์ฝ”๋“œ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ์ผ์€ ์—†๋„๋ก ์„ค๊ณ„ํ–ˆ๋‹ค. ์ด ์›์น™์€ ์ดํ›„ ๋ชจ๋“  ์ž๋™ํ™” ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ์ „์ œ๊ฐ€ ๋˜์—ˆ๋‹ค. 2. ํ™˜๊ฒฝ ๊ตฌ์„ฑ — Cursor & Claude Code ๊ธฐ๋ฐ˜ ๊ฐœ๋ฐœ ์ฒด๊ณ„ ๋ชจ๋“  ๊ฐœ๋ฐœ ์ž‘์—…์€ Cursor ์—๋””ํ„ฐ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ํ†ตํ•ฉํ–ˆ๋‹ค. Cursor๋Š” ํ”„๋กœ์ ํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ์™€ ๋ฌธ๋งฅ์„ ์ธ์‹ํ•˜์—ฌ Claude Code API์™€ ์—ฐ๊ฒฐ๋œ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๋ช…๋ น์„ ์ง์ ‘ ๋‚ด๋ฆฌ์ง€ ์•Š๊ณ , "์˜๋„(Prompt)"๋งŒ ์ž‘์„ฑํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "์ƒํ’ˆ ๋“ฑ๋ก API์˜ ์ค‘๋ณต ๊ฒ€์ฆ ๋กœ์ง ์ตœ์ ํ™”"๋ผ๊ณ  ๋ช…์‹œํ•˜๋ฉด, Claude Code๊ฐ€ Git ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ˆ˜์ •๋œ diff๋ฅผ ์ž๋™์œผ๋กœ ์ปค๋ฐ‹ํ•œ๋‹ค. # Example of AI-generated commit feat(product): optimize duplicate validation logic - a...

์ด๋ฏธ์ง€ ์ตœ์ ํ™”์™€ COS ๊ธฐ๋ฐ˜ CDN ์ž๋™ํ™”

1. ๋ฌธ์ œ ์ธ์‹ — ์ด๋ฏธ์ง€ ํŠธ๋ž˜ํ”ฝ๊ณผ ํ’ˆ์งˆ์˜ ๋ถˆ๊ท ํ˜• 8์›” ์ดˆ, ์ƒํ’ˆ ์ด๋ฏธ์ง€ ์š”์ฒญ๋Ÿ‰์ด ํ•˜๋ฃจ ํ‰๊ท  1200๋งŒ ๊ฑด์„ ๋„˜์–ด์„œ๋ฉด์„œ CDN ํŠธ๋ž˜ํ”ฝ ๋น„์šฉ์ด ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ–ˆ๋‹ค. ์›์ธ์€ ๋Œ€๋ถ€๋ถ„ ๋น„ํšจ์œจ์ ์ธ ์ด๋ฏธ์ง€ ํฌ๊ธฐ์™€ ์ค‘๋ณต ์š”์ฒญ์ด์—ˆ๋‹ค. ํฌ๋กค๋ง ๋‹จ๊ณ„์—์„œ ์›๋ณธ ์ด๋ฏธ์ง€๋Š” ๊ณ ํ•ด์ƒ๋„ ์ƒํƒœ๋กœ ์ €์žฅ๋˜์—ˆ๊ณ , ํ”„๋ŸฐํŠธ์—”๋“œ๋Š” ๋‹จ์ผ ์‚ฌ์ด์ฆˆ ์ด๋ฏธ์ง€๋ฅผ ๋ชจ๋“  ๊ธฐ๊ธฐ์—์„œ ๊ณตํ†ต ์‚ฌ์šฉํ–ˆ๋‹ค. REINDEERS ํ”Œ๋žซํผ์—๋Š” 4,300๊ฐœ ์ด์ƒ์˜ ํŒŒํŠธ๋„ˆ์‚ฌ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๊ณ , ๊ฐ ๊ณต๊ธ‰์‚ฌ๊ฐ€ ์˜ฌ๋ฆฌ๋Š” ์ƒํ’ˆ ์ด๋ฏธ์ง€๋Š” ํ‰๊ท  5~8์žฅ์ด๋‹ค. ์ด ์ด๋ฏธ์ง€๋“ค์ด ๋ฐ”์ด์–ด 2,500๊ฐœ ์ด์ƒ์˜ ๊ฒ€์ƒ‰๊ณผ ์กฐํšŒ๋ฅผ ํ†ตํ•ด ์š”์ฒญ๋˜๋ฉด์„œ ํŠธ๋ž˜ํ”ฝ์ด ๊ธฐํ•˜๊ธ‰์ˆ˜์ ์œผ๋กœ ์ฆ๊ฐ€ํ–ˆ๋‹ค. ํŠนํžˆ ํƒœ๊ตญ, ๋ง๋ ˆ์ด์‹œ์•„, ์ค‘๊ตญ ๋“ฑ ์—ฌ๋Ÿฌ ๊ตญ๊ฐ€์—์„œ ๋™์‹œ์— ์ ‘์†ํ•˜๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ง€์—ญ๋ณ„ CDN ๋ถ„์‚ฐ๋„ ํ•„์ˆ˜์˜€๋‹ค. ์ดˆ๊ธฐ์—๋Š” Cloud Function์„ ์ด์šฉํ•œ ์ด๋ฏธ์ง€ ๋ฆฌ์‚ฌ์ด์ง• API๋ฅผ ์ง์ ‘ ์šด์˜ํ–ˆ์œผ๋‚˜, ์ฒ˜๋ฆฌ๋Ÿ‰ ๋Œ€๋น„ ๋น„์šฉ์ด ๋†’๊ณ , ์ฝœ๋“œ ์Šคํƒ€ํŠธ ์ง€์—ฐ์ด ์žฆ์•˜๋‹ค. ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„์ด 200ms๋ฅผ ๋„˜์—ˆ๊ณ , ๋™์‹œ ์š”์ฒญ์ด ๋ชฐ๋ฆฌ๋Š” ์‹œ๊ฐ„๋Œ€์—๋Š” 500ms๊นŒ์ง€ ์น˜์†Ÿ์•˜๋‹ค. ๋”ฐ๋ผ์„œ Tencent COS์˜ ๋‚ด์žฅ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๊ธฐ๋Šฅ์„ ์ด์šฉํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ๊ตฌ์กฐ๋กœ ์ „ํ™˜ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. 2. COS ์„œ๋ฒ„๋ฆฌ์Šค ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ ์„ค๊ณ„ COS(Cloud Object Storage)๋Š” ๋ณ„๋„์˜ ์„œ๋ฒ„๋‚˜ Lambda ์—†์ด๋„ URL ํŒŒ๋ผ๋ฏธํ„ฐ ๊ธฐ๋ฐ˜์œผ๋กœ ์ด๋ฏธ์ง€ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋ฉด ๋‹จ ํ•œ ๋ฒˆ์˜ ์—…๋กœ๋“œ๋กœ ๋ชจ๋“  ๋ณ€ํ™˜ ๋ฒ„์ „์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 800x800 ์ธ๋„ค์ผ์„ webp๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์š”์ฒญํ•œ๋‹ค. https://cdn.reindeers.com/images/p/12345.jpg?imageMogr2/thumbnail/800x800/quality/90/for...

์นดํ…Œ๊ณ ๋ฆฌ ๋งคํ•‘ ์—”์ง„๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์ž๋™ํ™”

1. ๊ฐœ๋ฐœ ๋ฐฐ๊ฒฝ ๋ฐ ๋ฌธ์ œ ์ธ์‹ Translator-Agent๊ฐ€ ๋‹ค๊ตญ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ •์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด์„œ, ๋‹ค์Œ ๋ณ‘๋ชฉ์€ "์ƒํ’ˆ ๋ถ„๋ฅ˜"์˜€๋‹ค. ์•ฝ 25๋งŒ ๊ฑด์˜ ์ƒํ’ˆ์ด ๋ฒˆ์—ญ๋˜์—ˆ์ง€๋งŒ, ์นดํ…Œ๊ณ ๋ฆฌ ์ฝ”๋“œ๊ฐ€ ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜ ์„œ๋กœ ๋‹ค๋ฅธ ์–ธ์–ด์—์„œ ๋‹ค๋ฅธ ํŠธ๋ฆฌ ๋…ธ๋“œ๋กœ ๋งคํ•‘๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ๊ธฐ์กด์˜ ์ˆ˜๋™ ๋ถ„๋ฅ˜๋Š” ๊ตญ๊ฐ€๋ณ„ ๊ธฐ์ค€์ด ๋‹ฌ๋ผ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ค์› ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด, AI ๊ธฐ๋ฐ˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ž๋™ ๋ถ„๋ฅ˜ ์—”์ง„(Classifier-Agent)์„ ๊ฐœ๋ฐœํ–ˆ๋‹ค. REINDEERS ํ”Œ๋žซํผ์€ ํ•œ๊ตญ, ํƒœ๊ตญ, ๋ง๋ ˆ์ด์‹œ์•„, ์ค‘๊ตญ 4๊ฐœ๊ตญ์— ๊ฑธ์ณ 4,300๊ฐœ ์ด์ƒ์˜ ํŒŒํŠธ๋„ˆ์‚ฌ๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๊ณ , 25,000๊ฑด ์ด์ƒ์˜ ์‹ค๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถ•์ ๋˜์–ด ์žˆ๋‹ค. ๊ณต๊ธ‰์‚ฌ 1,800๊ฐœ ์ด์ƒ์ด ๊ฐ์ž์˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ฒด๊ณ„๋กœ ์ƒํ’ˆ์„ ๋“ฑ๋กํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋™์ผํ•œ "์•Œ๋ฃจ๋ฏธ๋Š„ ํ”„๋กœํŒŒ์ผ"์ด ํ•œ๊ตญ์—์„œ๋Š” "๊ธˆ์† ๊ฐ€๊ณต์žฌ", ํƒœ๊ตญ์—์„œ๋Š” "๊ฑด์ถ• ์ž์žฌ", ์ค‘๊ตญ์—์„œ๋Š” "์‚ฐ์—…์šฉ ๋น„์ฒ ๊ธˆ์†"์œผ๋กœ ๋ถ„๋ฅ˜๋˜๋Š” ์ผ์ด ๋นˆ๋ฒˆํ–ˆ๋‹ค. ๋ฐ”์ด์–ด 2,500๊ฐœ ์ด์ƒ์ด ๊ฒ€์ƒ‰๊ณผ ๋น„๊ต๋ฅผ ํ•  ๋•Œ ์ด ๋ถˆ์ผ์น˜๊ฐ€ ์ง์ ‘์ ์œผ๋กœ ์ „ํ™˜์œจ์„ ๋–จ์–ด๋œจ๋ ธ๋‹ค. ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค. ์ƒํ’ˆ๋ช…·์„ค๋ช…·์ŠคํŽ™·๋ธŒ๋žœ๋“œ๋ฅผ ์ด์šฉํ•œ ์ž๋™ ์นดํ…Œ๊ณ ๋ฆฌ ์˜ˆ์ธก ์–ธ์–ด ์ค‘๋ฆฝ์ ์ธ ๋ฒกํ„ฐ ์ž„๋ฒ ๋”ฉ ๊ธฐ๋ฐ˜ ๋ถ„๋ฅ˜ ๋ถ„๋ฅ˜ ํ™•์‹ ๋„(confidence score)์— ๋”ฐ๋ฅธ ์Šน์ธ/๋ณด๋ฅ˜ ์ฒด๊ณ„ MQ ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ๋ฐ˜์˜ ๋น„๋™๊ธฐ ๋™์ž‘ ๋ฐ ์ž๋™ ์žฌ๋งคํ•‘ 2. ์ดˆ๊ธฐ ๊ตฌ์กฐ ์„ค๊ณ„ Classifier-Agent๋Š” Translator-Agent๊ฐ€ ์ƒ์„ฑํ•œ i18n ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›๋Š”๋‹ค. product.normalized ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ๋ฌธ์žฅ ์ž„๋ฒ ๋”ฉ์„ ์ƒ์„ฑํ•˜๊ณ , ์นดํ…Œ๊ณ ๋ฆฌ ๋ฒกํ„ฐ DB์—์„œ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. SentenceTransfo...

Translator-Agent์™€ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ด€๋ฆฌ ์ฒด๊ณ„

Translator-Agent์™€ ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๊ด€๋ฆฌ ์ฒด๊ณ„ 1. ์ดˆ๊ธฐ Translator-Agent ๋„์ž… ๋ฐฐ๊ฒฝ 7์›” ์ดˆ, ํ”Œ๋žซํผ ๋‚ด ๋“ฑ๋ก๋œ ์ƒํ’ˆ ์ˆ˜๊ฐ€ 20๋งŒ ๊ฑด์„ ์ดˆ๊ณผํ•˜๋ฉด์„œ ๋‹ค๊ตญ์–ด ๋ฐ์ดํ„ฐ ํ’ˆ์งˆ ๋ฌธ์ œ๊ฐ€ ์‹ฌ๊ฐํ•˜๊ฒŒ ๋“œ๋Ÿฌ๋‚ฌ๋‹ค. ๊ธฐ์กด์—๋Š” ์™ธ๋ถ€ ๋ฒˆ์—ญ API๋ฅผ ํ˜ธ์ถœํ•ด ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๋Š” ๋‹จ์ˆœ ๊ตฌ์กฐ์˜€๋‹ค. ํ•˜์ง€๋งŒ ์–ธ์–ด๋ณ„ ํ’ˆ์งˆ ํŽธ์ฐจ๊ฐ€ ์‹ฌํ–ˆ๊ณ , ์นดํ…Œ๊ณ ๋ฆฌ๋ช…, ๋‹จ์œ„, ๋ธŒ๋žœ๋“œ๋ช… ๋“ฑ์ด ์ž˜๋ชป ๋ฒˆ์—ญ๋˜๋Š” ์‚ฌ๋ก€๊ฐ€ ๋ˆ„์ ๋˜์—ˆ๋‹ค. "Steel Pipe"๊ฐ€ ํƒœ๊ตญ์–ด๋กœ "์ฒ  ๋‹ด๋ฐฐ ํŒŒ์ดํ”„"๋กœ ๋ฒˆ์—ญ๋˜๊ฑฐ๋‚˜, "12V DC Motor"์˜ "DC"๊ฐ€ "์ง๋ฅ˜"๊ฐ€ ์•„๋‹Œ "์›Œ์‹ฑํ„ด D.C."๋กœ ํ•ด์„๋˜๋Š” ์‚ฌ๋ก€๊ฐ€ ์‹ค์ œ๋กœ ๋ฐœ์ƒํ–ˆ๋‹ค. ์‚ฐ์—… ์ž์žฌ ๋ถ„์•ผ์˜ ์ „๋ฌธ ์šฉ์–ด๋Š” ์ผ๋ฐ˜ ๋ฒˆ์—ญ ๋ชจ๋ธ๋กœ๋Š” ์ •ํ™•๋„๊ฐ€ ๋‚ฎ๋‹ค. ์ˆ˜๋™ ๊ต์ • ์ธ๋ ฅ์„ ํˆฌ์ž…ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ฒˆ์—ญ ํ’ˆ์งˆ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด "Translator-Agent"๋ฅผ ๋‚ด๋ถ€์ ์œผ๋กœ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ๋‹ค. Translator-Agent์˜ ์„ค๊ณ„ ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์•˜๋‹ค. ๋ฒˆ์—ญ ํ’ˆ์งˆ ์ž๋™ ํ‰๊ฐ€ ๋ฐ ๋“ฑ๊ธ‰ํ™” (MACHINE / HUMAN / APPROVED) ๋‹ค๊ตญ์–ด ํ…์ŠคํŠธ ์บ์‹œ ๋ฐ ์ค‘๋ณต ์š”์ฒญ ์ œ๊ฑฐ ๋ฌธ์žฅ ๋‹จ์œ„๊ฐ€ ์•„๋‹Œ ๋ฌธ๋งฅ ๋‹จ์œ„ ๋ฒˆ์—ญ ์ฒ˜๋ฆฌ — ์ƒํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ, ์ŠคํŽ™, ๋‹จ์œ„๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ ค MQ ๊ธฐ๋ฐ˜ ๋ณ‘๋ ฌ ๋ฒˆ์—ญ ๋ฐ ํ’ˆ์งˆ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ์ž๋™ํ™” ์‚ฐ์—… ์ž์žฌ ์ „๋ฌธ ์šฉ์–ด ์‚ฌ์ „(Glossary) ์ ์šฉ 2. ์•„ํ‚คํ…์ฒ˜ ์„ค๊ณ„ — AI ๋ชจ๋ธ ํ˜ผํ•ฉ ์ „๋žต Translator-Agent๋Š” MQ ์ด๋ฒคํŠธ ์†Œ๋น„์ž๋กœ ๋™์ž‘ํ•œ๋‹ค. product.created ๋˜๋Š” i18n.missing ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด ํ•ด๋‹น ์ƒํ’ˆ์˜ ๊ธฐ๋ณธ ์–ธ์–ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜...

certified as a Venture Business

Officially Certified as a Venture Business! We're excited to share that REINDEERS has been officially certified as a Venture Business (๋ฒค์ฒ˜๊ธฐ์—…) under the "Act on Special Measures for the Promotion of Venture Businesses" by the Korean government. Our certification falls under the Innovation Growth category, recognizing our potential for technology-driven growth and impact in the cross-border B2B and fulfillment space. This is a meaningful milestone for us, and we will continue to innovate and scale with purpose. Thank you to everyone who has supported our journey so far. What This Certification Means in Technical Terms A Venture Business certification under the Innovation Growth category is not simply an administrative badge. It requires demonstrating that a company is building products with genuine technical innovation and a credible path to scale. For REINDEERS, this validation applied to three specific areas: Cross-border trade data infrastructure —...