Portfolio
๋ฐฑ์๋ ์์ง๋์ด๋ง ์ญ๋์ผ๋ก AI ๊ธฐ๋ฅ์ด ์์ ์ ์ผ๋ก ์๋น์ค๋ ์ ์๋๋ก ๋ท๋ฐ์นจํ๋ Backend + AI ์์ง๋์ด์ ๋๋ค.
- AI ๋ชจ๋ธ/LLM ์์คํ ์ ์ค์ ์ ํ ํํ๋ก ์ฐ๊ฒฐํ๊ธฐ ์ํด API, ์ธ์ฆ/์ธ๊ฐ, ๋น๋๊ธฐ ์ฒ๋ฆฌ, ๋ฐฐํฌ/๊ด์ธก๊น์ง end-to-end๋ก ์ค๊ณยท๊ตฌํํฉ๋๋ค.
- ๋ฌธ์ ๋ฅผ ์งํ๋ก ์ ์ํ๊ณ (์ ํ๋/์ง์ฐ/์ฒ๋ฆฌ๋), ์คํโ๊ฐ์ โ์ด์๊น์ง ๋ฐ๋ณตํ๋ฉฐ ์ฑ๋ฅ์ ๋์ด์ฌ๋ฆฌ๋ ๊ฒ์ ์งํฅํฉ๋๋ค.
Profile
Major
- ์ฐ์ ๊ณตํ ํ์ฌ
Contact & Channel
- Phone: 010-8882-9000
- Email: nsby9000@gmail.com
- Github: https://github.com/hyeongmin90
Core Strengths
- AI ์ญ๋: ์์ด์ ํธ, RAG ํ์ดํ๋ผ์ธ์ ๊ฒ์ยท์ฌ์ ๋ ฌยทํ๊ฐ๊น์ง ํ์ฅํ๊ณ , ์ด๋ฅผ ์ ํ/์ ๋ฌด ํ๋ฆ์ ์ฐ๊ฒฐ
- ๋ฐฑ์๋ ์ค๊ณ/๊ตฌํ: Spring Boot/FastAPI ๊ธฐ๋ฐ์ MSA ์ํคํ ์ฒ์ ํธ๋ ์ ์ ๊ด๋ฆฌ ๋ฑ์ ์ญ๋์ ๊ฐ์ถ๊ณ ์์ต๋๋ค.
- ์ด์/๋ฐฐํฌ ์ญ๋: AWS, Docker, K8S ๋ฑ์ ํ์ฉํ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ํ๊ฒฝ ์ด์ ๋ฐ CI/CD ๊ตฌ์ถ์ด ๊ฐ๋ฅํฉ๋๋ค.
Software Engineer
์ง์์ ์ธ ํ์ต
- ๋น ๋ฅด๊ฒ ๋ณํํ๋ ๊ธฐ์ ํธ๋ ๋์ ๋ง์ถ์ด ์๋ก์ด ์ง์๊ณผ ๋๊ตฌ๋ฅผ ์ง์์ ์ผ๋ก ํ์ตํ๋ฉฐ ์๊ธฐ ๊ฐ๋ฐ์ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค.
ํ์ ๊ณผ ์ปค๋ฎค๋ํฐ
- ํ ํ๋ก์ ํธ์ ์คํฐ๋๋ฅผ ํตํด ํ์ ๋ฅ๋ ฅ์ ๊ธฐ๋ฅด๊ณ , ์ํต์ ๋ฐํ์ผ๋ก ํจ๊ป ๋ ๋์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ด๋ ๊ฒฝํ์ ์๊ณ ์์ต๋๋ค.
๊ธฐ์ ํ์ฉ
- ๋ฌธ์ ์ ๋ฐ๋ผ ์ ์ ํ ํ๋ ์์ํฌ๋ฅผ ์ ํํ๊ณ ๋น ๋ฅด๊ฒ ํ์ตํ๋ฉฐ, ํ์ฉํ ์ ์์ต๋๋ค.
Skills
Backend
- Java/Spring Boot, Python/FastAPI
- REST API ์ค๊ณ, ํธ๋ ์ ์ ๊ด๋ฆฌ
AI / LLM Engineering
- Python
- LangChain, LangGraph
- RAG(Chunking/Retrieval), Hybrid Search(BM25 + Dense)
- LLM Evaluation(DeepEval, Langfuse, LLM-as-a-Judge)
- PyTorch
Data / Infra / DevOps
- MySQL, PostgreSQL/ParadeDB
- Kafka, RabbitMQ
- Docker
- Kubernetes, AWS EKS
- CI/CD (Github actions)
- Grafana, Loki
- Git, GitHub
Frontend
- React
Algorithm
- solved.ac Platinum 4
ProJects
AI ์ง์ ํ๋ ์ด์ ํ๋ซํผ vantage
- ๊ฐ์ธ ํ๋ก์ ํธ
- ๊ธฐ๊ฐ: 2026.05 ~ ์งํ์ค
ํ๋ก์ ํธ ๊ฐ์
์๋ก์ด ๊ธฐ์ , ์๋ก์ด ์ ๋ณด๊ฐ ์์์ง๋ AI ์๋์ ๋ด์ค, ์ ๋ณด ๋ฑ์ ํ ๊ณณ์์ ์์ฝ๊ฒ ๋ณผ ์ ์๋ ๊ฐ์ธ์ฉ ์น ๊ฐ๋ฐ ๋ฐ ์ฌ๋ ์๋ ๊ธฐ์ ํ์ต์ด ๋ชฉํ.
๋ด์ค ์์ง๋ฑ์ ์ ์๊ถ ๋ฌธ์ ๊ฐ ๋ฐ์ ๊ฐ๋ฅํ์ฌ ์ ํ์ ๊ณต๊ฐ(์ฝ๋ a@11F13d8d61708e)
ํ๋ก์ ํธ ๋ชฉํ
- ๋ด์ค, ๊ธฐ์ ๋ธ๋ก๊ทธ, PDF ๋ฑ ๋ค์ํ ์ ๋ณด ์์ง ๋ฐ ๋ ๋ค์ํ ์ ๋ณด์ ์์ง
- ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๋ณผ ์ ์๋๋ก ์ ๋ณด ๊ฐ๊ณต
- ์์ด์ ํฑ RAG ์ฑ๋ด์ ๊ตฌ์ถํ์ฌ ์ํ๋ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์์
์ฌ์ฉ ๊ธฐ์
- AI/LLM: LangChain, OpenAI API, MinerU, Chonkie, DeepEval
- Backend: Java/Spring boot, Python/FastAPI
- DataBase: ParadeDB, Redis
- Frontend: TypeScript, NextJS
- Observability: Grafana, Prometheus, Loki
- Cloud & Infra: Oracle Cloud(ARM), GitHub Actions, Kubernetes(k3s), RabbitMQ
- ๊ฐ๋ฐํ๊ฒฝ: Claude Code, Codex, Antigravity IDE, uv, ty
์ฃผ์ ๊ธฐ๋ฅ
- Agentic RAG ์ฑ๋ด: ์์ง๋ ์ ๋ณด๋ค์ ๊ธฐ๋ฐ์ผ๋ก ์ํ๋ ์ ๋ณด๋ฅผ ์ฝ๊ฒ ์ฐพ์ ์ ์์
- ์น ํผ๋: AI ์์ฝ์ ๊ฑฐ์ณ ์งง์ ๋จํธ ์ ๋ณด๋ง ์ ๊ณตํ๋ฉฐ ์๋ฌธ ๋งํฌ๋ฅผ ์ ๊ณต, ์ํฐํด ํด๋ฌ์คํฐ๋ง์ ํตํด ์ค๋ณต ๊ธฐ์ฌ, ์ฐ๊ด๋ ๊ธฐ์ฌ ๋ฑ์ ์ฐ๊ฒฐ
- PDF/๊ธฐ์ฌ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ: ์ฃผ๋ก ํด์ธ ๋ด์ค, Hacker News, ๊ธฐ์ ๊ธฐ์ ๋ธ๋ก๊ทธ, ์ต์ ๋ ผ๋ฌธ ๋ฑ์ ์์ง ๋ฐ ์ฒ๋ฆฌํ์ฌ ํ์ฉ ๊ฐ๋ฅํ๊ฒ ๊ฐ๊ณต.
์ฃผ์ ํ๋ ๋ฐ ๋ฌธ์ ํด๊ฒฐ ๋ฑ
AI๋ฅผ ์ํ ๊ฐ๋ฐ ํ๊ฒฝ ๊ตฌ์ถ- ๋ฌธ์ : Claude Code์ Codex๋ฅผ ํ์ฉํ ๊ฐ๋ฐ ๊ณผ์ ์์ ์ธ์ ยท๋๊ตฌ ์ ํ ์ ์์ ๋ฌธ๋งฅ์ด ๋จ์ ๋๊ณ , ์ด์ ๊ธฐ๋ก ํ์๊ณผ AI ์ฐ์ถ๋ฌผ ๊ฒ์ฆ์ ๋ง์ ์๊ฐ์ด ์์๋์์ต๋๋ค.
- ํด๊ฒฐ: Notion ๊ธฐ๋ฐ ์์ ๊ธฐ๋ก Wiki๋ฅผ ๊ตฌ์ถํด ๋ฌธ๋งฅ์ ๋ณต์ํ ์ ์๋๋ก ํ๊ณ , AGENTS.md์ Skills์ ๊ฐ๋ฐ ๊ท์น์ ์ ์ํ์ต๋๋ค. ๋ํ Playwright ๊ธฐ๋ฐ E2E ๊ฒ์ฆ ํ๊ฒฝ์ ๊ตฌ์ฑํด AI๊ฐ ์ง์ ์น์ ํ์ธํ๊ณ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ฆํ๋๋ก ํ์ต๋๋ค.
- ๊ฒฐ๊ณผ: AI ๊ฐ ์์ ๋ฌธ๋งฅ์ ์ฐ์์ฑ์ ํ๋ณดํ๊ณ , ๊ฐ๋ฐ๋ถํฐ ๊ฒ์ฆ๊น์ง AI๊ฐ ์ํํ ์ ์๋ ํ๊ฒฝ์ ๊ตฌ์ถํด ๋ฐ๋ณต์ ์ธ ๋ฌธ๋งฅ ์ ๋ฌ๊ณผ ์๋ ๊ฒ์ฆ ๋ถ๋ด์ ์ค์์ต๋๋ค.
๋ฐฑํฐ, FTS(ts_rank), BM25, ํ์ด๋ธ๋ฆฌ๋ ๋ฆฌํธ๋ฆฌ๋ฒ๋ฅผ ๊ฐ๊ฐ ๋ฐ์ดํฐ์ ์ ์ฌ์ฉํด ์ ๋์ ํ๊ฐ๋ฅผ ์งํ. ํ๊ตญ์ด ํํ์ ์ฒ๋ฆฌ๋ฅผ ์ํด Kiwi ์ ์ฉ. (143๋ฌธํญ)
| ๊ตฌ์ฑ | recall@5 | recall@10 | recall@20 | MRR@5 | nDCG@5 | complete@5 |
| ๋ฒกํฐ ๋จ๋ | 0.916 | 0.951 | 0.969 | 0.844 | 0.857 | 0.909 |
| FTS ๋จ๋ | 0.790 | 0.892 | 0.909 | 0.653 | 0.678 | 0.762 |
| BM25 ๋จ๋ | 0.937 | 0.944 | 0.972 | 0.906 | 0.913 | 0.937 |
| FTS hybrid 5:5 | 0.948 | 0.955 | 0.969 | 0.854 | 0.874 | 0.937 |
| BM25 hybrid 5:5 | 0.979 | 0.986 | 0.986 | 0.903 | 0.921 | 0.979 |
- ๋ฌธ์ : RAG ์์ด์ ํธ๊ฐ ๊ฒ์์ ์คํจํ์ ๋ ์ ์ฌํ๊ฑฐ๋ ๋ฌด๊ดํ ์ ๋ณด์ ์์น๋ฅผ ์ธ์ฉํด ๋ต๋ณํ๋ ํ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- ํด๊ฒฐ: Claude๋ก ํฉ์ฑ ๋ฐ์ดํฐ์ ์ ์์ฑยท๊ฒ์ํ๊ณ , DeepEval ๊ธฐ๋ฐ LLM-as-a-Judge ํ๊ฐ ํ๊ฒฝ์ ๊ตฌ์ถํ์ต๋๋ค. ํ๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก Sufficient Context Gate๋ฅผ ๋์ ํด ๋ต๋ณ ์ ๊ฒ์ ๊ทผ๊ฑฐ์ ์ถฉ๋ถ์ฑ์ ๊ฒ์ฆํ๋๋ก ๊ฐ์ ํ์ต๋๋ค.
- ๊ฒฐ๊ณผ: ์ ๋์ ํ๊ฐ ์ฒด๊ณ๋ฅผ ํ๋ณดํ๊ณ , ๊ทผ๊ฑฐ๊ฐ ๋ถ์ถฉ๋ถํ ๊ฒฝ์ฐ ๋ต๋ณ์ ์ ํํด ํ๊ฐ ๋ฐ์์ ์ค์ด๊ณ ์๋ต ์ ๋ขฐ์ฑ์ ๋์์ต๋๋ค.
- ์ด 47๋ฌธํญ - 2ํ ํ๊ท - ์งํ correctness (0.811 โ 0.944)
- ๋ฌธ์ : ๋์ผ ์ฌ๊ฑด์ ์ ์ฌ ๊ธฐ์ฌ๋ค์ด ๊ฒ์ ๊ฒฐ๊ณผ Top-K๋ฅผ ์ ์ ํ๊ณ , ๋ํ ๊ธฐ์ฌ๋ง ์ ๊ณตํ ๊ฒฝ์ฐ ์์ด์ ํธ๊ฐ ์ฐ๊ด ๊ธฐ์ฌ๋ฅผ ํ์ธํ์ง ์์ ์ฑ ๋ต๋ณํ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
- ํด๊ฒฐ: ํด๋ฌ์คํฐ๋ณ ๋ํ ๊ธฐ์ฌ๋ง ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ ธ์ถํ๊ณ , 1์ฐจ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฉํ๋ฐ์ดํฐ๋ก ์ ํํ์ต๋๋ค. ์ค์ ๋ด์ฉ ํ์ธ ์ ์ฐ๊ด ๊ธฐ์ฌ ํ์ฅ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋๋ก ๊ฒ์ ํ๋ฆ์ ๊ฐ์ ํ์ต๋๋ค.
- ๊ฒฐ๊ณผ: ์ค๋ณต ๊ธฐ์ฌ๋ก ์ธํ ๊ฒ์ ๊ฒฐ๊ณผ ํธ์ค์ ์ํํ๊ณ , ๋ค์ํ ์ ๋ณด ํ์์ ์ง์ํ๋ฉด์ ์ปจํ ์คํธ ํ ํฐ ์ฌ์ฉ๋์ ์ ๊ฐํ์ต๋๋ค.
- ๋ฌธ์ : ๊ธด PDF๋ ์ผ๋ถ ์ฒญํฌ๋ง์ผ๋ก ์ ์ฒด ๋งฅ๋ฝ์ ํ์ ํ๊ธฐ ์ด๋ ต๊ณ , ์ธ๋ถ ๋ด์ฉ ๊ฒ์๊ณผ ๋ฌธ์ ์ ์ฒด ํ์์ ๋์์ ์ง์ํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค.
- ํด๊ฒฐ: Parent-Child ๊ตฌ์กฐ์ SlumberChunker ๊ธฐ๋ฐ ์๋ฏธ ์ฒญํน์ ์ ์ฉํ๊ณ , Map-Reduce ๋ฐฉ์์ผ๋ก PDF ์ ์ฒด ์์ฝ์ ์์ฑํ์ต๋๋ค. ๊ธฐ์กด Parent-Child ๋ฆฌํธ๋ฆฌ๋ฒ์ ๋ํด ์ ์ฒด ์์ฝ๊ณผ Parent ๋จ์ ์์ฝ์ ํ์ฉํ๋ Wikiํ ๋ฆฌํธ๋ฆฌ๋ฒ๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- ๊ฒฐ๊ณผ: ๋ฌธ์ ์ ์ฒด ๋งฅ๋ฝ์ ํ์ ํ๋ ํ์ ๊ธฐ๋ฅ๊ณผ ์ธ๋ถ ๋ด์ฉ ๊ฒ์ ๊ธฐ๋ฅ์ ํจ๊ป ์ง์ํ๋ ๊ณ์ธต์ ๊ฒ์ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค.
- ๋ฌธ์ : PostgreSQL ๊ธฐ๋ฐ ์์ ํ์์ ์์ ์์ฒญ๊ณผ ์คํ ์ํ ๊ด๋ฆฌ๊ฐ ๊ฒฐํฉ๋์ด ์๋น์ค ๊ฐ ์ฑ ์๊ณผ ๊ฒฝ๊ณ๊ฐ ๋ถ๋ช ํํ๊ณ , ์ฅ์ ๋ณต๊ตฌ์ ํ๊ณ๊ฐ ์์์ต๋๋ค.
- ํด๊ฒฐ: RabbitMQ ๊ธฐ๋ฐ Command/Event ๊ตฌ์กฐ๋ก ์ ํํ๊ณ , Outbox/Inbox ํจํด๊ณผ ๋ฉฑ๋ฑ์ฑ ํค๋ฅผ ์ ์ฉํด ๋ฉ์์ง ์ ์ค ๋ฐ ์ค๋ณต ์ฒ๋ฆฌ ์ํ์ ์ค์์ต๋๋ค. ๋ํ ์์ ์์ฒญ๊ณผ ์คํ ์ด๋ ฅ์ ๋ถ๋ฆฌํด ์ด๋ฒคํธ ๊ธฐ๋ฐ Read Model์ ๊ตฌ์ถํ์ต๋๋ค.
- ๊ฒฐ๊ณผ: ์๋น์ค๋ณ ์ฑ ์๊ณผ ๊ฒฝ๊ณ๋ฅผ ๋ช ํํ ํ๊ณ , ์๋น์ค ๊ฐ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๋ฉด์ ์ฅ์ ๋ณต๊ตฌ ์์ ์ฑ๊ณผ ์์ ์ถ์ ์ฑ์ ๊ฐํํ์ต๋๋ค.
Spring boot RAG ์์ด์ ํธ Github
- ๊ธฐ๊ฐ: 2025.12 - 2026.02
- ๊ฐ์ธ ํ๋ก์ ํธ
ํ๋ก์ ํธ ๊ฐ์
ํ์ฌ AI๋ Spring Boot 4.0.x๋ณด๋ค 3.5.x ๋ฒ์ ์ ๋ ์ต์ํ ์ํ์ ๋๋ค. ๋ณธ ํ๋ก์ ํธ๋ ์ด๋ฌํ AI์ ์ต์ ํ๋ ์์ํฌ ๋์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํ๊ธฐ ์ํด ์์๋์์ต๋๋ค.
LangChain ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ต์ ๊ฐ๋ฐ ๋ฌธ์์ ์ง์์ ์ ํํ๊ฒ ๊ฒ์ํ๊ณ ์๋ตํ๋ RAG ์์ด์ ํธ ๋ฐ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ๋ ๊ฒ์ ํต์ฌ์ผ๋ก ํฉ๋๋ค.
Spring Boot, Spring Data Redis ๋ฑ์ ๊ณต์ ๋ฌธ์๋ฅผ ํฌ๋กค๋งํ๊ณ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์๊ณผ Reranker๋ฅผ ๊ฒฐํฉํด ๋์ ๊ฒ์ ์ ํ๋๋ฅผ ๋ฌ์ฑํ์ต๋๋ค.
ํ๋ก์ ํธ ๋ชฉํ
- RAG ํ์ดํ๋ผ์ธ ๊ตฌ์ถ: ๋จ์ DB ์๋ฒ ๋ฉ ๋ฐฉ์ ๋จ์ผ ๊ฒ์์ ๋์ด, ์๋ฏธ ๊ธฐ๋ฐ ๊ฒ์๊ณผ ํค์๋ ๊ธฐ๋ฐ ๊ฒ์์ ์ด์ ์ ์ด๋ฆฐ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ๋ฐ ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ Reranking ์ฒ๋ฆฌ๋ก ์๋ต์ ์ ํ์ฑ๊ณผ ์ ๋ขฐ์ฑ ํ๋ณด.
- RAG ์์ด์ ํธ ๊ตฌ์ถ: Spring ๊ณต์ ๋ฌธ์ ๋ฑ ๋ฐฉ๋ํ ๊ธฐ์ ๋ฌธ์๋ฅผ ํ์ต(Indexing)ํ์ฌ, ํ ๋ฃจ์๋ค์ด์ ์ ์ต์ํํ๊ณ ์ต์ ์ ๋ณด์ ๊ธฐ๋ฐํ ์ ํํ ๊ธฐ์ ๋ต๋ณ์ ์ ๊ณตํฉ๋๋ค
- MCP ์๋ฒ ๊ตฌ์ถ: MCP ์๋ฒ๋ฅผ ๊ตฌ์ถํ์ฌ ์ธ๋ถ AI ์ด์์คํดํธ ํ๊ฒฝ์์๋ RAG ํ์ดํ๋ผ์ธ์ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ์ค์๊ฐ ๋๊ตฌ๋ก ์ฐ๋ํ๊ณ ํ์ฅํ ์ ์๋ ๋ฒ์ฉ์ ์ธ ์ํคํ ์ฒ ๊ตฌํ
- RAG ์์คํ ํ๊ฐ ๋์ (LLM-as-a-Judge): LangSmith์ LLM์ ํตํด RAG ํ์ดํ๋ผ์ธ์ ํต์ฌ ์ฑ๋ฅ ์งํ(์ ํ์ฑ, ๊ฒ์ ๊ฒฐ๊ณผ ์ ํฉ์ฑ, ๊ทผ๊ฑฐ์ฑ ๋ฑ)๋ฅผ ์ ๋์ /์ ์ฑ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ฌ ํ๊ฐ ์๋ํ ํ๊ฒฝ ๊ตฌ์ถ.
์ฌ์ฉ ๊ธฐ์
- AI & Frameworks : LangChain, LangGraph, OpenAI GPT-5-mini, Cohere Reranker API
- Database: ChromaDB, Redis
- Evaluation: LangSmith, openevals
- Data Collection & Parsing: BeautifulSoup, markdownify
- Data Visualization: Matplotlib
์ฃผ์ ๊ธฐ๋ฅ
- RAG ๊ฒ์ ์์ง ์ค๊ณ
- Markdown ์ ๊ทํ ๋ฐ ํ์ด๋ธ๋ฆฌ๋ ์ฒญํน ์ ๋ต: BeautifulSoup๊ณผ markdownify ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด ๋ณต์กํ HTML ๊ธฐ์ ๋ฌธ์๋ฅผ Semantic Markdown ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ ์ ์ .
- ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ (Hybrid Search): ์๋ฏธ๋ก ์ ๊ฒ์์ธ Dense ๊ฒ์(ChromaDB, ๊ฐ์ค์น 0.7)๊ณผ ํค์๋ ๊ธฐ๋ฐ์ธ Sparse ๊ฒ์(BM25, ๊ฐ์ค์น 0.3) ๋ฐฉ์์ RRF ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ฒฐํฉ์์ผ 1์ฐจ ํ๋ณด๊ตฐ ๋ฐ์ดํฐ ๋๊ฒ ํ๋ณด.
- Cohere Reranker ํตํฉ: ์ด๊ธฐ ์ถ์ถ๋ ํ๋ณด๊ตฐ ๋ฌธ์๋ฅผ Cohere Reranker ๋ฅ๋ฌ๋ ๊ธฐ๋ฐ ์ฌ๋ฐฐ์ด ์ฒ๋ฆฌ ๋ชจ๋์ ํต๊ณผ์์ผ ์ต์ข ์ฐ์ ์์๋ฅผ ์ ๋ฐํ๊ฒ ์ฌ๋ฐฐ์นํด ๋์ถ, Top-1 / Top-5 ๊ฒ์ ์ ์ค๋ฅ ๋ํญ ๊ฐ์ .
- ์์คํ
์๋ ์ฑ๋ฅ ํ๊ฐ
- LangSmith ์ฐ๋: ํ๊ฐ๊ด LLM์ ํ์ฉํ LLM-as-a-Judge ๋์ . ์ ํ์ฑ(Correctness), ์ฌ์ค ๊ทผ๊ฑฐ ์ผ์น์ฑ(Groundedness), ์ง์์ ๊ฒ์ ๋ฌธ์ ์ฐ๊ด์ฑ(Retrieval relevance) ์ ๋ํด ์ ๋/์ ์ฑ ํ๊ฐ ์งํ ํ LangSmith ๋์๋ณด๋๋ฅผ ํตํด ์ค์๊ฐ ํธ๋ํน ๋ชจ๋ํฐ๋ง.
- Retriever ์์ฒด ๋ฒค์น๋งํน: Top-1/5/10 Hit Rate, MRR, Redundancy ์ ๊ฐ์ ํต์ฌ ์ฑ๋ฅ ํ๊ฐ ์งํ๋ฅผ ๋ก์ปฌ์์ ์๋ ์ฐ์ถ.
- ์์ด์ ํธ ์ํฌํ๋ก์ฐ
- ๋จ์ ๊ฒ์์ด ์๋ ์ฌ์ฉ์์ ์ง๋ฌธ ์๋๋ฅผ ํ์ ํ๊ณ , ํ์์ ์ฟผ๋ฆฌ๋ฅผ ์ฌ์์ฑ ํ๊ฑฐ๋ ๋๊ตฌ๋ฅผ ์ ํํ์ฌ ๋ต๋ณ์ ์์ฑํ๋ ์์ด์ ํธ ๋ก์ง์ ํฌํจํฉ๋๋ค.
- MCP ์๋ฒ๋ฅผ ํตํด ์ธ๋ถ ๋๊ตฌ์์ ์ฐ๋ ๊ฐ๋ฅ์ฑ์ ์ด์ด๋์์ต๋๋ค.
- Semantic Caching
- ์ฌ์ฉ์์ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ์บ์ฑํ์ฌ ๋น์ทํ ์ง๋ฌธ์ ๋ํด ์บ์ฑ๋ ๋ต๋ณ์ ์ฌ์ฉํ์ฌ ์๋ต ์๋ ํฅ์ ๋ฐ API ๋น์ฉ ์ ๊ฐ(Reranker API, GPT API ํธ์ถ ์คํต).
ํ๋ก์ ํธ์ ์ฑ๊ณผ ๋ฐ ์ธ์ฌ์ดํธ
- ๊ณ ๋ํ๋ ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ๊ธฐ๋ฐ ๋ฐ ์ฑ๋ฅ ๋ฒค์น๋งํน ์คํ์ ํตํด ๋จ์ Vector ์๋ฒ ๋ฉ ๊ฒ์ ๊ตฌ์กฐ๊ฐ ๊ฐ๋ ์ ๋ฌธ ์ฉ์ด ๋ฐ ํน์ ๊ธฐ์ ์ฝ๋ ๊ฒ์์ ๋ํ ํ๊ณ์ ์ ๊ฒ์ฆํ ์ ์์์ผ๋ฉฐ, ์ด๋ฅผ Reranker ๋ชจ๋ธ ํฌ์ ๊ณผ์ ์ผ๋ก ๋ณด์ํจ์ผ๋ก์จ ์์ ์ฑ ๋์ ์์ฒด ๊ฒ์ ์์ง ํ๋ ๊ฒฝํ์ ๋ง๋ค์์ต๋๋ค.
- LangSmith์ ์๋ํ๋ ์คํฌ๋ฆฝํธ ์์คํ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํด ์์คํ ํ์ง์ ๋ช ํํ ์งํ(Hit Rate, MRR, Correctness ๋ฑ)๋ก ๊ฐ์ํํ์ฌ ํ๋ก์ ํธ ๊ฒฐ๊ณผ๋ฅผ ๋ช ๋ฃํ๊ฒ ์ฆ๋นํ๊ณ , ํ์ง ํต์ ๋ฅผ ๊ฐ๋ฐํ๋ ์ญ๋์ ํฌ๊ฒ ํค์ธ ์ ์์์ต๋๋ค.
RAG ์ฑ๋ฅ ํ๊ฐ
ํ๊ฐ ์
- Dev 182 / Test 77
ํ๊ฐ ๋ฐฉ๋ฒ(์์ฝ)
- ๋ฒกํฐ์คํ ์ด์์ ์์์ ์ฒญํฌ๋ฅผ ์ํ๋งํ ๋ค, LLM์ผ๋ก ํด๋น ์ฒญํฌ ๊ธฐ๋ฐ ์ง๋ฌธ์ ์์ฑ
- ์ผ๋ฐ์ ์ธ ์ง๋ฌธ์ด ์๋ Hit Rate ๋ฅผ ๋ฎ์ถ๊ธฐ ์ํด ํค์๋ ์ ํ, ๋ค๋ฅธ ์๋ฏธ์ ๋จ์ด๋ฅผ ์ฌ์ฉํ์์
- Retriever๊ฐ ์ง๋ฌธ์ ๋ํด ์๋ณธ ์ฒญํฌ๋ฅผ Top-k๋ก ํ์ํ๋์ง๋ก ํ๊ฐ
- Metrics: Recall@1/5/10, MRR
๋น๊ต ์คํ
- Dense
- Hybrid (Dense + BM25, ๊ฐ์ค์น ์ค์: 0.7/0.3, 0.5/0.5, 0.3/0.7)
- Hybrid (0.7/0.3) + Reranker
๊ด์ฐฐ ๋ฐ ํด์
- BM25 ๊ฐ์ค์น๊ฐ ์ฆ๊ฐํ ์๋ก Recall@1(Top-1) ์ฑ๋ฅ์ ์์น, Recall@5 ์ด์ ๊ตฌ๊ฐ์์๋ ์ฑ๋ฅ ๊ฐ์ ๊ฒฝํฅ
- ํค์๋ ๋งค์นญ(BM25)์ด ์ต์์ 1๊ฐ๋ฅผ ์ ํํ ์ฌ๋ฆฌ๋ ๋ฐ ์ ๋ฆฌํ ๋ฐ๋ฉด, Dense ๊ธฐ์ฌ๋๊ฐ ์ค์ด ์์ ํ๋ณด๊ตฐ ๋ค์์ฑ์ด ๊ฐ์ํ ๊ฒ์ผ๋ก ํด์
- LangSmith(LLM-as-a-Judge) ๊ธฐ๋ฐ ํ๊ฐ๋ ์ง๋ฌธ ๋์ด๋ ์ํฅ์ผ๋ก ์ ๋ฐ์ ์ผ๋ก ๊ณ ๋์ (0.9+)์ด ๋ง์์ผ๋, ์ ๋์ ์ผ์ด์ค๋ ๋ฆฌํธ๋ฆฌ๋ฒ ์ ์๊ฐ ๋ฎ์ ์ผ์ด์ค์ ๋๋ถ๋ถ ๊ฒน์ณค์
- ์ ๋ ์ ์๋ณด๋ค ์ ๋์ ์ผ์ด์ค ๋ถ์ ์ค์ฌ์ผ๋ก ํด์ํ์ผ๋ฉฐ, ์ต์ข ์๋ต ํ์ง์ ๋ณ๋ชฉ์ด retrieval ํ์ง์ ํฌ๊ฒ ์ข์ฐ๋จ์ ํ์ธ
- LLM์ ๊ฒ์ ๋๊ตฌ(tool)์ ์ฐ๊ฒฐํด Query Rewrite๋ฅผ ์ ํ ์์ด ์ ์ฉํ์ ๋, ์๋ฌธ ์ง์ ๊ทธ๋๋ก ๊ฒ์ํ๋ ๋ฐฉ์ ๋๋น ๊ฒ์ ์ ํ๋ ์ ํ์ ์ง์ฐ ์๊ฐ ์ฆ๊ฐ๋ฅผ ํ์ธ
- ๋ฐ๋ผ์ ์ด์/ํ๊ฐ ํ์ดํ๋ผ์ธ์์๋ ๊ธฐ๋ณธ์ ์ผ๋ก rewrite๋ฅผ ์ฌ์ฉํ์ง ์๋ ๋ฐฉํฅ์ผ๋ก ์ค๊ณ
MMR ์คํ (Dense vs Dense+MMR)
- Spring Boot ๊ณต์ ๋ฌธ์๋ ๊ธฐ๋ฅ ๋จ์๋ก ๋ด์ฉ์ด ๋ถ๋ฆฌ๋์ด ๋ฌธ์ ๊ฐ ์๋ฏธ์ ์ค๋ณต๋๊ฐ ์๋์ ์ผ๋ก ๋ฎ์
- ๋ฐ๋ผ์ ๋ค์์ฑ ํ๋ณด ๋ชฉ์ ์ MMR ํจ๊ณผ๊ฐ ์ ํ์ ์ผ๋ก ๋ํ๋ ๊ฒ์ผ๋ก ํด์
RAG ์์ด์ ํธ ์คํ (query rewrite)
- ํ๊ฐ ๋ฐฉ๋ฒ: LLM-as-a-judge (openevals, LangSmith)
- ๋ฐ์ดํฐ์ : ์์์ ์ฒญํฌ ์ถ์ถ ๋ฐ LLM ์ง๋ต ์์ฑ
- A: ์ฒญ๋ก B: ๋ถํ C: ํ๋
- A: ๊ธฐ๋ณธ ์ ๋ ฅ ์ฌ์ฉํ ํ์์ 1ํ ์ฌ์์ฑ B: ๊ธฐ๋ณธ ์ ๋ ฅ ์ฌ์ฉ C: ๋งค๋ฒ ์ฌ์์ฑ
| correctness | groundedness | retrieval relevance | |
| A ํ์์ ์ฌ์์ฑ | 0.86 | 0.93 | 0.93 |
| B ๊ธฐ๋ณธ ์ง์ ์ฌ์ฉ | 0.81 | 0.95 | 0.91 |
| C ํญ์ ์ฌ์์ฑ | 0.73 | 0.95 | 0.85 |
๊ฒฐ๊ณผ ํด์
A. ๊ธฐ๋ณธ ๊ฒ์ ํ ํ์ ์ ์ฟผ๋ฆฌ ์ฌ์์ฑ
- ๋จผ์ ์๋ฌธ ์ง์๋ก ๊ฒ์์ ์ํํ ๋ค, ๊ฒ์ ๊ฒฐ๊ณผ๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ์๋ง ์ง์๋ฅผ ๋ณด์ํ๋ ๋ฐฉ์.
- ์ธ ๊ฐ์ง ๋ฐฉ๋ฒ ์ค ๋น๊ต์ ๋์ ์ ํ๋์ ๊ฒ์ ๊ด๋ จ์ฑ์ ๋ณด์์ง๋ง, ์ง์ฐ์๊ฐ๊ณผ ํ ํฐ ์ฌ์ฉ๋์ด ์ฆ๊ฐํ๋ trade-off๊ฐ ํ์ธ.
B. ๊ธฐ๋ณธ ์ ๋ ฅ ์ฌ์ฉ
- ์ฌ์ฉ์ ์ง์๋ฅผ ๊ทธ๋๋ก ๊ฒ์์ ์ฌ์ฉํ๋ ๋ฐฉ์.
- ์ฑ๋ฅ์ A๋ณด๋ค ์ฝ๊ฐ ๋ฎ์์ง๋ง ์ง์ฐ์๊ฐ๊ณผ ํ ํฐ ์ฌ์ฉ๋ ์ธก๋ฉด์์ ๊ฐ์ฅ ํจ์จ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์.
C. ์ฒ์๋ถํฐ ์ฟผ๋ฆฌ ์ฌ์์ฑ
- ๊ฒ์ ์ ์ ์ง์๋ฅผ LLM์ผ๋ก ์ฌ์์ฑํ ๋ค ๊ฒ์ํ๋ ๋ฐฉ์.
- ์ง์์ ์ผ๋ถ ๊ธฐ์ ์ฉ์ด๊ฐ ๋ณํ๋๋ฉด์ ๊ฒ์ ๊ด๋ จ์ฑ๊ณผ ์ ํ๋๊ฐ ์๋์ ์ผ๋ก ๋ฎ๊ฒ ๋ํ๋๊ฑธ๋ก ์ถ์ .
๊ฒฐ๋ก
- ํ์์ ์ง์ ์ฌ์์ฑ์ ์ ์ฉํ๋ ๋ฐฉ์์ด ๊ฐ์ฅ ๋์ ์ ํ๋๋ฅผ ๋ณด์์ผ๋, ์ง์ฐ ์๊ฐ๊ณผ ํ ํฐ ์ฌ์ฉ๋ ์ธก๋ฉด์์์ trade-off๊ฐ ํ์ธ๋์๋ค.
- ๊ธฐ๋ณธ ์ง์๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ ๋ฐฉ์๋ ์ค์ํ ์ ํ๋๋ฅผ ๋ณด์์ง๋ง, ์ฌ์ฉ์์ ์ง๋ฌธ์ด ๋ชจํธํ๊ฑฐ๋ ํ์ง์ด ๋ฎ์์ง์๋ก ๋ ๋ฐฉ์ ๊ฐ ์ ํ๋ ์ฐจ์ด๊ฐ ์ปค์ง ๊ฐ๋ฅ์ฑ์ด ์์ ๊ฒ์ผ๋ก ํ๋จ๋๋ค.
๋น์ AI ๊ธฐ๋ฐ ์์ฑ์ฐจ ๊ฒ์ฌ ํ๋ซํผ checkcar
- ๋น์ AI ๊ฒ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์น์ผ๋ก ์์ฒญ/์ฒ๋ฆฌ/๋ชจ๋ํฐ๋งํ๋ ์๋น์คํ ํ์ง ๊ฒ์ฌ ํ๋ซํผ
- ๋งก์ ์ญํ
- AWS EKS ๊ธฐ๋ฐ ์ปจํ ์ด๋ ๋ฐฐํฌ ๋ฐ Jenkins CI/CD ๊ตฌ์ถ, Istio IngressยทGrafana ๋ชจ๋ํฐ๋ง ๊ตฌ์ฑ
- JWT ๊ธฐ๋ฐ ์ธ์ฆ/์ธ๊ฐ ๋ฐ ๋ฐฑ์๋ ๊ธฐ๋ฅ ๊ตฌํ/์์ ํ, Kafka ๊ธฐ๋ฐ ๋น๋๊ธฐ ์ฒ๋ฆฌ
- ViViT ๊ธฐ๋ฐ ์์ดํผ ๋์ ๋ถ๋ฅ ๋ชจ๋ธ ํ์ตยทํ๋ ๋ฐ ์ฑ๋ฅ ๊ฐ์ (70%๋ โ 80%๋)
- ๊ธฐ๊ฐ: 2025.07 โ 2025.09
- ์ฐธ์ฌ ์ธ์: 7๋ช
- ์ญํ : AI ๋ชจ๋ธ๋ง, ๋ฐฑ์๋(BE), ํ๋ก ํธ์๋(FE), ํด๋ผ์ฐ๋ ๋ฐฐํฌ
ํ๋ก์ ํธ ๊ฐ์
์์ฑ์ฐจ ์ ์กฐ ๋ง์ง๋ง ๋จ๊ณ์ ์ธ๊ด ํ์ง ๊ฒ์ฌ๋ฅผ ์๋ํํ๋ ์น ๊ธฐ๋ฐ ๋น์ AI ์์คํ ์ ๋๋ค. ๋์ฅ๋ฉด, ๋จํ, ์์ดํผ, ์์ ์ก์ ๊ฒฐํจ๊ณผ ๋ถํ ์๋ ์ํ๋ฅผ ์ ๊ฒํ์ฌ ์๋์ผ๋ก ์๋ณํฉ๋๋ค. ํตํฉ ๋์๋ณด๋๋ฅผ ํตํด ์ค์๊ฐ์ผ๋ก ๊ฒ์ฌ ๊ฒฐ๊ณผ ํ์ธ์ด ๊ฐ๋ฅํฉ๋๋ค.
์ฃผ์ ๋ชฉํ
- ํ์ง ๋ฐ ์์ ์ฑ ํฅ์: ๋ถ๋๋ฅ ๊ฐ์ ๋ฐ ์ผ๊ด๋ ํ์ง ๊ธฐ์ค ์ ์ง
- ์ ๊ทผ์ฑ ๋ฐ ํจ์จ์ฑ ์ฆ๋: ์น ๊ธฐ๋ฐ์ผ๋ก ์ธ์ ์ด๋์๋ ๊ฒ์ฌ ์์ฒญ ๋ฐ ์ค์๊ฐ ๋ชจ๋ํฐ๋ง ๊ฐ๋ฅ
- ์ ํ๋ ๋ฐ ์ ๋ขฐ์ฑ ํ๋ณด: ๊ฒฐํจ ๊ฒ์ถ ์ ํ๋ 80% ์ด์ ๋ฌ์ฑ ๋ชฉํ ๋ฐ ๊ฒ์ฌ ์๊ฐ ๋จ์ถ
์ฌ์ฉ ๊ธฐ์ ๋ฐ ๋๊ตฌ
- AI: YOLOv8n, ViViT, OpenAI API, RAG, PyTorch
- Backend: Java, Spring Boot,, FastAPI, Python
- Frontend: JavaScript, React
- Database: MySQL
- Cloud & Infra: AWS, Amazon EKS, Istio, Docker, Kafka, Amazon RDS, Amazon S3
์ฃผ์ ๊ธฐ๋ฅ
- AI ๋ชจ๋ธ
- ๋์ฅ๋ฉด ๊ฒฐํจ ํ์ง: ์ด๋ฏธ์ง ๋ถ์์ ํตํด ์คํฌ๋์น, ์ฐ๊ทธ๋ฌ์ง ๋ฑ ๊ฒฐํจ ์๋ณ
- ๋จํ ๋ฐ๊ธฐ ๊ฒ์ฌ: ๋จํ์ ON/OFF ์ํ ๋ฐ ๋ฐ๊ธฐ ๊ท ์ผ๋๋ฅผ ์ ๋์ ์ผ๋ก ์ธก์ ํ์ฌ ๊ฒฐํจ ํ์ง
- ์์ ์ก ๋ถ์ฌ ๊ฐ์ง: ๋ถ์ถ ์์์ ํ๋ ์ ๋จ์๋ก ๋ถ์ํ์ฌ ๋ถ์ฌ ๊ฐ๋, ๋ถํฌ ๋ฑ์ ๊ณ์ฐํ๊ณ ๊ฒฐํจ ํ๋จ
- ์์ดํผ ์ด์ ๋์ ์ธ์: Blender์ Unreal ์์ง์ผ๋ก ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ๊ณ , ViViT ๋ชจ๋ธ์ ํ์ฉํด 7๊ฐ์ง ๋์ ํด๋์ค ๋ถ๋ฅ
- RAG ๊ธฐ๋ฐ ์กฐ์น ์ ์: ๊ฒฐํจ ์ ํ์ ๋ฐ๋ผ ๋ง์ถคํ ์๋ฆฌ ๊ฐ์ด๋ ๋ฐ ์์ ๋ณด๊ณ ์ ์๋ ์์ฑ
- ์น ์ ํ๋ฆฌ์ผ์ด์
- ๊ด๋ฆฌ์์ ์์ ์ ๊ถํ์ ๋ถ๋ฆฌํ ์ฒด๊ณ์ ์ธ ์ ๊ทผ ์ ์ด ๊ตฌํ
- ๊ด๋ฆฌ์ ๋์๋ณด๋์์ ์ ์ฒด ๊ฒ์ฌ ํํฉ ๋ชจ๋ํฐ๋ง ๋ฐ ํต๊ณ ์กฐํ ๊ฐ๋ฅ
- ์์ ์๋ ํ ๋น๋ ๊ฒ์ฌ ์ ๋ฌด ์ํ ๋ฐ ๊ฒฐ๊ณผ ๋ณด๊ณ ์ ์์ฑ
- Kafka๋ฅผ ํ์ฉํ ๋น๋๊ธฐ ๋ฉ์์ง ์์คํ ์ผ๋ก ๋ค์์ ์ฐจ๋ ๋์ ๊ฒ์ฌ ์ฒ๋ฆฌ
์ฃผ์ ๊ธฐ์ฌ ๋ฐ ๋ด๋น ์ ๋ฌด
์ ๊ฐ ๋ด๋นํ ์ฃผ์ ์ญํ ์ AI ๋ชจ๋ธ๋ง, DevOps ๊ตฌ์ถ, ๊ทธ๋ฆฌ๊ณ ๊ฐ๋ฐ์ ํต์ฌ์ ์ธ ๋ถ๋ถ์ ์์ฑํ๋ ๊ฒ์ด์์ต๋๋ค.
- ํด๋ผ์ฐ๋ ๋ฐฐํฌ ๋ฐ CI/CD ํ๊ฒฝ ๊ตฌ์ถ (DevOps)
- ํ๋ก์ ํธ์ ๋ชจ๋ ์๋น์ค๋ฅผ Docker ์ปจํ ์ด๋ํํ์ฌ AWS EKS ํ๊ฒฝ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌํ์ต๋๋ค.
- Jenkins๋ฅผ ํ์ฉํ CI/CD ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์ฌ ์ฝ๋ ๋ณ๊ฒฝ ์ ์๋์ผ๋ก ๋น๋ ๋ฐ ๋ฐฐํฌ๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ํ๋ก์ธ์ค๋ฅผ ์๋ํํ์ต๋๋ค.
- Istio ingress gateway๋ฅผ ํตํ ํ๋ก ํธ/๋ฐฑ์๋ API ๊ฒ์ดํธ์จ์ด ๋ถ๊ธฐ, Grafana ๊ธฐ๋ฐ ๋ชจ๋ํฐ๋ง ํ๊ฒฝ์ ๊ตฌ์ถํ์ต๋๋ค.
- ๊ฐํ์ ์ผ๋ก ๋ ธ๋ ์ ์ฒด๊ฐ ๋ค์ด๋๋ ๋ฌธ์ ๋ฅผ ํ์ธํ์ฌ AI ์๋น ์๋ฒ๋ฅผ ๋ค๋ฅธ ๋ ธ๋ ๊ทธ๋ฃน์ผ๋ก ๊ตฌ์ฑํ์ฌ ๋ฆฌ์์ค ๋ฌธ์ ๋ก ๋ ธ๋๊ฐ ์ฐ์์ ์ผ๋ก ์ฃฝ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์ต๋๋ค.
- AI ๋ชจ๋ธ ๊ฐ๋ฐ ๋ฐ ๋ฐ์ดํฐ ์์ง๋์ด๋ง
- ์์ดํผ ๊ณ ์ฅ ์๋๋ฆฌ์ค์ ๋ฐ์ดํฐ์ ๊ตฌ์ถ์ด ์ด๋ ต๋ค๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด, Unreal ์์ง 5, blender๋ฅผ ํตํด ๊ธฐ์กด ์ฐจ๋ ์ํ์ ์ฌ์ฉํด ํด๋น ์๋๋ฆฌ์ค์ ๋ฐ์ดํฐ์ ์ ๊ตฌ์ถํ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ํ์ดํ๋ผ์ธ์ ๊ตฌ์ถํ์์ต๋๋ค.
- ViViT ๋ชจ๋ธ์ ํ์ต ๋ฐ ์ ์ฒ๋ฆฌ ์กฐ์ ์ ํตํด ์์ดํผ ์ด์ ๋์ ์ธ์ ์ ํ๋๋ฅผ ์ด๊ธฐ 70%๋ โ 80%๋๋ก ๋์์ต๋๋ค.
- ๊ฐ๋ฐ ๋ฐ ์์คํ
์์ ํ
- ๋ฐฑ์๋: ๋ก๊ทธ์ธ, ํ์๊ฐ์ (JWT) ๊ธฐ๋ฅ๊ณผ API ๊ฒ์ดํธ์จ์ด๋ฅผ ๊ตฌํํ์์ผ๋ฉฐ, ๋ค๋ฅธ ํ์์ ๊ฒ์ํ ๊ธฐ๋ฅ ๊ตฌํ์ ์ด์ด๋ฐ์ ์ต์ข ์ ์ผ๋ก ์์ฑํ๊ณ , ๊ฒํ ๋ฐ ์์ ํ์ฌ ์์ ์ฑ์ ํ๋ณดํ์ต๋๋ค.
- ํ๋ก ํธ์๋: ๋ฐฑ์๋์ ์ฐ๋๋๋ ํ์๊ฐ์ ๋ฐ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๊ตฌํํ์ผ๋ฉฐ, Redux ์ํ ๊ด๋ฆฌ๋ฅผ ํตํด ์ฌ์ฉ์์ ์ญํ ์ ๋ฐ๋ฅธ UI ์ ๊ทผ ์ ํ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์ต๋๋ค.
- ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฐ ๋๋ฒ๊น : ํ๋ก์ ํธ ์ฝ๋ ํ์ง์ ๋์ด๊ธฐ ์ํด ๋ค๋ฅธ ํ์ด์ง๋ค ์ ๋ฐ์ ์ฝ๋๋ฅผ ๊ฒํ ๋ฐ ์์ ํ๊ณ , ๋ฐ์ํ ๋ฒ๊ทธ๋ค์ ํด๊ฒฐํ์ฌ ์์คํ ์ ๋ฐ์ ์์ ํ์ ๊ธฐ์ฌํ์ต๋๋ค.
ViViT ํ์ต ๊ฒฐ๊ณผ (์์ดํผ ์ด์ ๋์ ์ธ์)
- ์ ์ ๋ชจ๋ธ: Epoch 4 (Val F1 ๊ธฐ์ค)
- Validation ์ฑ๋ฅ (Epoch 4)
- Loss: 0.5057
- Accuracy: 0.8352
- Macro F1: 0.8325
- Test ์ฑ๋ฅ
- Loss: 0.7276
- Accuracy: 0.8276
- Macro F1: 0.8220
AI ๊ธฐ๋ฐ ์ฃผ์ ํฌ์ ๋ถ์ ํ๋ซํผ investica
- ์ฃผ์ ๋ฐ์ดํฐ/๋ฆฌํฌํธ๋ฅผ ์์งยท๋ถ์ํด LLM ์์ด์ ํธ์ UI๋ก ์ ๊ณตํ๋ ๋ฐ๋ชจ ํ๋ซํผ
- ๋ด ์ญํ (๋ฐฑ์๋ ์ค์ฌ)
- PDF ๋ฆฌํฌํธ ์์ง โ ํ์ฑ โ ๋ถ๋ฅ/์์ฝ โ ๊ฒฐ๊ณผ ์ ์ฅ โ ์กฐํ API ์ ๊ณต๊น์ง ํ์ดํ๋ผ์ธ ์ค๊ณยท๊ตฌํ
- NestJS + Nestia ๊ธฐ๋ฐ์ผ๋ก ํ์ /์คํค๋ง ์ค์ฌ์ REST API ๊ณ์ฝ ์ค๊ณ ๋ฐ ์๋ํฌ์ธํธ ๊ตฌํ
- ํ๋ก ํธ UI(๋ณด๊ณ ์ ์กฐํ)๊น์ง ์ฐ๊ฒฐํด end-to-end ๊ธฐ๋ฅ ์์ฑ
- ๊ธฐ๊ฐ: 2025.07 โ 2025.11
- ์ฐธ์ฌ ์ธ์: 5๋ช
- ์ญํ : ๋ฐฑ์๋(BE), ํ๋ก ํธ์๋(FE)
ํ๋ก์ ํธ ๊ฐ์
Agentica ํ๋ ์์ํฌ๋ฅผ ํ์ฉํ AI ๊ธฐ๋ฐ ์ฃผ์ ํฌ์ ๋ถ์ ๋ฐ ์๋ํ ๋ฐ๋ชจ ํ๋ซํผ
2025 ์คํ์์ค ๊ฐ๋ฐ์๋ํ ์ถํ์์ผ๋ก, LLM ๊ธฐ๋ฐ ์์ด์ ํธ ํ๋ ์์ํฌ์ธ 'Agentica'์ ์ค์ง์ ์ด๊ณ ๊ธ์ ์ ์ธ ํ์ฉ ์ฌ๋ก๋ฅผ ์ฆ๋ช ํ๊ธฐ ์ํด ๊ฐ๋ฐ๋จ.
์ฃผ์ ๋ชฉํ
- Agentica ํ๋ ์์ํฌ์ ํจ์ฉ์ฑ ์
์ฆ
- ์ ์ ์๋ API์ AI ์์ด์ ํธ(Agentica)๋ฅผ ๊ฒฐํฉํ์ฌ, ์ผ๋ง๋ ๋น ๋ฅด๊ณ ์์ฑ๋ ๋์ ์ฑ๋ด ์๋น์ค๋ฅผ ๊ตฌ์ถํ ์ ์๋์ง ๋ณด์ฌ์ฃผ๋ ๊ธฐ์ ์ ๋ฐ๋ชจ ์ญํ ์ ์ํํฉ๋๋ค.
- ๋์งํธ ์์ธ ๊ณ์ธต์ ํฌ์ ์ฅ๋ฒฝ ์ ๊ฑฐ
- ๊ธฐ์กด HTS/MTS์ ๋ณต์กํ UI์ ์ด๋ ค์ด ๊ธ์ต ์ฉ์ด๋ก ์ธํด ํฌ์๋ฅผ ์ด๋ ค์ํ๋ ๊ณ ๋ น์ธต ๋ฐ ์ด๋ณด์๋ค์ ์ง์ ์ฅ๋ฒฝ์ ๋ฎ์ถฅ๋๋ค.
- ์ ๋ณด์ ๋น๋์นญ์ฑ์ ํด์ํ๊ณ ๋๊ตฌ๋ ์ฝ๊ฒ ๊ธ์ต ์์ฅ ๋ฐ์ดํฐ์ ์ ๊ทผํ๋๋ก ๋์ต๋๋ค.
์ฌ์ฉ ๊ธฐ์ ๋ฐ ๋๊ตฌ
- AI: ChatGPT, Gemini
- Backend: TypeScript, NestJS, Agentica
- Frontend: TypeScript, React, Vite
- ๊ธฐํ: pnpm, KIS (ํ๊ตญํฌ์์ฆ๊ถ) API, Naver News API
์ฃผ์ ๊ธฐ๋ฅ
- AI ํฌ์ ์๋ด: ์ค์๊ฐ ์์ด์ ํธ ์ํธ์์ฉ
- ์ฃผ์ ๋ฐ์ดํฐ: ์ค์๊ฐ ์์ธ, ์ฐจํธ, ๋ด์ค ๋ถ์
- ํฌํธํด๋ฆฌ์ค: ๋ณด์ ์ฃผ์ ๋ฐ ์์ต๋ฅ ์ถ์
- ๋ชจ์๊ฑฐ๋: KIS API ์ฐ๋ (์ค์ ๊ฑฐ๋ ๋ฏธ์ง์)
- AI ๋ถ์: ๋ฏธ๋์์ ๋ณด๊ณ ์ ๊ธฐ๋ฐ AI ๋ณด๊ณ ์ ์ ๊ณต
์ฃผ์ ๊ธฐ์ฌ ๋ฐ ๋ด๋น ์ ๋ฌด
LLM๋ฅผ ํ์ฉํด ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๊ณ , ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๋ ํต์ฌ ๊ธฐ๋ฅ์ ์ค๊ณํ๊ณ ๊ฐ๋ฐํ์ต๋๋ค.
- ๊ธฐ์กด ๋จ์ํ ๋ณด๊ณ ์๋ฅผ ์์งํ๋ ํํ์์ ๋ณด๊ณ ์๋ฅผ ๋ถ๋ฅ ๋ฐ ๋ถ์ํ์ฌ ์ ๊ณตํ๋ ์์ด๋์ด ์ ์
- AI ๋ถ์ ๋ฐ ๋ณด๊ณ ์ ์์ฑ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ
- ๋ฐ์ดํฐ ์์ง ๋ฐ ํ์ฑ: ์ฆ๊ถ์ฌ ๋ฆฌํฌํธ(PDF) ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ํ ์คํธ, ๊ทธ๋ํ, ํ ๋ฑ์ ๋น์ ํ ๋ฐ์ดํฐ๋ฅผ LLM์ ์ฌ์ฉํด ํ์ฑํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ์ต๋๋ค.
- LLM ๊ธฐ๋ฐ ๋ถ์/์์ฝ ๋ก์ง ๊ตฌํ: LLM์ ํ์ฉํ์ฌ ์์ง๋ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ๊ณ , ํต์ฌ ๋ด์ฉ์ ์์ฝํ์ฌ ์ฐ์ ํ๊ฐ, ์ข ๋ชฉ ๋ถ์ ๋ฑ์ ๋ด์ฉ์ ๋ด์ ๋ณด๊ณ ์๋ฅผ ์์ฑํ๋ ๋ก์ง์ ๊ตฌํํ์ต๋๋ค.
- API ์ค๊ณ ๋ฐ ๊ฐ๋ฐ: ์์ฑ๋ ๋ณด๊ณ ์ ๋ฐ์ดํฐ๋ฅผ ํ๋ก ํธ์๋ ๋ฐ ์์ด์ ํธ์ ์ ๊ณตํ๊ธฐ ์ํ RESTful API๋ฅผ NestJS์ Nestia๋ฅผ ์ฌ์ฉํ์ฌ ์ค๊ณํ๊ณ ๊ตฌํํ์ต๋๋ค.
- ๋ณด๊ณ ์ ์กฐํ ํ๋ก ํธ์๋ ๊ตฌํ: ๋ฐฑ์๋ API์ ์ฐ๋ํ์ฌ AI ๋ณด๊ณ ์ UI๋ฅผ React๋ก ๊ตฌํํ์ต๋๋ค.
Certifications
- AICE associate 2025.04.26
- ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ 2025.12.24
Awards
- 2025 ์คํ์์ค ๊ฐ๋ฐ์ ๋ํ 2025.12.05 - ๋์(๋คผํผํ ํฌ๋๋ฌ์ง์ค ๋ํ์) ์์
Active
KT AIVLE School 2025.03.25 - 2025.09.09
- ๋น์ AI๊ธฐ๋ฐ ์์ฑ์ฐจ ๊ฒ์ฌ ํ๋ซํผ: Checkar ๊ฐ๋ฐ
2025 ์คํ์์ค ๊ฐ๋ฐ์ ๋ํ 2025.07.04 - 2025.12.05
- ์ฃผ์ ํฌ์ ๋ถ์ ์์ด์ ํธ ํ๋ซํผ: investica ๊ฐ๋ฐ