ํด๋น ์ํฐํด ์ ๋ฆฌ๋ ๊ท๋ก ๋ค์ผ๋ฉฐ ์ ๋ฆฌํ๋ ํฌ์คํ ์ ๋๋ค.
๊ตฌ๊ธ์ NotebookLM์ผ๋ก ์์ฝํ ๋ด์ฉ์
๋ผ๋์ค์ฒ๋ผ ์ฌ์ํด ๋ค์ผ๋ฉฐ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.๐ง
AI ๊ฐ๋ฐ ๋๊ตฌ์ ์ฝ๋ ๋ฆฌ๋ทฐ ์๋ํ ์ ๋ต
์ฝ๋ ์ด์์คํดํธ
GitHub Copilot์ Codeium
๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ ๋ ฅํ ๋ ์ค์๊ฐ์ผ๋ก ๋ค์ ์ฝ๋๋ฅผ ์ ์ํด์ฃผ๊ฑฐ๋ ์ฃผ์์ ์ฐ๋ฉด ์ฝ๋ ๋ธ๋ก ์ ์ฒด๋ฅผ ์ง์ํด์ค๋ค.
DataRobot ํน์ ๋ถ์ผ(ex. ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ ๊ฐ๋ฐ ์ง์) ์ ๋ฌธ ๋ถ์ผ์ ๋ํด ํนํ๋์ด์๋ค.
๊นํด๋ฆฌ์ด์ ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด, AI ์ด์์คํดํธ๋ฅผ ์ฌ์ฉํ ํ์ ์ฝ๋ ์ค๋ณต์ด ์์ฒญ ๋์ด๋๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๊ณ ํ๋ค.
5์ค ์ด์ ์ค๋ณต๋๋ ์ฝ๋๊ฐ 8๋ฐฐ๋ ์ฆ๊ฐํ ๋ฐ๋ฉด, ๋ฆฌํฉํ ๋ง์ ์ค์ด๋ค์๋ค.
์ด๋ AI ์ด์์คํดํธ ์์ ์ ํฐ ๋ฌธ์ ๋ค.
์ด๋ ๊ฐ๋ฐ ์๋๋ ๋นจ๋ผ์ง๊ฒ ์ง๋ง ์ฅ๊ธฐ์ ์ผ๋ก๋ ์ฝ๋ ๋ฒ ์ด์ค๊ฐ ์ปค์ง๊ณ ์ค๋ณต ์ฝ๋๊ฐ ๋ง์์ง๋ฏ๋ก ์ ์ง๋ณด์๊ฐ ๋งค์ฐ ํ๋ค์ด์ง๋ค.
๊ตฌ๊ธ์ Dora ๋ฐ๋ธ์ต์ค ๋ณด๊ณ ์์ ๋ฐ๋ฅด๋ฉด, AI๊ฐ ๊ฐ๋ณ ์ฝ๋ ์กฐ๊ฐ์ ํ์ง์ ํฅ์ํ๋ค ํด๋ ์ ์ฒด ์์คํ ์ ๋ณ๊ฒฝ ์์ ์ฑ์ ๋จ์ด์ง๋ค๊ณ ํ๋ค.
์ฝ๋ ๋ฆฌ๋ทฐ
๊ฐ๋ฐ ์๊ฐ์ 20~30%๋ฅผ ์ฐจ์งํ๋ ์ฝ๋ ๋ฆฌ๋ทฐ.. ์ฝ๋ ๋ฆฌ๋ทฐ์ ๋ถ๋ด์ ์ธ ๋ถ๋ถ๊ณผ ์ฃผ๊ด์ ์ธ ๋ถ๋ถ ๋ฌธ์ ๋ฅผ AI๊ฐ ํด๊ฒฐํด์ค ์ ์์๊น?
AI ๊ธฐ๋ฐ ์ฝ๋ ๋ถ์ ๋๊ตฌ๋ค์ ํฌ๊ฒ 2๊ฐ์ง ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๋ค.
- SonarCube
- Codee
์ ์ ๋ถ์ ๊ธฐ๋ฒ์ผ๋ก ์ฝ๋๋ฅผ ๋ถ์ํ๋ ๊ฒ์ด ์ฝ๋์ด ์๋ฏธ๋ ๋งฅ๋ฝ๊น์ง ์ ์ ์์๊น?
์ด๋ ํต์ฌ ํ๊ณ์ ์ค ํ๋์ด๋ค. AI๊ฐ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ์ ์ ์์ค ์ค๋ฅ๋ ์ ์์ ํ ์ ์์ง๋ง, ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ ์ค๋ฅ๋ API๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋์ง์ ๋ํ ๋ฌธ์ ๋ ์ฌ๋์ด ์ ํ๋จํ๋ค.
๊ฒฐ๊ตญ AI๋ง์ผ๋ก๋ ์๋ฒฝํ ๋ฆฌ๋ทฐ๊ฐ ์ด๋ ต๋ค. AI์ ์ฌ๋์ด ํจ๊ป ํ์ด๋ธ๋ฆฌ๋ ๋ฐฉ์์ผ๋ก ์ฝ๋ ๋ฆฌ๋ทฐํ๋ ๊ฒ์ด Best!
์ค์ ํ ์ค์ LLM ๊ธฐ๋ฐ ์์ฒด ๋ฆฌ๋ทฐ ์์คํ ์ ๊ตฌ์ถํ ์ฌ๋ก๋ฅผ ๋ณด๋ฉด ์ฅ๋จ์ ์ ๋ช ํํ ํ์ธํด๋ณผ ์ ์๋ค.
์ฅ์ ์ผ๋ก๋,
- ๋น ๋ฅธ ํผ๋๋ฐฑ
- ์ผ๊ด๋ ๊ธฐ์ค ์ ์ฉ ๊ฐ๋ฅ
- ๋ฆฌ๋ทฐ ๋๊ธฐ ์๊ฐ ๋จ์ถ
- ์ผ๊ด๋ ์ฝ๋ ์คํ์ผ
๋จ์ ์ผ๋ก๋,
- ์ ์ฒด ์์คํ ๊ณผ diff๊ฐ ์ด๋ป๊ฒ ์ํธ์์ฉํ๋์ง, ์จ๊ฒจ์ง ๋ถ์์ฉ์ด ์๋์ง ํ์ ์ด ์ด๋ ค์
- ๋ณ๊ฒฝ๋ ์ฝ๋์์ด ๋ง์ผ๋ฉด, LLM์ ์ ๋ ฅ๊ฐ ํ๊ณ ๋ฐ์(ํ ํฐ ์ ํ)
- ๋ณด์์ ์ํ์ฑ
- ๋ถ์์ ํ ์๋ต ๊ฐ๋ฅ์ฑ
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋กฌํํธ๋ฅผ ์ ๊ตํ๊ฒ ๋ง๋ค๊ฑฐ๋, RAG(๊ฒ์ ์ฆ๊ฐ ์์ฑ ๊ธฐ๋ฒ)๋ฅผ ํ์ฉํด์ LLM์ด ์ฌ๋ด ์ฝ๋ ๊ฐ์ด๋๋ผ์ธ์ด๋ ๋ฌธ์๋ฅผ ์ฐธ์กฐํด์ ๋ต๋ณํ๋๋ก ๋ง๋๋ ๊ฒ์ด ํ์ํ๋ค.
ํ ์คํธ
์์ ์ ์ธ ์ํํธ์จ์ด๋ฅผ ์ํด์ ํ ์คํธ๋ ํ์์ ์ด๋ค.
AI๋ ํ ์คํธ ์ฝ๋์ ์ด์ ์์ฑ์ ์์ฃผ ํจ๊ณผ์ ์ด๋ค. ์ฌ๋ฌ ์ํฉ(์ฌ์ฉ์๊ฐ ์ด๋ค ํน์ ํ๋์ ํ ๋, UI ์ํ๊ฐ ์ด๋ป๊ฒ ๋ณํ๋์ง, ํน์ ์๊ฐ๋์ ๋ฒ๊ทธ ์ฐพ๊ธฐ)์ ํ ์คํธ ํ๋ ์ฝ๋๋ฅผ AI๊ฐ ๋น ๋ฅด๊ฒ ์์ฑ์ ํด์ค๋ค.
ํ ์ค๋ ์ฌ๋ฌ ์ปดํฌ๋ํธ์ ์ํธ์์ฉ์ ํ์ธํ๋ ํตํฉ ํ ์คํธ๋ฅผ ์ ํธํ๋ค๊ณ ํ๋ค. ํตํฉ ํ ์คํธ์ ํ์ค์ฑ์ ๋์ด๊ธฐ ์ํด Mock ์ฌ์ฉ์ ์ง์ํ๊ณ , ๊ฐ๋ฅํ ํ ์ค์ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ค๊ณ ํ๋ค. ๋ฐ์ดํฐ ๊ตฌ์กฐ ๋ณ๊ฒฝ๊ณผ ๊ฐ์ ๋ฌธ์ ์ ํธํ์ฑ์ ์ก๊ธฐ ์ํด ์น์ธ ํ ์คํธ๋ ํ์ฉํ๋ค๊ณ ํ๋ค.
๋ฌด์์ ํ ์คํธํ ๊ฒ์ธ๊ฐ?
AI๊ฐ ์์ฑํ ํ ์คํธ์ฝ๋๊ฐ ์ ๋ง ์ฌ๋ฐ๋ฅธ๊ฐ? ์ด๋ป๊ฒ ๊ฐ์ ํ ๊ฒ์ธ๊ฐ?
์ด๋ ์ฌ๋์ด ํด๊ฒฐํด์ผํ ๊ณผ์ ๋ค์ด๋ค.
ํตํฉ ํ ์คํธ ์์ฒด๊ฐ ๊ฐ์ง๋ ์ด๋ ค์(ํ ์คํธ ํ๊ฒฝ ์ค์ ์ ๋ณต์กํจ, ๋คํธ์ํฌ ์ํ์ ๊ฐ์ ์ธ๋ถ์์ธ, ๋ฐํ๊ฐ ์๋ ๊ฒ)
์ด๋ AI๊ฐ ํด๊ฒฐํ ์ค์ํ ๊ณผ์ ๋ค์ด๋ค.
AI์ ๋ํ ์์กด๋๊ฐ ๋์์ง๋ฉด์ AI ๋ฌธ๋งน ๊ฐ๋ฐ์๊ฐ ๋์ด๋๊ณ ์๋ค.
AI๋ ๋์ฒด์ฌ๊ฐ ์๋ โ๋๊ตฌโ๋ผ๋ ์ ์ ์์ง ๋ง์.
๊ฐ๋ฐ์๋ ์์ผ๋ก ๋ ๋ณต์กํ ์์คํ ์ ์ํคํ ์ฒ๋ฅผ ์ค๊ณํ๊ณ ํต์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ๊ตฌํํ๊ณ AI๊ฐ ์์ฑํ ์ฝ๋์ ํ์ง๊ณผ ๋งฅ๋ฝ์ ํ์ ํ๋ ๋ฑ ๋ ๋์ ์์ค์ ๋ฌธ์ ํด๊ฒฐ์ ์ง์คํด์ผ ํ๋ค.
๊ฐ๋ฐ์์ ์ญํ ์ Coder์์ Orchestrator์ ์ญํ ๋ก ์งํํ๋ค.
๋๋์ : AI์ ๋๋ฌด ์์กดํ์ง ๋ง๊ณ ๋์ฒด์ ๊ฐ ์๋ ๋๊ตฌ๋ก ์๊ฐํ์. ์ฝ๋์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ์๋น์ค๋ฅผ ํฌ๊ฒ ๋ค์ฌ๋ค๋ณผ ์ ์๋ ๋ฅ๋ ฅ์ด ํ์ฌ ๊ฐ๋ฐ์์๊ฒ ์๊ตฌ๋๋ ์ญ๋์ด๋ผ๊ณ ์๊ฐํ๋ค. AI๊ฐ ํจ์จ์ ์ผ๋ก ์์ ์ ๋์์ฃผ์ง๋ง, AI๊ฐ ์์ ํ ๊ฒ์ ํ๋จํ๋ ๊ฒ์ ๊ฐ๋ฐ์์ ๋ชซ์ด๋ค. ๊ทผ๋ณธ์ ์์ง ๋ง์!
๐ https://blog.scordi.io/%EC%83%9D%EC%84%B1%ED%98%95-ai-%ED%88%B4-%EC%B6%94%EC%B2%9C
๐ https://notavoid.tistory.com/280
๐ https://www.slexn.com/ai-%EA%B8%B0%EB%B0%98-%EC%BD%94%EB%93%9C-%EB%B6%84%EC%84%9D-%EC%96%B4%EB%94%94%EA%B9%8C%EC%A7%80-%EB%AF%BF%EC%9D%84-%EC%88%98-%EC%9E%88%EC%9D%84%EA%B9%8C-%E3%85%A1-codee/
๐ https://soyoondaily.com/entry/AI-%EA%B8%B0%EB%B0%98-%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1-%EA%B0%80%EC%9D%B4%EB%93%9C-%E2%80%93-%EA%B0%9C%EB%B0%9C-%EC%83%9D%EC%82%B0%EC%84%B1%EC%9D%84-%EB%86%92%EC%9D%B4%EB%8A%94-%EB%B0%A9%EB%B2%95
๐ https://byline.network/2025/02/25-379/
๐ https://jaimemin.tistory.com/2727
๐ https://toss.tech/article/test-strategy-server
๐ https://velog.io/@yaza/%EC%BD%94%EB%93%9C-%EB%A6%AC%EB%B7%B0-%EC%9E%90%EB%8F%99%ED%99%94-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-w-ollama-1%ED%8E%B8-Proof-of-Concept
๐ https://motivator.jiransecurity.com/trend/98
OpenStack์ ํต์ฌ ๊ฐ๋ ๊ณผ ์๋ ์๋ฆฌ
์คํ์คํ(OpenStack)
๊ฐ์ ์์์ ๋ชจ์์ private์ด๋ public ํด๋ผ์ฐ๋๋ฅผ ๋ง๋ค๊ณ ๊ด๋ฆฌํ๋ ์คํ ์์ค ํ๋ซํผ์ด๋ค. ์ด์ธ์๋ Kubernetes, CloudStack ๋ฑ์ด ์๋ค.
์ปดํจํ , ๋คํธ์ํน, ์คํ ๋ฆฌ์ง ํต์ฌ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๊ณตํด์ค๋ค. ์ด์ธ์๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์ด ๊ธฐ๋ฅ๋ค์ ์กฐํฉํด์ ์ฌ์ฉ์๊ฐ ์ํ๋ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ ์ ์๋๋ก ํ๋ค.
๊ฐ์ํ ๊ด๋ฆฌ ํ๋ซํผ๊ณผ๋ ๋ค๋ฅธ ๊ฐ๋ ์ด๋ค. ๊ฐ์ํ๋ ์์ ์์์ ์๋ํ๋ค๋ ์ , ์ฌ๋ฌ Vendor ํ๊ฒฝ์์ ์์์ ์ฐพ๊ณ ์๋ํํ ์ ์๋ค๋ ์ ์ ๋ง๋ค. ํ์ง๋ง, ๊ฐ์ํ ๊ด๋ฆฌ ํ๋ซํผ์ ์ฃผ๋ก ์ด๋ฏธ ์๋ ๊ฐ์ ์์์ ๊ธฐ๋ฅ์ ๋ ์ฝ๊ฒ ์ฐ๋๋ก ์กฐ์ํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋๋ฐ ์ค์ ์ ๋๋ค.(ex. ํธํ ๊ด๋ฆฌ ๊ฐ์ค ์์คํ ) ์คํ์คํ์ ๊ทธ ๊ฐ์ ์์์ ํ์ฉํด์ ์์ ํด๋ผ์ฐ๋ ํ๊ฒฝ ์์ฒด๋ฅผ ๊ตฌ์ถํ๋ค.(ex. ํธํ ์ ์ฒด๋ฅผ ์ง๊ณ ์ด์ํ๋ ์์คํ )
์คํ์คํ์ ์๋ ๋ฐฉ์
์คํ์คํ์ ๋ณธ์ง์ ์คํฌ๋ฆฝํธ๋ค. ๋ค์ ๋ ๊ฐ์ง ์ํํธ์จ์ด๋ก ์ธํด ๋์๊ฐ๋ค.
- ๊ฐ์ํ ๊ธฐ์ : ํ๋์จ์ด์์ ์์์ ๋ถ๋ฆฌํด์ ์ถ์ํ๋ ๊ฐ์ ๋ฆฌ์์ค ๊ณ์ธต์ ๋ง๋ ๋ค.
- ์ด์์ฒด์ : ์คํ์คํ์ด ๋ด๋ฆฐ ๋ช ๋ น์ ์ค์ ๋ก ์คํํ๋ ๊ธฐ๋ฐ์ด ๋๋ค.
์คํ์คํ ์์ฒด๊ฐ ์๋ฒ๋ฅผ ๊ฐ์ํํ์ง ์๋๋ค. ์ด๋ฏธ ๋ง๋ค์ด์ง ๊ฐ์ํ๋ ์์์ ๊ฐ์ ธ๋ค ์ฐ๋ ๊ฒ์ด๋ค. OS ์คํฌ๋ฆฝํธ ๋ช ๋ น์ ์ ๋ฌํ๋ ์ญํ !
์คํ์คํ์ ํต์ฌ ๊ธฐ์
- Keystone: ํด๋ผ์ฐ๋ ์ ์ฒด์ ๋ณด์ ๊ฒ์๋ ์ญํ . ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์ธ์ฆํ๊ณ ์ด๋ค ์๋น์ค์ ์ ๊ทผํ ๊ถํ์ ๊ด๋ฆฌํด์ค๋ค.
- Nova: ์ค์ ์์์ธ ๊ฐ์ ์๋ฒ์ ์ญํ . ์ฌ์ฉ์๊ฐ ๊ฐ์๋จธ์ (์๋ฅผ ๋ค์ด VM) ๋ง๋ค์ด๋ฌ๋ผ๊ณ ์์ฒญํ๋ฉด, ํ์ํ ์ปดํจํ ์์์ ์ฐพ์ ๊ฐ์๋จธ์ ์ ์์ฑํ๊ณ ๊ด๋ฆฌํ๋ค.
- Neutron: ๊ฐ์๋จธ์ ๋ค์ด ์๋ก ํต์ ํ๊ฑฐ๋ ์ธ๋ถ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ ์๋๋ก ๋คํธ์ํฌ ๋ฐฐ๊ด์ ์ฐ๊ฒฐํด์ฃผ๋ ์ญํ .
์ ์ธ ๊ฐ์ง๊ฐ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ผ๋๋ค. API๋ก ์๋ก ์ฐ๊ฒฐ์ํฌ ์ ์๋ค.
์คํ์คํ์ ์ด๋์ ํ์ฉํ ์ ์์๊น?
- Private ํด๋ผ์ฐ๋ ๊ตฌ์ถ: ๊ธฐ์ ์ด ์์ฒด ๋ฐ์ดํฐ์ผํฐ๋ก ์ง์ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋ง๋ค ๋ ๋ง์ด ์ฌ์ฉํ๋ค๊ณ ํ๋ค.
- ๋คํธ์ํฌ ๊ธฐ๋ฅ ๊ฐ์ํ(NFV): ์ฃผ๋ก ํต์ ์ฌ์์ ๊ธฐ์กด ๋ผ์ฐํฐ๋ ๋ฐฉํ๋ฒฝ ๊ฐ์ ์ฅ๋น์ ๊ธฐ๋ฅ์ ์ํํธ์จ์ด๋ก ๊ตฌํํด์ ์ฌ๋ฌ ํ๊ฒฝ์ ์ ์ฐํ๊ฒ ๋ฐฐํฌํ ๋ ๋ง์ด ์ฌ์ฉํ๋ค.
- Public ํด๋ผ์ฐ๋ ๊ตฌ์ถ
- Container ๋ฐฐํฌ/์ด์: ์คํ์คํ ์์์ ์ปจํ ์ด๋๋ฅผ ์ด์ํ๋ฉด, ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ์๋๋ฅผ ํฅ์ํ ์ ์๊ณ ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๋ค.
๋๋์ : ๊ฐ์ํ ๊ด๋ฆฌ ๋ฟ๋ง ์๋๋ผ ์ง์ ๊ฐ์ํ ํ๊ฒฝ์ ๊ตฌ์ถํ๋ค๋ ๊ธฐ์ ์ด๋ผ๋ ๊ฒ์ ํ์คํ๊ฒ ์๊ฒ ๋์๋ค! ์์๋ณด๋ ๋ง์ ํด์ธ/๊ตญ๋ด ๊ธฐ์ ์์ OpenStack์ ํตํด ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๊ตฌ์ถํ๊ณ ์์ด, ๊ทธ ๋์ ํ์ฉ ๋ฒ์๊ฐ ์ธ์์ ์ด์๋ค!
RAG์ Vector DB๋ก ์์ฐ์ฑ๊ณผ ์ฝ๋ ํ์ง ํฅ์์ํค๊ธฐ
์ฌ๊ธฐ์ด๋์์ ๋ฐ๋ณต์ ์ธ ์์ ํด์๋ฅผ ์ํด ํ์ ์ฝ๋ ์คํ์ผ๊ณผ ํจํด์ ํ์ตํ Diffy์ @pwb/testgen์ ๊ตฌ์ถํ๋ค.
RAG(Retrieval-Augmented Generation)์ Vector DB๋ฅผ ์ ํํ ์ด์ ๋ ๋ฌด์์ผ๊น?
๋ชจ๋ธ์ ์ง์ ํ์ธํ๋ํ๋ฉด ๋์ง ์์๊น? ์ RAG๋ฅผ ์ ํํ์๊น?
๋ด๋ถ ์ฝ๋๋ฅผ ์ธ๋ถ LLM ํ์ต ๋ฐ์ดํฐ์ ๋๊ฒจ์ผ ํ๋ ๋ณด์ ๋ฌธ์ ์ ๋น์ฉ์ ์ธ ๋ถ๋ถ, ์ต์ ๋ด์ฉ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๊ธฐ ์ด๋ ต๋ค๋ ํ์ธํ๋์ ๋จ์ ๋ค ๋๋ฌธ์ด๋ค.
๋ฐ๋ฉด, RAG๋ ๋ด๋ถ ์ฝ๋๋ฅผ ์ธ๋ถ์ ๋ ธ์ถ์ํฌ ํ์๊ฐ ์๊ณ Vector DB์ ์ ์ฅ๋ ์ต์ ์ฝ๋ ์กฐ๊ฐ๋ค์ LLM์ด ๋ต๋ณ ์์ฑํ ๋ ์ค์๊ฐ์ผ๋ก ์ฐธ์กฐํ ์ ์์ด ์์ ๋กญ๋ค๋ ์ฅ์ ์ด ์๋ค.
์ฆ RAG๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ฏธํ๋ค.
RAG(Retrieval-Augmented Generation)
AI๊ฐ ๋ต๋ณ ๋ง๋ค๊ธฐ ์ ์ ๊ด๋ จ ์๋ฃ๋ฅผ ๋จผ์ ๊ฒ์ํ์ฌ ์ฐธ๊ณ ํ๋๋ก ํ๋ ๋ฐฉ์
Vector DB
์ฝ๋ ์กฐ๊ฐ๋ค์ ํจ์จ์ ์ผ๋ก ์ ์ฅํ๊ณ ๊ฒ์ํ ์ ์๊ฒ ํด์ฃผ๋ ํน์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค. ๋จ์ํ ํค์๋๊ฐ ์ผ์นํ๋ ๊ฑธ ์ฐพ๋ ๊ฒ ์๋๋ผ ์ฝ๋์ ์๋ฏธ. ์ฆ, ์ด๋ค ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ๋ ์ฝ๋์ธ๊ฐ๋ฅผ ์ซ์์ ๋ฐฐ์ด๋ก ํํํ๊ณ ์ฌ์ฉ์ ์ง๋ฌธ๊ณผ ์๋ฏธ์ ์ผ๋ก ์ ์ฌํ ์กฐ๊ฐ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด์ AI์๊ฒ ์ ๋ฌํ๋ค.(์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์)
RAG๋ ๋๋๋ก ํ์ธํ๋์ ์คํ๊ฑฐ๋ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ธ๋ค๊ณ ํ๋ค.
์ค์ ๋ก ๋ง์ดํฌ๋ก์ํํธ ๋ฆฌ์์น ์ฐ๊ตฌ์์, ์ผ๋ถ ๋ชจ๋ธ์์ RAG๊ฐ ๋ ๋์ ์ฑ๋ฅ๊ณผ ๋ต๋ณ ์ ํ๋๋ฅผ ๋ณด์๋ค๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด Vector DB์ ๋ฐฉ๋ํ ์ฝ๋ ์กฐ๊ฐ๋ค์ ์ด๋ป๊ฒ ๋ด์๋์๊น?
chunking ๊ณผ์ ์ด ์ค์ํ๋ค.
chunking
AI๊ฐ ์ ๋ณด๋ฅผ ์ ์ํํ๊ณ ๊ฒ์ํ ์ ์๋๋ก ์ฝ๋๋ฅผ ์๋ฏธ ์๋ ๋จ์๋ก ๋๋๋ ์์ .
chunking์ ์ฌ์ฉํ์ง ์๊ณ ๋๋ฌด ๊ธด ์ฝ๋๋ฅผ ๋ฒกํฐ๋ก ๋ง๋ค๋ฉด ์ฌ๋ฌ ๋ก์ง์ด ๋ค์์ฌ๋ฒ๋ฆฌ๋ ์ผ์ด ๋ฐ์ํ๋ค. ์ด๋ ๊ฒ ๋๋ฉด ๋ฒกํฐ๊ฐ ๊ฐ์ง๋ ์๋ฏธ๊ฐ ๋ชจํธํด์ง๋ค!
์ฝ๋์ ๋ฌธ๋ฒ ๊ตฌ์กฐ๋ฅผ ๋ถ์ํ๋ ๋ฐฉ์(AST: ์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ)์ ํ์ฉํ๋ค. AST๋ ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋๋ฅผ ์ดํดํ๋ ๋ฐฉ์์ฒ๋ผ ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ํธ๋ฆฌ ํํ๋ก ํํํ ๊ฒ์ด๋ค.
ts-morph๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ AST๋ฅผ ์ํํ๋ค๊ณ ํ๋ค.

Vector DB
Vector DB๋ ์คํ์์ค์ธ Chroma DB๋ฅผ ์ฌ์ฉํ๋ค. ๊ฐ๋จํ ์ฌ์ฉ๋ฒ๊ณผ ๋ก์ปฌ ๋ฐ ์ด์ ํ๊ฒฝ ๊ตฌ์ถ ์ฉ์ด์ฑ, ๋ฉํ๋ฐ์ดํฐ ํํฐ๋ง ๊ธฐ๋ฅ ๋ฉด์์ ์ข๋ค. git ๋ ํฌ์งํ ๋ฆฌ๋ก ๋ณ๋์ ์ปฌ๋ ์ ์ ๋ง๋ค์ด ํ๋ก์ ํธ ๊ฐ ์ฝ๋ ๋งฅ๋ฝ์ด ์์ด์ง ์๋๋ก ๊ด๋ฆฌํ๋ค.
์ฝ๋ ์กฐ๊ฐ์ ๋ฒกํฐ๋ก ๋ณํํ๋ ์๋ฒ ๋ฉ ๋ชจ๋ธ์ ์ด๋ค ๊ฑธ๋ก ์ฌ์ฉํ ๊ฑธ๊น?
ํ์ฌ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ Gemini embedding ๋ชจ๋ธ(gemini-embedding-001)์ ์ฌ์ฉํ๋ค. ์ธ๋ฐํ ์๋ฏธ ์ฐจ์ด ๊ตฌ๋ถ๊ณผ ๋น์ฉ ์ฐจ์์์ ์ ์ . 45๋ถ์ด๋ ๊ฑธ๋ ธ๋ ์๋ฒ ๋ฉ ์ฒ๋ฆฌ๋ฅผ 500๊ฐ์ฉ ๋ฌถ์ด์ batch ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ๊ฟ 8๋ถ์ด๋ผ๋ ์๊ฐ์ผ๋ก ์ต์ ํ ์์ ์ ์งํํ๋ค.
์๋ ์ ๋ฐ์ดํธ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
GitLab CI/CD๋ก dev ๋ธ๋์น์ ์๋ก์ด ์ฝ๋๊ฐ ํธ์ฌ๋ ๋๋ง๋ค ๋ณ๊ฒฝ๋ ํ์ผ๋ง ๊ฐ์งํ์ฌ ํด๋น ๋ถ๋ถ์ ๋ฒกํฐ๋ง Vector DB์ ์๋์ผ๋ก ์ ๋ฐ์ดํธ ๋๋๋ก ํ๋ค.
๋๋ถ์ AI๋ ํญ์ ์ต์ ์ฝ๋๋ฅผ ํ์ตํ๊ฒ ๋๋ค.
ํ ์คํธ ์ฝ๋ ์๋ ์์ฑ
AI๋ ์ ๋ ฅ ๊ฐ์ ๋ํด Vector DB์์ ๊ด๋ จ์ฑ ๋์ ๊ธฐ์กด ์ฝ๋์ ํ ์คํ์ผ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํด์ ๊ทธ์ ๋ง๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด์ค๋ค.(๋์์ธ ๋ช ์ธ๋ ์ต๊ทผ ๋ณ๊ฒฝ ๋ฑ์ ๋ค์ํ ๋งฅ๋ฝ์ ์ดํดํด์ ํ ์คํธ๋ฅผ ๋ง๋ค์ด์ค๋ค ๋๋ฐ ์์ฃผ ๋ฐ์ํ๋ ์ค๋ฅ ํจํด๋ ํ์ ํ๋ค!)
๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ ์์ฐ์ค๋ฝ๊ฒ ๋ น์๋ค๋๋ก npx generate ๋ช ๋ น์ด๋ฅผ ํตํด ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ์ ํ ๋ด ํ์ฐํ๋ ๋ฐ ๊ธฐ๋ฐ์ด ๋์๋ค.
AI ์ฝ๋ ๋ฆฌ๋ทฐ์ด Diffy
Merge Request๋ ์ต์ 2๋ช ์ด์์ด ์ดํธ๋ฃนํด์ผ ํ๋ค๋ ๊ท์น์ด ์๋๋ฐ GitLab Webhook์ ์ด์ฉํด์ Diffy๊ฐ ์ฆ์ ์๋๋๋๋ก ํ๋ค.
RAG๋ฅผ ์ด์ฉํ์ฌ diff๋ง ๋ณด๋ ๊ฒ ์๋๋ผ ์ธ ๊ฐ์ง ์ ๋ณด(๋ณ๊ฒฝ๋ ์ฝ๋ ์์ฒด, Vector DB์ ์๋ฏธ์ ์ผ๋ก ์ ์ฌํ ๊ธฐ์กด ์ฝ๋ ์กฐ๊ฐ๋ค, ํ์ ์ฝ๋ ์์ฑ ๋ฌธ์)๋ฅผ ํจ๊ป ๊ณ ๋ คํ์ฌ ๋ฆฌ๋ทฐ๋ฅผ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ด๋ค ์ข ๋ฅ์ ํผ๋๋ฐฑ์ ์ฃผ๋๊ฐ? ํ๋กฌํํธ ์์ง๋์ด๋ง์ผ๋ก ๋ณ๊ฒฝ๋ ์ฝ๋ ๋ผ์ธ์ ๋ํด์๋ง ๋ฆฌ๋ทฐ๋ฅผ ์์ฑํ๋ผ๋ ๋ช ํํ ์ง์์ ๋ถํ์ํ ์ฝ๋, ์ฃ์ง ์ผ์ด์ค ์ฒ๋ฆฌ ๋ฏธํ , ์ฝ๋ ์ค๋ณต, ์ฌ์ฉํ์ง ์๋ ๋ณ์, ๋ฃฐ ์๋ฐ ์ฌํญ๋ค์ด ์๋์ง ์ง์ ์ ์ผ๋ก ๋ณด๋๋ก ํ๋ค.
๋จ, ์ฃผ๊ด์ ์ธ ํผ๋๋ฐฑ(๋ฆฌํฉํ ๋ง ๊ฐ์ ๋ถ๋ถ)์ ๋ฃ์ง ์์๋ค๊ณ ํ๋ค.
์ฆ, ๋ช ํํ ๊ธฐ์ค์ ๋ํ ๊ฒ์ฆ์ AI๊ฐ, ์ฃผ๊ด์ ์ธ ํ๋จ์ด๋ ์ ์ฒด ์ํคํ ์ฒ์ ๋ํ ํ๊ฐ๋ ์ฌ๋์ด ํ๋ ๊ฒ์ด๋ค.
๋๋์ : RAG๋ก ์ง์ ์ฝ๋ ๋ฆฌ๋ทฐ์ ํ ์คํธ ์ฝ๋๋ฅผ ๋ง๋ค์ด ๋๋ค๋ ๊ฒ.. ์์ฐ์ฑ ๋ถ๋ถ์์ AI๋ฅผ ํ์ฉํ ํ์ ์ ์ธ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํ๋ค. ๋ฆฌ๋ทฐ๋ฅผ ํ ๋๋ง๋ค ๊ผผ๊ผผํ๊ฒ ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ์์ํ ์ค์๋ ์๋์ง ํ์ธํ๋ ๋ฐ ์๊ฐ์ด ๊ฝค ๊ฑธ๋ ธ๋๋ฐ AI๊ฐ ์ด๊ฑธ ๋์ฒดํ๊ณ ๋ํ ํ์ ์ฝ๋ ์คํ์ผ์ ๊ธฐ๋ฐ์ผ๋ก ๋ฆฌ๋ทฐํด์ฃผ๊ณ ํ ์คํธ๋ฅผ ํด์ค๋ค๋ฉด ์ ๋ง ํธํ ๊ฒ ๊ฐ๋ค. DX ํฅ์์ ๋ํ์ ์ธ ์ผ์ด์ค ๊ฐ๋ค.
๐ https://techblog.gccompany.co.kr/%EC%9A%B0%EB%A6%AC-%ED%8C%80-%EC%BD%94%EB%93%9C-%EC%8A%A4%ED%83%80%EC%9D%BC%EC%9D%84-%EC%95%84%EB%8A%94-ai-%EB%A7%8C%EB%93%A4%EA%B8%B0-rag%EC%99%80-vector-db-%ED%99%9C%EC%9A%A9%EA%B8%B0-94532d92b0a3
๐ https://techblog.gccompany.co.kr/%EC%9A%B0%EB%A6%AC-%ED%8C%80-%EC%BD%94%EB%93%9C-%EC%8A%A4%ED%83%80%EC%9D%BC%EC%9D%84-%EC%95%84%EB%8A%94-ai-%EB%A7%8C%EB%93%A4%EA%B8%B0-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%BD%94%EB%93%9C-%EC%9E%91%EC%84%B1-gitlab-mr-%EB%A6%AC%EB%B7%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0-07e573e7648e
Amazon DynamoDB ์ํคํ ์ฒ
์๋ง์กด ๋ด๋ถ์์ DynamoDB ์ ์ฒ์์๋ ์ด๋ค ์์คํ ์ ์ผ๊ณ , ์ด๋ค ๋ฌธ์ ๋ฅผ ๊ฒช์๊ณ , ๊ทธ๊ฒ์ด ์ด๋ป๊ฒ DynamoDB๋ก ๋ฐ์ ํ๋์ง์ ๊ณผ์ ์ ์์๋ณด์.
์๋ง์กด์ ๊ธฐ์กด ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์๋ง์กด์ ์ฑ์ฅ ์๋๋ฅผ ๋ฐ๋ผ๊ฐ๋ ๊ฒ์ด ๋ฒ๊ฑฐ์ ๋ค๊ณ ํ๋ค. ์๋ง์กด์ ์ผํ์นดํธ๋ฅผ ์๊ฐํ๋ฉด, ๋ฐ์ดํฐ๊ฐ ์ค์๊ฐ์ผ๋ก ๋ณํํ๊ณ ํธ๋ํฝ๋ ์ค๋ฅด๋ฝ๋ด๋ฆฌ๋ฝ ํ๊ธฐ ๋๋ฌธ์ ํญ์ ์์ ์ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํ๋ค.
DynamoDB๋ ๋ถ์ฐ ์์คํ ์์ ๊ฐ์ฉ์ฑ์ด๋ ํ์ฅ์ฑ ๋ฉด์์ ๋ฐ์ด๋ฌ์ง๋ง,๊ฒฐ์ ์ ์ธ ๋จ์ ์ผ๋ก๋ ์ฑ๊ธ ํ ๋ํธ ๋ฐฉ์์ด ์์๋ค.
์ฑ๊ธ ํ ๋ํธ
ํ ํ์ด ์ง์ ์ค์น๋ถํฐ ์ด์๊น์ง ๋ ์ ์ ์ผ๋ก ์งํํ๋ค๋ ๊ตฌ์กฐ๋ฅผ ๋ปํ๋ค.
์ด์ ๋ถ๋ด์ด ์ปธ๊ธฐ์ ๊ทธ ๋์์ผ๋ก Simple DB ์๋น์ค๋ฅผ ๋ง์ด ์ผ๋ค.
Simple DB
ํ ์ด๋ธ ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์์ ๊ด๋ฆฌํ ์๋น์ค๋ก ์ด์ ๋ถ๋ด์ ํจ์ฌ ์ ๋ค. ํ์ง๋ง ํ ์ด๋ธ ํ๋ ๋น ์ ์ฅ ์ฉ๋์ด ๋ฑ ์ ํด์ ธ ์๊ณ ์ฒ๋ฆฌ๋๋ ๋ฎ๋ค. ๋ชจ๋ ์์ฑ์ ๋ค ์ธ๋ฑ์ฑํด์ ์๋ต ์๋๋ฅผ ์์ธกํ๊ธฐ๊ฐ ์ด๋ ต๋ค. ์ด๋ฐ ๋จ์ ์ด ์๋ค.
DynamoDB
- ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ ์๋น์ค: ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์์ ๋ณต์กํ ๊ด๋ฆฌ(์ํํธ์จ์ด ์ ๋ฐ์ดํธ, ํ๋์จ์ด ๊ด๋ฆฌ, ์๋ฒ ์ค์ , ๋ฐฑ์ , ์ฅ์ ๋ณต๊ตฌ ๋ฑ)์์ ํด๋ฐฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ฝ๋ ์ง๊ธฐ์๋ง ์ง์คํ๋ฉด ๋๋ค.
- ๋ฉํฐ ํ ๋ํธ ์ํคํ ์ฒ: ์ฌ๋ฌ ๊ณ ๊ฐ์ ์์ ์ ๊ฐ์ ํ๋์จ์ด์์ ๋๋ ค์ ๋น์ฉ ํจ์จ์ ๋์ด๋ ๋ฐฉ์์ด๋ค. ์ํฌ ๋ก๋ ๊ฒฉ๋ฆฌ๋ ๊ฐ ๊ณ ๊ฐ์ ์์ฒญํ ์์(์ฒ๋ฆฌ๋)์ ๋ฏธ๋ฆฌ ํ ๋นํ๋ค.
- ํ ์ด๋ธ ํฌ๊ธฐ ๋ฌด์ ํ๊ณผ ๋ฐ๋ฆฌ์ด ์์ค์ ํ๊ท ์๋ต์๊ฐ
DynamoDB์์ ๋ฐ์ดํฐ ๋ณดํธ, ๊ณ ๊ฐ์ฉ์ฑ์ ์ด๋ป๊ฒ ๋ณด์ฅํ๋๊ฐ?
์ฌ์ฉ์ ๋ฐ์ดํฐ๋ ํ๋์ AWS region ์์์๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋จ์ด์ง ๊ฐ์ฉ์์ญ(AZ)์ ์๋์ผ๋ก ๋ณต์ ๋๋ค. ๊ทธ๋ ๊ธฐ์ ํ AZ์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ์๋น์ค๋ ๊ณ์ ๋์๊ฐ๋ค.
Global Table์ด๋ผ๋ ๊ธฐ๋ฅ์ ์ฐ๋ฉด, ์ฌ๋ฌ AWS region์ ๊ฑธ์ณ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ ์ ์๋ค. => ๋ฐ์ดํฐ ์๋ ์ด๋์๋ ๋น ๋ฆ, ๋ฌธ์ ์๊ฒจ๋ ์๋น์ค ์ค๋จ๋์ง ์์!
DynamoDB๋ ํค-๊ฐ ์ ์ฅ์์ด๋ฉฐ, ๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํน์ง์ด ์๋ค.
์ฆ, ๊ฐ๋ฐ ์ค์ ์์ฑ์ ๋ฐ๊ฟ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.
DynamoDB์ ๋ด๋ถ ๋์ ๋ฐฉ์
ํ ์ด๋ธ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์๊ฐ ์ ํ Partition Key๋ฅผ ๊ธฐ์ค์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ํํฐ์ ์ผ๋ก ๋๋์ด ์ ์ฅ๋๋ค.
๋ด๊ตฌ์ฑ๊ณผ ๊ฐ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด ๊ฐ ํํฐ์ ๋ฐ์ดํฐ๋ ์๋ก ๋ค๋ฅธ AZ์ ์ฌ๋ฌ ์๋ฒ์ ๋ณต์ ๋ฅผ ํ๋ค. ์ด ๋ณต์ ๋ณธ๋ค์ ๋ฌถ์์ ๋ณต์ ๊ทธ๋ฃน ์ด๋ผ๊ณ ํ๋ค.
๊ทธ๋ ๋ค๋ฉด ์ฐ๊ธฐ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ด๋ป๊ฒ ๋ง์ถ๋๊ฐ?
Multi-Paxos๋ผ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ค. ๊ฐ ๋ณต์ ๊ทธ๋ฃน ์์๋ ๋ฆฌ๋ ์ญํ ์ ํ๋ ๋ณต์ ๋ณธ์ด ์๋ค. ๋ชจ๋ ์ฐ๊ธฐ ์์ฒญ์ ์ด ๋ฆฌ๋๊ฐ ๋ฐ์์ ์ฒ๋ฆฌํ๋ค. ๋ฆฌ๋๋ ์ฐ๊ธฐ ์์ฒญ์ ๋ฐ์ผ๋ฉด ์ฐ๊ธฐ ์์ฒญ ๋ก๊ทธ๋ผ๋ ๊ณณ์ ๊ธฐ๋กํ๊ณ ๋ค๋ฅธ ๋ณต์ ๋ณธ๋คํํ ๋ฟ๋ฆฐ๋ค.
์นดํ์นด ๋ด๋ถ ์๋ ๋ฐฉ์์ Raft ํฉ์ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น์ทํ ์๋ฆฌ์ธ ๊ฒ ๊ฐ๋ค.
ํด๋ผ์ด์ธํธ ์์ฒญ์ ์์ฒญ ๋ผ์ฐํฐ๋ผ๋ ํฐ ๋ถ์ฐ ์์คํ ์ ๋์ฐฉํ๋ค. ์ด ๋ผ์ฐํฐ๋ ๋ช ๊ฐ์ง ์ค์ํ ์ผ์ ํ๋ค.
- AWS IAM๊ณผ ์ฐ๋ํด์ ์ด ์ฌ์ฉ์๊ฐ ์์ฒญํ ๊ถํ์ด ์๋์ง ํ์ธ
- ์์ฒญ์ ๋ค์ด์๋ Partition Key๋ฅผ ๋ณด๊ณ ์ด ๋ฐ์ดํฐ๊ฐ ์ค์ ์ด๋ ํํฐ์ , ์คํ ๋ฆฌ์ง ๋ ธ๋์ ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ ๋ฉํ๋ฐ์ดํฐ ์๋น์ค์์ ๋ผ์ฐํ ์ ๋ณด๋ฅผ ํ๋
- ์ฌ์ฉ์๊ฐ ํ ๋น ๋ฐ์ ์ฒ๋ฆฌ๋(RCU/WCU)์ ๋์ด์๋ ์์ฒญ์ธ์ง Admission Control์ผ๋ก ํ์ธ
์ด ๋ชจ๋ ๊ณผ์ ์ ํต๊ณผํ๋ฉด ์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
MemDS
๋ชจ๋ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ MemDS ์๋ฒ ๋ฉ๋ชจ๋ฆฌ์ ๋ถ์ฐ์ํค๊ณ ๊ฐ ์์ฒญ ๋ผ์ฐํฐ๋ MemDS ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํ๋ ๋ก์ปฌ ์บ์๋ฅผ ๊ฐ๋๋ค.
๋ผ์ฐํฐ๋ ์ผ๋จ ๋ก์ปฌ ์บ์๋ฅผ ์ฐ๊ณ ๋น๋๊ธฐ์ ์ผ๋ก MemDS์ ์์ฒญํด์ ์ต์ ์บ์ ์ํ๋ก ์ ์งํ๋๋ก ํ๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ผ์ฐํฐ๊ฐ ์ถ๊ฐ๋์ด๋ ๋ฉํ๋ฐ์ดํฐ ์๋น์ค ๋ถ๋ด ์์ด ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ๋ฉํ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๊ฒ ๋๋ค.
ํน์ ๋ฐ์ดํฐ์๋ง ์์ฒญ์ด ๋ชฐ๋ฆฌ๋ Hot Partition์ ์ด๋ป๊ฒ ๋์ฒํ ๊น?
Hot Partition
ํ ์ด๋ธ ์ ์ฒด ์ฉ๋์ ์์ง ๋ง์ด ๋จ์๋๋ฐ ํน์ ํํฐ์ ์ ํธ๋ํฝ์ด ์ง์ค๋๋ฉด ํํฐ์ ์ฉ๋ ํ๊ณ๋ฅผ ๋์ด ์์ฒญ์ด ๊ฑฐ๋ถ๋๋ค.(Throttling)
ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ํด๊ฒฐํ ์ ์๋ค.
- Bursting: ๊ฐ ํํฐ์ ์ด ์์ฐ๊ณ ๋จ๊ฒจ๋ ์ฒ๋ฆฌ๋, ํ ์ด๋ธ ์ ์ฒด์์ ๋จ๋ ์ฉ๋์ ์ผ์์ ์ผ๋ก ๋น๋ ค์์ ์งง์ ์๊ฐ ๋์์ ํธ๋ํฝ ํญ์ฆ์ ํก์ํ๋ ๋ฐฉ์์ด๋ค.(์ ๊น ์ฉ๋์ ์ด๊ณผํด์ ์ธ ์ ์๊ฒ ํด์ฃผ๋ ๋ฐฉ์)
- Global Admission Control(GAC): Bursting์ ์ด๋ฏธ ํฐ์ง ๋ฌธ์ ์ ๋์ํ๋ ๋ฐฉ์์ด๋ผ๋ฉด, GAC๋ ๋ฏธ๋ฆฌ ์์ง์ด๋ ๋ฐฉ์์ด๋ค. ์ค์ ์์คํ ์ด ํ ์ด๋ธ ์ ์ฒด์ ๋จ์ ์ฉ๋์ ์ค์๊ฐ์ผ๋ก ๊ณ์ ์ถ์ ํ๋ค. ๊ทธ๋์ ์์ฒญ ๋ผ์ฐํฐ๋ค์ด ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ ์ ํ๊ฐ๋ฅผ ๋ฐ๋ ๋ฐฉ์์ด๋ค.
๋ฐ์ดํฐ ๋ด๊ตฌ์ฑ
์ฐ๊ธฐ ์ ๋ก๊ทธ(WAL)๋ ๋ณต์ ๋ ๋์ง๋ง S3์ ๋ฐฑ์ ๋ ๋๋ค. ์ฌ๋ฌ ์๋ฒ์ ๋์์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ S3์ ์ ์ฅ๋ ๋ก๊ทธ๋ฅผ ํตํด์ ๋ฐ์ดํฐ๋ฅผ ๋ณต๊ตฌํ ์ ์๋ค.
๋นํธ ์์ ๊ฐ์ ์ค๋ฅ๋? => DynamoDB๋ ์ฒดํฌ์ฌ์ ์ด์ฉํ๋ค. ๋ฐ์ดํฐ๋ฅผ ๋คํธ์ํฌ๋ก ๋ณด๋ผ ๋, ๋์คํฌ์ ์ ์ฅํ ๋, ๋ฐ์ดํฐ์ ๋์งํธ ์ง๋ฌธ ๊ฐ์ ์ฒดํฌ์ฌ์ ๋ถ์ฌ๋๋๋ค. ์ด ์ฒดํฌ์ฌ์ ํ์ธํด์ ๋ฐ์ดํฐ ๋ณ์กฐ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๋ค.
๊ณ ๊ฐ์ฉ์ฑ
์ฅ์ ๋ฅผ ๊ฐ์งํ๊ณ ๋์ํ๋ ๊ณผ์ ์์ DynamoDB๋ ํ ๋ณต์ ๋ณธ์ด ๋ฆฌ๋์๊ฒ ๋งํ๊ธฐ ์ ์ ๋ค๋ฅธ ๋๋ฃ ๋ณต์ ๋ณธ๋คํํ ๋ฌผ์ด๋ณธ๋ค. ๋๋ง์ ๋ฌธ์ ์ธ์ง ์๋์ง ํ๋จํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฒ ๋ถํ์ํ ๊ต์ฒด๋ฅผ ์ต์ํํ๊ณ ์์คํ ์์ ์ฑ์ ๋์ด๊ฒ ๋๋ค.
๋๋์ : ์ฒ์์ ๋จ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ด์ผ๊ธฐ์ธ ์ค ์์๋๋ฐ, ์๋ง์กด์ด ์ํ์ฐฉ์ค๋ฅผ ๋ง์ด ๊ฒช์๊ณ ๊ทธ๊ฑธ ํด๊ฒฐํ๋ฉด์ ์ง๊ธ์ DynamoDB๊ฐ ๋ง๋ค์ด์ก๋ค๋ ์ ์ด ํฅ๋ฏธ๋ก์ ๋ค. ํ ์๋น์ค๊ฐ ์์ ์ ์ผ๋ก ๋์๊ฐ๊ธฐ๊น์ง ์ผ๋ง๋ ๋ง์ ๊ณ ๋ฏผ๊ณผ ์ ํ์ด ์์ฌ ์๋์ง ๋๊ปด์ก๋ค. ๊ธฐ์ ์์ฒด๋ณด๋ค ์ ์ด๋ฐ ๊ตฌ์กฐ๊ฐ ํ์ํ๋์ง ์ดํดํ๊ฒ ๋๋ฉด์, ๋ถ์ฐ ์์คํ ์ด ์๊ฐ๋ณด๋ค ํจ์ฌ ํ์ค์ ์ธ ๋ฌธ์ ํด๊ฒฐ์์ ์ถ๋ฐํ๋ค๋ ๊ฑธ ์ ์ ์์๋ค!
๐ https://blog.bytebytego.com/p/a-deep-dive-into-amazon-dynamodb