AI ๊ธฐ๋ฐ ์ค์๊ฐ ์ฑ์ฉ ๋งค์นญ ์์คํ ์ ์ ์ฒด ํ์ดํ๋ผ์ธ์ ์ง์ ์ค๊ณยท๊ตฌํยท์๋ํยท๋ชจ๋ํฐ๋งํ ํ๋ก์ ํธ์ ๋๋ค. ์ด๋ ฅ์ ํ ์คํธ๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ฝ โ ์คํฌ ์ถ์ถ โ ์๋ฒ ๋ฉ โ ๋ฒกํฐ ๊ฒ์ โ ๋งค์นญ โ LLM ์ค์ฝ์ด๋ง โ DB ์ ์ฅ๊น์ง ์ด 8๋จ๊ณ์ End-To-End AI Workflow๋ฅผ n8n์ ์ด์ฉํด ๊ตฌ์ถํ์ต๋๋ค.
์ฒ์์๋ /spring/ai ํ์ผ์ ์๋ java spring ์ฝ๋์ฒ๋ผ AI server๋ก ์ง์ ํธ๋ฆฌ๊ฑฐ ํ์์ผ๋, ์ ์ฐจ /spring/personal ์ฝ๋๋ฅผ ํ์ฉํด ์๋ํ ํ์ดํ๋ผ์ธ ๊ตฌ์ถ์ ์ํด ๋
ธ์ฝ๋(no-code)๊ธฐ๋ฐ n8n ์คํ์์ค ์ํฌํ๋ก์ฐ ์๋ํ ๋๊ตฌ์ ํต์ ํ๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์์ต๋๋ค.
- ์ฑ์ฉ ๊ณผ์ ์ค ์๋ฅ ๊ฒํ ์ ๋์์ ์ฃผ์ด ์๋ฅ ๊ฒํ ์๊ฐ ๋จ์ถ
- LLM ๊ธฐ๋ฐ ํ ์คํธ ์ดํด + ๋ฒกํฐ ๊ฒ์ ๊ธฐ์ ๋ก JD-์ง์์ ๋งค์นญ ์ ํ๋ ํฅ์
- n8n์ ์ด์ฉํด ํ์ดํ๋ผ์ธ ์๋ํ ๋ฐ ์ค๋ฅ ์๋ ํ๋ฆ ๊ตฌ์ฑ
- Prometheus + Grafana ๊ธฐ๋ฐ ์ค์๊ฐ ์ฑ๋ฅ ๋ถ์ ๋ฐ ๋ณ๋ชฉ ํ์
1๋จ๊ณ: ์นํ
์์ ์ฌ๊ฐ(n8n) โ ํ
์คํธ ์ถ์ถ Resume Input (Webhook)
2๋จ๊ณ: AI ์์ฝ ์์ฑ(FastAPI๋ฅผ ํตํ Ollama LLM)
3๋จ๊ณ: ์คํฌ ์ถ์ถ(FastAPI๋ฅผ ํตํ Ollama LLM)
4๋จ๊ณ: ๋ฌธ์ฅ ์๋ฒ ๋ฉ(FastAPI + nomic-embed-text)
5๋จ๊ณ: ๋ฒกํฐ ์คํ ๋ฆฌ์ง(Redis with RediSearch)
6๋จ๊ณ: JD ๋งค์นญ(์ฝ์ฌ์ธ ์ ์ฌ๋๊ธฐ๋ฐ ๊ฒ์)
7๋จ๊ณ: ํ๋ณด ์ ์ ๋งค๊ธฐ๊ธฐ(LLM ๊ธฐ๋ฐ ๋ถ์)
8๋จ๊ณ: Spring boot๋ฅผ ํตํด Mariadb์ ์ ์ฅ(Spring Boot Backend & Mariadb)
- Scoring ์์
- n8n Webhook ํธ๋ฆฌ๊ฑฐ๋ก ์ด๋ ฅ์ JSON ์์
- ์๋ณธ ํ ์คํธ ๋ฐ ๋ฉํ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ
- FastAPI โ Ollama LLM ํธ์ถ
llama3๋ชจ๋ธ๋ก ์ด๋ ฅ์ ํต์ฌ ์์ฝ ์์ฑ- ํ๊ท ์ฒ๋ฆฌ์๊ฐ: 20~60์ด (LLM ๋ณ๋ชฉ ๊ตฌ๊ฐ)
- LLM ๊ธฐ๋ฐ ์คํฌ ๋ฆฌ์คํธ ์๋ ์ถ์ถ
- JSON ๋ฆฌ์คํธ ๊ธฐ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐํ
- nomic-embed-text ๋ชจ๋ธ๋ก 768-dim ๋ฒกํฐ ์์ฑ
- ์ฒ๋ฆฌ์๊ฐ ํ๊ท : 300~800ms
- RediSearch + HNSW ์ธ๋ฑ์ค๋ก ๋ฒกํฐ ์ ์ฅ
- ๋๊ท๋ชจ ๊ฒ์์ ์ต์ ํ๋ ๊ตฌ์กฐ
- Redis vector search๋ก JD์ cosine similarity ๋งค์นญ
- ์ฒ๋ฆฌ์๋: 1~10ms ์์ค
- ์ง์์ โ JD ๋งค์นญ ๊ฒฐ๊ณผ์ ๋ํ LLM ์ฌํ๊ฐ
- ์ธ๊ณผ ๊ธฐ๋ฐ ํ๊ฐ(why matched?)
-
์ ์ ๋ ๊ฒฐ๊ณผ๋ฅผ Spring Backend๋ฅผ ํตํด MariaDB์ ์ ์ฅ
-
์ดํ ๊ด๋ฆฌ์ ๋์๋ณด๋์์ ํ์ฉ
-
MariaDB์ ์ ์ฅ
Prometheus + Pushgateway + Grafana๋ก AI Workflow ์ฑ๋ฅ์ ์ ๋์ ์ผ๋ก ์๊ฐํํ์ต๋๋ค.
ai_workflow_total_processing_msai_service_summary_latency_msai_service_skills_latency_msai_service_embedding_latency_msai_service_redis_latency_msai_service_match_latency_msai_service_score_latency_ms
- ์ ์ฒด ํ์ดํ๋ผ์ธ ์ฒ๋ฆฌ์๊ฐ ์ค์๊ฐ ํ์ธ
- ๋จ๊ณ๋ณ ๋ณ๋ชฉ ์ง์ ํ๋์ ํ์ธ
- FastAPI
- Spring Boot + JPA
- Ollama LLM Runtime
- nomic-embed-text (Embedding Model)
- Redis Stack
- RediSearch (Vector Search)
- n8n
- Webhook Trigger
- JavaScript Function Nodes
- Docker (์์์ด ํ์ ๋์ด ์์๊ธฐ(CPU ํ๊ฒฝ) ๋๋ฌธ์ Kubernetes์ ์ฌ๋ฆฌ์ง ์์์ต๋๋ค)
- Prometheus
- Pushgateway
- Grafana
- ์ด๋ ฅ์ ๋ถ์ ์์ 100% ์๋ํ
- JD ๋งค์นญ ์๋ 50~300ms๋ก ๋จ์ถ
- LLM ๋ณ๋ชฉ ํ์ ํ ๊ฐ์ ๋ฐฉํฅ์ฑ ๋ช ํํ
- ์๋น์ค ์ฅ์ ๊ด์ฐฐ์ฑ ํ๋ณด

