๐ Agentic Postgres ์ฑ๋ฆฐ์ง ์ฐ์น์๋ฅผ ์ถํํฉ๋๋ค! (Tiger Data์ ํจ๊ป)
# ์๋ก โ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ, ๊ธฐ๋๋ฅผ ๋์ด์ ๊ฒฐ๊ณผ
์ง๋ ๋ช ์ฃผ๊ฐ Postgres ์ฑ๋ฆฐ์ง์ ์ฐธ์ฌํด ์ฃผ์ ์ฌ๋ฌ๋ถ, ๊ทธ๋ฆฌ๊ณ ์ด์ ์ ๋ถํ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ ๋ชจ๋ ๊ฐ๋ฐ์ ๋ถ๋ค๊ป ์ง์ฌ์ผ๋ก ๊ฐ์ฌ๋๋ฆฝ๋๋ค. โ์ธ์ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ๊น?โ ๋ผ๋ ๊ธฐ๋์ ์ค๋ ์์ ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ์ด ๋๋์ด ์ฐพ์์์ต๋๋ค. ์ด๋ฒ ๊ธ์์๋ Tiger Data์ ํ์ ํด ์งํ๋ Agentic Postgres Challenge์ ์ฐ์น์๋ฅผ ๋ฐํํ๊ณ , ์ฑ๋ฆฐ์ง๋ฅผ ํตํด ์ป์ ์ ์๋ ๋ฐฐ์๊ณผ ์์ผ๋ก์ ํ์ฉ ๋ฐฉ์์ ์๊ฐํฉ๋๋ค. ์ด๋ณด์๋ ์ดํดํ๊ธฐ ์ฌ์ด ์ค๋ช ์ ๊ณ๋ค์ฌ, ์ฌ๋ฌ๋ถ์ด ๋ค์ ํ๋ก์ ํธ์ ๋ฐ๋ก ์ ์ฉํ ์ ์๋๋ก ๋์๋๋ฆด๊ฒ์.
# ๋ณธ๋ก
# 1๏ธโฃ ์ฑ๋ฆฐ์ง ๊ฐ์์ ๋ชฉํ โ ์ Postgres์ธ๊ฐ?
Postgres๋ ์คํ์์ค ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค ๊ฐ์ฅ ์์ ์ ์ด๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ ์์คํ ์ผ๋ก, ํด๋ผ์ฐ๋ยทAIยท๋น ๋ฐ์ดํฐ ๋ฑ ๋ค์ํ ๋ถ์ผ์์ ํต์ฌ ์ธํ๋ผ๋ก ํ์ฉ๋ฉ๋๋ค.
์ด๋ฒ Agentic Postgres ์ฑ๋ฆฐ์ง๋ ์ค์ ๋น์ฆ๋์ค ์๋๋ฆฌ์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก, ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง, ์ฟผ๋ฆฌ ์ต์ ํ, ํธ๋์ญ์ ๊ด๋ฆฌ ๋ฑ์ ์ค์ ์ฒ๋ผ ์ฐ์ตํ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
Tiger Data๋ ๋ฐ์ดํฐ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ๊ณผ ๋ถ์ ์๋ฃจ์ ์ ์ ๊ณตํ๋ ๊ธฐ์ ์ผ๋ก, ์ด๋ฒ ์ฑ๋ฆฐ์ง๋ฅผ ํตํด ์ปค๋ฎค๋ํฐ์ ํ์ ํ๊ณ ์ ํ๋ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ์์์ต๋๋ค.
ํต์ฌ ํฌ์ธํธ: ์ด๋ณด์๋ ๊ธฐ๋ณธ์ ์ธ SQL ๋ฌธ๋ฒ๋ง ์๋ฉด ๋ฐ๋ก ๋์ ํ ์ ์๋๋ก ๋จ๊ณ๋ณ ๊ฐ์ด๋์ ์ํ ๋ฐ์ดํฐ์ ์ ์ ๊ณตํ์ต๋๋ค.
# 2๏ธโฃ ์ฐ์น์ ์ ์ ๊ธฐ์ค โ ๊ณต์ ํ๊ณ ํฌ๋ช ํ ํ๊ฐ
| ํ๊ฐ ํญ๋ชฉ | ๋น์ค | ์ค๋ช |
|----------|------|------|
| ๋ฐ์ดํฐ ๋ชจ๋ธ ์ค๊ณ | 30% | ์ ๊ทํ ์์ค, ์คํค๋ง ๊ฐ๋ ์ฑ |
| ์ฟผ๋ฆฌ ํจ์จ์ฑ | 30% | ์ธ๋ฑ์ค ํ์ฉ, ์คํ ๊ณํ ๋ถ์ |
| ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ | 20% | ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง ๊ตฌํ |
| ํ๋ ์ ํ ์ด์ | 10% | ๊ฒฐ๊ณผ๋ฌผ ์๊ฐํ์ ์ค๋ช |
| ํ์ ํ๋ | 10% | ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๋ฌธ์ํ |
์ฐ์น์๋ ์ ํญ๋ชฉ์ ๋ชจ๋ ๋ง์กฑ์ํค๋ฉด์ ์ค์ ๋น์ฆ๋์ค ์๊ตฌ๋ฅผ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ๋ฐ์ํ ํ์ผ๋ก ์ ์ ๋์์ต๋๋ค.
TIP: ์ด๋ณด์๋ผ๋ฉด ์ฟผ๋ฆฌ ์คํ ๊ณํ(EXPLAIN)์ ํ์ธํด ๋ณด๋ ์ต๊ด์ ๋ค์ด๋ฉด, ์ฑ๋ฅ ์ต์ ํ์ ํฐ ๋์์ด ๋ฉ๋๋ค.
# 3๏ธโฃ ์ฐ์น ํ ์๊ฐ โ ๊ทธ๋ค์ ์ฑ๊ณต ๋น๊ฒฐ์?
| ์์ | ํ ์ด๋ฆ | ์ฃผ์ ์ฑ๊ณผ | ์ฌ์ฉ ๊ธฐ์ |
|------|--------|-----------|-----------|
| 1์ | DataMinds | ๋ณตํฉ ํธ๋์ญ์ ์ 30% ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ | Postgres 14, PL/pgSQL, pgAdmin |
| 2์ | SQLHeroes | ์ธ๋ฑ์ค ์๋ ์์ฑ ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ | Python + Psycopg2, Docker |
| 3์ | ByteCraft | ์ค์๊ฐ ๋์๋ณด๋ ๊ตฌํ | Supabase, Grafana |
DataMinds ํ์ ๋ณต์กํ ๋น์ฆ๋์ค ๋ก์ง์ ํจ์ํ ํ๋ก์์ ์ CTE(Common Table Expressions) ๋ก ๊น๋ํ๊ฒ ๊ตฌํํด ๋์ ์ ์๋ฅผ ๋ฐ์์ต๋๋ค.
SQLHeroes๋ Docker ํ๊ฒฝ์์ ์ผ๊ด๋ ๊ฐ๋ฐยทํ ์คํธ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด, ํ ์ ์ฒด์ ํ์ ํจ์จ์ ํฌ๊ฒ ํฅ์์์ผฐ์ต๋๋ค.
ByteCraft๋ Supabase์ ์ฐ๋ํด ์ค์๊ฐ ๋ฐ์ดํฐ ์๊ฐํ๋ฅผ ๊ตฌํ, ๊ฒฐ๊ณผ๋ฌผ์ ์ง๊ด์ ์ผ๋ก ๋ณด์ฌ์ฃผ์ด ์ฌ์ฌ์์์๊ฒ ์ข์ ์ธ์์ ๋จ๊ฒผ์ต๋๋ค.
# 4๏ธโฃ ์ฑ๋ฆฐ์ง๋ฅผ ํตํด ๋ฐฐ์ด ์ โ ์ด๋ณด์์๊ฒ๋ ์ ์ฉํ ํ
์คํค๋ง ์ค๊ณ๋ ๊ธฐ๋ณธ
- ํ ์ด๋ธ ๊ฐ ๊ด๊ณ๋ฅผ ๋ช ํํ ์ ์ํ๊ณ , ์ธ๋ํค(FK) ๋ก ๋ฌด๊ฒฐ์ฑ์ ํ๋ณดํ์ธ์.
์ธ๋ฑ์ค๋ ํ์ํ ๋๋ง
- ๋ชจ๋ ์ปฌ๋ผ์ ์ธ๋ฑ์ค๋ฅผ ๋ง๋ค๋ฉด ์คํ๋ ค ์ฐ๊ธฐ ์ฑ๋ฅ์ด ์ ํ๋ฉ๋๋ค. ์ฟผ๋ฆฌ ๋น๋์ ์กฐ๊ฑด์ ๋ถ์ํด ํต์ฌ ์ปฌ๋ผ์๋ง ์ ์ฉํ์ธ์.
EXPLAIN ANALYZE ํ์ฉ
- ์คํ ๊ณํ์ ํ์ธํด ๋ณ๋ชฉ ๊ตฌ๊ฐ์ ์ฐพ์๋ด๊ณ ,
VACUUMยทANALYZE๋ก ํต๊ณ๋ฅผ ์ต์ ํํ๋ฉด ์ฑ๋ฅ์ด ํฌ๊ฒ ๊ฐ์ ๋ฉ๋๋ค.
- ์คํ ๊ณํ์ ํ์ธํด ๋ณ๋ชฉ ๊ตฌ๊ฐ์ ์ฐพ์๋ด๊ณ ,
๋ฒ์ ๊ด๋ฆฌ์ CI/CD
git๊ณผGitHub Actions๋ก ์คํค๋ง ๋ณ๊ฒฝ์ ์๋ ํ ์คํธํ๋ฉด, ํ ์ ์ฒด๊ฐ ๊ฐ์ ํ๊ฒฝ์์ ์์ ํ ์ ์์ด ์ค๋ฅ๋ฅผ ์๋ฐฉํ ์ ์์ต๋๋ค.
# ๊ฒฐ๋ก โ ๋ค์ ๋์ ์ ์ฌ๋ฌ๋ถ ์ฐจ๋ก!
Agentic Postgres ์ฑ๋ฆฐ์ง๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ค์ ์ญ๋์ ํค์ฐ๋ ์ต๊ณ ์ ๋ฌด๋์์ต๋๋ค. ์ฐ์น์๋ค์ ์ฑ๊ณต ์คํ ๋ฆฌ๋ฅผ ๋ณด๋ฉฐ, ์ฌ๋ฌ๋ถ๋ ๋ค์๊ณผ ๊ฐ์ ํ๋์ ์ค์ฒํด ๋ณด์ธ์.
๋ฌด๋ฃ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ค๋ฐ์ ์ง์ ์คํค๋ง ์ค๊ณ์ ์ฟผ๋ฆฌ ์ต์ ํ ์ฐ์ตํ๊ธฐ.
Tiger Data์ ๊ฐ์ ํํธ๋์ฌ์ ๊ต์ก ์๋ฃ๋ฅผ ํ์ฉํด ์ค๋ฌด ํ๋ก์ ํธ์ ์ ์ฉํด ๋ณด๊ธฐ.
์ปค๋ฎค๋ํฐ ํฌ๋ผ์ ์ฐธ์ฌํด ์ง๋ฌธํ๊ณ , ๋ค๋ฅธ ๊ฐ๋ฐ์์ ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ์งํํ๋ฉฐ ์ฑ์ฅํ๊ธฐ.
ํ๋ ์ ๋: ์ง๊ธ ๋ฐ๋ก Agentic Postgres ์ฑ๋ฆฐ์ง ํ์ด์ง๋ฅผ ๋ฐฉ๋ฌธํด ์์ธ ์๋ฃ์ ๋ค์ ๋ผ์ด๋ ์ ์ฒญ ๋ฐฉ๋ฒ์ ํ์ธํด ๋ณด์ธ์!
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฌธ๊ฐ๋ก ๊ฐ๋ ๊ธธ์ ๊พธ์คํ ์ค์ ์ฐ์ต๊ณผ ์ปค๋ฎค๋ํฐ์์ ๊ต๋ฅ์์ ์์๋ฉ๋๋ค. ์ค๋ ๋ฐฐ์ด ๋ด์ฉ์ ๋ฐ๋ก ์ ์ฉํด, ์ฌ๋ฌ๋ถ๋ง์ Postgres ๋ง์คํฐ๊ฐ ๋์ด ๋ณด์ธ์! ๐
Comments
Join the discussionNo comments yet. Be the first to comment.