๐Ÿซ ํ•™๊ณผ ๊ณต๋ถ€
๊ณผ๋ชฉ 1 : ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ดํ•ด ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ํ• ๋•Œ ์œ ์˜ ์‚ฌํ•ญ ์ค‘๋ณต : ์—ฌ๋Ÿฌ ์žฅ์†Œ์— ๊ฐ™์€ ์ •๋ณด X ๋น„์œ ์—ฐ์„ฑ : ๋ฐ์ดํ„ฐ์˜ ์ •์˜์™€ ์‚ฌ์šฉ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ถ„๋ฆฌ -> ๋ฐ์ดํ„ฐ๊ฐ€ ์ ๊ฒŒ ๋ณ€ํ™”๋˜๋„๋ก ๋น„์ผ๊ด€์„ฑ : ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์ƒํ˜ธ ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋ช…ํ™•ํžˆ ์ •์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์˜ ์ข…๋ฅ˜ ๊ฐœ๋…์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฌผ๋ฆฌ์  ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง์˜ ํŠน์ง• ์ถ”์ƒํ™”, ๋‹จ์ˆœํ™”, ๋ช…ํ™•ํ™” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์Šคํ‚ค๋งˆ์˜ ๊ตฌ์กฐ ์™ธ๋ถ€ ์Šคํ‚ค๋งˆ : ์‚ฌ์šฉ์ž ๊ด€์ ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ๊ฐœ๋… ์Šคํ‚ค๋งˆ : ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ ๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ : ๋ฌผ๋ฆฌ์  ์ €์žฅ์žฅ์น˜์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ ์—”ํ„ฐํ‹ฐ์˜ ํŠน์ง• ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ์—…๋ฌด์—์„œ ํ•„์š”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ •๋ณด์—ฌ์•ผํ•œ๋‹ค.
React์˜ ํŠน์ง• Component ๊ธฐ๋ฐ˜ Virtual DOM JSX ๋‹จ๋ฐฉํ–ฅ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ Hooks DOM HTML element๋ฅผ treeํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ Virtual DOM DOM์„ ์ง์ ‘ ์กฐ์ž‘ํ•˜์ง€ ์•Š๊ณ , ๊ฐ€์ƒ์˜ DOM์„ ๋งŒ๋“ค์–ด์„œ ์กฐ์ž‘ํ•œ ํ›„, ์‹ค์ œ DOM๊ณผ ๋น„๊ตํ•˜์—ฌ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ์‹ Diffing : ์ด์ „ Virtual DOM๊ณผ ํ˜„์žฌ Virtual DOM์„ ๋น„๊ต Reconciliation : ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ์‹ค์ œ DOM์— ๋ฐ˜์˜ Batch Update : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ•œ๋ฒˆ์— ์—…๋ฐ์ดํŠธ React Component Class Component ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ ํฌํ•จ ์ƒ์†์„ ํ†ตํ•ด Component๋ฅผ ์ƒ์„ฑ mutable state๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Œ Functional Component immutableํ•˜๋‹ค stateless Hooks๋ฅผ ์‚ฌ์šฉ LifeCycle Method Mounting constructor : ์ปดํฌ๋„ŒํŠธ ์ƒ์„ฑ์ž static getDerivedStateFromProps : props๋กœ state๋ฅผ ์„ค์ • render : ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง componentDidMount : ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋งˆ์šดํŠธ๋œ ์งํ›„ Updating static getDerivedStateFromProps : props๋กœ state๋ฅผ ์„ค์ • shouldComponentUpdate : ์ปดํฌ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ ์—ฌ๋ถ€ ๊ฒฐ์ • render : ์ปดํฌ๋„ŒํŠธ ๋ Œ๋”๋ง getSnapshotBeforeUpdate : ์ปดํฌ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ ์ง์ „ componentDidUpdate : ์ปดํฌ๋„ŒํŠธ ์—…๋ฐ์ดํŠธ ์งํ›„ Unmounting componentWillUnmount : ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ธ๋งˆ์šดํŠธ๋˜๊ธฐ ์ง์ „ React Hooks ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์—์„œ state์™€ ์ƒ๋ช…์ฃผ๊ธฐ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ
๐Ÿซ ํ•™๊ณผ ๊ณต๋ถ€
๐Ÿค– ์ธ๊ณต์ง€๋Šฅ
๐Ÿค– ์ธ๊ณต์ง€๋Šฅ
๋ฐฐ๊ฒฝ ํ…Œ์ปค ๋ถ€ํŠธ์บ ํ”„์—์„œ ํŒ€ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค. ์šฐ๋ฆฌ ํŒ€์˜ ์ฃผ์ œ๋Š” ํŠน์ • ์ธ๋ฌผ์—๊ฒŒ ์ƒ๋‹ด์„ ๋ฐ›๋Š” ๊ฒƒ ๊ฐ™์€ ๋Œ€ํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ์ฑ—๋ด‡์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํŠน์ • ์ธ๋ฌผ์ด ํ–ˆ๋˜ ๋ง์„ ๋ชจ์•„ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ๋งŒ๋“ค๊ณ  ์ด๋ฅผ RAG ๋ชจ๋ธ์— ์ ์šฉ์‹œํ‚ค๋ ค๊ณ  ํ•œ๋‹ค. ์ˆœ์„œ ์ผ๋ก  ๋จธ์Šคํฌ๊ฐ€ TED์—์„œ ํ•œ ์ธํ„ฐ๋ทฐ๋ฅผ ํ…์ŠคํŠธ๋กœ ๊ฐ€์ ธ์˜จ๋‹ค. OpenSearch ๋„์ปค ์ปจํ…Œ์ด๋„ˆ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ํ…์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ž„๋ฒ ๋”ฉํ•ด์„œ OpenSearch์— ์ €์žฅํ•œ๋‹ค. RAG ๋ชจ๋ธ์ด OpenSearch๋ฅผ ์ฟผ๋ฆฌํ•˜์—ฌ ๋Œ€๋‹ต์„ ์ƒ์„ฑํ•œ๋‹ค. 1. ์ผ๋ก  ๋จธ์Šคํฌ ์ธํ„ฐ๋ทฐ ํ…์ŠคํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ ํŠœ๋ธŒ์—์„œ “์Šคํฌ๋ฆฝํŠธ ๋ณด๊ธฐ"๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋ทฐ ์ž๋ง‰์„ ๊ฐ€์ ธ์˜จ๋‹ค.
๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ”
RAG (Retrieval-Augmented Generation) ์ด๋ก  ์ •๋ฆฌ RAG๋Š” ๊ฒ€์ƒ‰๊ณผ ์ƒ์„ฑ์„ ๊ฒฐํ•ฉํ•œ ๋ชจ๋ธ๋กœ, ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ์–ป์€ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ฑ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋ธ LLM์˜ ๋ฌธ์ œ์  ํ• ๋ฃจ์‹œ๋„ค์ด์…˜: ์ƒ์„ฑ ๋ชจ๋ธ์ด ํ›ˆ๋ จ ๋ฐ์ดํ„ฐ์— ์—†๋Š” ๋‚ด์šฉ์„ ์ƒ์„ฑํ•˜๋Š” ํ˜„์ƒ ์ตœ์‹ ์˜ ์‘๋‹ต์„ ๊ธฐ๋Œ€ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์˜ค๋ž˜๋˜์—ˆ๊ฑฐ๋‚˜ ์ผ๋ฐ˜์ ์ธ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ถœ์ฒ˜๋กœ๋ถ€ํ„ฐ ์ •๋ณด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฌธ์ œ RAG๋Š” ์œ„์—์„œ ์„œ์ˆ ํ•œ LLM ๋ฌธ์ œ์˜ ์ผ๋ถ€๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋‹จ์ด๋‹ค. OpenSearch OpenSearch๋Š” ์˜คํ”ˆ์†Œ์Šค ๊ฒ€์ƒ‰ ๋ฐ ๋ถ„์„ ์—”์ง„์œผ๋กœ, ์—˜๋ผ์Šคํ‹ฑ์„œ์น˜์˜ ํฌํฌ ๋ฒ„์ „
๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ”
๐Ÿ”จ ๊ฐœ๋ฐœ ๋„๊ตฌ
๐Ÿ‘จโ€๐Ÿ’ป ๋ชจ๊ฐ์ฝ”