Enterprise SaaS, ๊ธ์ต๊ถ WebView, ํฌ๋ก์คํ๋ซํผ ๋ชจ๋ฐ์ผ ์ฑ ๋ฑ ๋ค์ํ ํ๊ฒฝ์์
ํ๋ก ํธ์๋ ์์คํ ์ ์ค๊ณํ๊ณ ๊ตฌ์ถํฉ๋๋ค.
์ต๊ทผ์๋ AI/LLM ๊ธฐ๋ฐ ์๋น์ค ๊ฐ๋ฐ๊ณผ ํ์คํ ์์ญ์ผ๋ก ํ์ฅํ๊ณ ์์ต๋๋ค.
const daniel = {
role: "Frontend Developer",
company: "(์ฃผ)๋ฆฌ๋น",
experience: "4๋
์ฐจ",
focus: ["Enterprise SaaS", "Cross-platform", "AI/LLM Integration"],
recentWork: [
"Vitest ํ
์คํธ ํ๊ฒฝ ๊ตฌ์ถ (30+ ์ ํธ ๋จ์ ํ
์คํธ)",
"AI ๋ณด๊ณ ์ ์์ฑ ํ์ดํ๋ผ์ธ (vLLM/Gemma 4 + Ollama Cloud)",
"AI ๋ณด๊ณ ์ ํ์ง ์๋ํ (ํฐ์ด ๋ถ๋ฅ + ํ๋ฆฌํ์น + ํ๋กฌํํธ ๊ท์น)",
"Redis/BullMQ ๋ฆฌํฌํธ ํ + SSE ์ค์๊ฐ ๊ธ๋ก๋ฒ ์๋ฆผ",
"vLLM ์๋น ๋ชจ๋ํฐ๋ง ์ธํ๋ผ (Prometheus + Grafana + LiteLLM + LangFuse)"
],
currentlyLearning: ["NestJS", "LangChain", "LLM Tool Calling", "BullMQ"],
blog: "https://velog.io/@seunghyeond",
funFact: "์ปคํผ ํ ์๊ณผ ํจ๊ปํ๋ ์ฝ๋ฉ์ด ์ต๊ณ ์ ์์ฐ์ฑ์ ๋ง๋ญ๋๋ค โ"
};- Apollo Client ์บ์ ์ ํฉ์ฑ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ด์ผ๊ธฐ โ Type Policy ์ฌ์ค๊ณ๋ก ๋ฒ๊ทธ 90% ์ค์ด๊ธฐ
- Redis/BullMQ๋ก ๋น๋๊ธฐ ๋ฆฌํฌํธ ํ + SSE ์ค์๊ฐ ์๋ฆผ ์์คํ ์ ๋ง๋ ์ด์ผ๊ธฐ
- ํ๋ก ํธ์๋ ๊ฐ๋ฐ์๊ฐ vLLM/Gemma 4๋ก AI ๋ณด๊ณ ์ ์์ฑ ํ์ดํ๋ผ์ธ์ ๋ง๋ ์ด์ผ๊ธฐ
- 4๋ ์ฐจ ๋ ๊ฑฐ์ ํ๋ก์ ํธ์ Vitest ํ ์คํธ ํ๊ฒฝ์ ์ฒ์ ๋์ ํ ์ด์ผ๊ธฐ
| ๊ธฐ๊ฐ | 2023.04 - ์ฌ์ง์ค |
| ํ์ฌ | Frontend Developer @ (์ฃผ)๋ฆฌ๋น |
| ์ญํ | ํ์ ๋ฐฐ์ถ ๊ด๋ฆฌ SaaS ํ๋ซํผ์ ํ๋ก ํธ์๋ ์ ๋ฐ์ ๋ด๋น. ์ ์ฌ ์ด๊ธฐ๋ถํฐ ์ํคํ ์ฒ ์ค๊ณ์ ์ฐธ์ฌํ์ฌ ์ ์ง์ ์ผ๋ก ์ฑ์ฅ. ๋ฒ๋ค๋ฌ ๊ต์ฒด(WebpackโVite), MUI v5โv7 ์ ๊ทธ๋ ์ด๋, ๋ ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฝ๋ํ(moment.jsโdayjs) ๋ฑ ๋๊ท๋ชจ ํ๋ก ํธ์๋ ์ ๊ทธ๋ ์ด๋๋ฅผ ์ฃผ๋. ์ต๊ทผ์๋ Vitest ๊ธฐ๋ฐ FE ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ๊ณผ vLLM/Gemma 4 ๊ธฐ๋ฐ AI ๋ณด๊ณ ์ ์์ฑ ํ์ดํ๋ผ์ธ, Redis/BullMQ ๋น๋๊ธฐ ๋ฆฌํฌํธ ํ + SSE ์ค์๊ฐ ์๋ฆผ ์์คํ ์ ๊ตฌ์ถ. Prometheus + Grafana + LiteLLM + LangFuse๋ก vLLM ์๋น ๋ชจ๋ํฐ๋ง ์ธํ๋ผ๋ฅผ Docker Compose ๊ธฐ๋ฐ์ผ๋ก ์ง์ ๊ตฌ์ถํ๋ฉฐ ๋ฐฑ์๋/AI/์ธํ๋ผ ์์ญ๊น์ง ๊ธฐ์ ์คํ์ ํ์ฅ ์ค. |
| ํ๋ก์ ํธ | ์ญํ | ํต์ฌ ๊ธฐ์ |
|---|---|---|
| ํ์ ๋ฐฐ์ถ ๊ด๋ฆฌ SaaS (Enterprise) | Lead Frontend Dev | React, TS, Vite, MUI v7, GraphQL, Apollo, Vitest |
| AI ๋ณด๊ณ ์ ์์ฑ ์์คํ (LLM Pipeline) | Full-stack Dev | NestJS, vLLM/Gemma 4, Ollama Cloud, BullMQ, Redis, SSE |
| vLLM ์๋น ๋ชจ๋ํฐ๋ง ์ธํ๋ผ (Observability) | Infra Dev | Prometheus, Grafana, LiteLLM Proxy, LangFuse, Docker Compose |
| ๊ธ์ต๊ถ ESG ๋ฆฌํฌํธ ์์คํ (WebView) | Frontend Dev | React, TS, D3.js, GraphQL |
| ํ์ ๋ฐ์๊ตญ ์ถ์ ํ๋ซํผ (PWA) | Frontend Dev | React, TS, PWA, Firebase |
| ๊ธ๋ก๋ฒ ๋ง์ผํ ๋๋ฉ ํ์ด์ง (Next.js) | Frontend Dev | Next.js, i18next (ํ/์/์ผ) |
| ํฌ๋ก์คํ๋ซํผ ๋ชจ๋ฐ์ผ ์ฑ (RN) | Mobile Dev | React Native, TS, WebView Bridge |
| AI RAG ์ฑ๋ด ํ๋กํ ํ์ | Full-stack Dev | React, Node.js, AI/RAG |
| ํ๋ก์ ํธ | ์ญํ | ํต์ฌ ๊ธฐ์ | ๋งํฌ |
|---|---|---|---|
| โ ์ปคํผ๋์ฅ - ์ปคํผ ๊ธฐ๋ก ์ฑ | Full-stack Dev | Next.js, Supabase, Firebase | |
| ๐ฐ ๋ก๋ ๋ฒํธ ์์ฑ ์์คํ | Full-stack Dev | Next.js, NestJS, PostgreSQL |
| ์ฑ๊ณผ | ์์น | ๋ฐฉ๋ฒ | |
|---|---|---|---|
| โก | ํ ์ด๋ธ ๋ ๋๋ง ์ฑ๋ฅ ๊ฐ์ | 83%โ | AG Grid ๊ฐ์ ์คํฌ๋กค๋ง + ๋ฉ๋ชจ์ด์ ์ด์ |
| ๐ | Apollo Client ์บ์ ์์ ํ | ๋ฒ๊ทธ 90%โ | Type Policy ์ฌ์ค๊ณ |
| ๐ | WebView ๋ธ๋ฆฟ์ง ํต์ ์์ ํ | 99.5% | ํ๋ซํผ ์ถ์ํ + ํ์ ์์คํ |
| ๐พ | PWA ์คํ๋ผ์ธ ๋ฐ์ดํฐ ๋๊ธฐํ | ์ ์ค๋ฅ 0% | Service Worker + IndexedDB |
| ๐ | PDF ๋ฆฌํฌํธ ๊ฒฝ๋ํ | 70%โ | Chunked ๋ ๋๋ง + ์์ถ |
| โ | ๋ฐ์ดํฐ ๊ณ์ฐ ์ ํ๋ | ์๊ฐ ๋ฒ๊ทธ 0๊ฑด | ๋ก์ง ์ค์ํ + ๋จ์ ํ ์คํธ |
| ๐ | ๋ค๊ตญ์ด ์ง์ | ํ/์/์ผ | i18next Namespace ์ค๊ณ |
| ๐ | ๋ฒ๋ค๋ฌ ๋ง์ด๊ทธ๋ ์ด์ | WebpackโVite | ๋น๋/HMR ์ฑ๋ฅ ๋ํญ ๊ฐ์ |
| ๐จ | UI ํ๋ ์์ํฌ ์ ๊ทธ๋ ์ด๋ | MUI v5โv7 | Grid API, slotProps, ํ ๋ง ์ฌ์ค๊ณ |
| ๐ฆ | ๋ ์ง ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฒฝ๋ํ | momentโdayjs | ๋ฒ๋ค ์ฌ์ด์ฆ ๊ฐ์ |
| ๐งช | FE ํ ์คํธ ํ๊ฒฝ ๊ตฌ์ถ | 30+ ๋จ์ ํ ์คํธ | Vitest + RTL + jsdom, ์ ํธ ํจ์ ์ปค๋ฒ๋ฆฌ์ง |
| ๐ค | AI ๋ณด๊ณ ์ ์์ฑ ํ์ดํ๋ผ์ธ | vLLM/Gemma 4 | Ollama Cloud ์น๊ฒ์ + Tool Calling ํ์ + HTML ํ ํ๋ฆฟ |
| ๐ฏ | AI ๋ณด๊ณ ์ ํ์ง ์๋ํ | ํฐ์ด ๊ธฐ๋ฐ ๋ถ๋ ์ ์ด | ์น์ A/B/C ์๋ ๋ถ๋ฅ, ๋ฐ์ดํฐ ์ฐธ์กฐ ํํธ, ์น๊ฒ์ ํ๋ฆฌํ์น, ํ๋กฌํํธ ํ์ง ๊ท์น |
| โ๏ธ | ๋น๋๊ธฐ ๋ฆฌํฌํธ ํ + ์ค์๊ฐ ์๋ฆผ | BullMQ + SSE | ioredis ์์ ํ + NotificationHub ๊ธ๋ก๋ฒ ์๋ฆผ |
| ๐ก | vLLM ์๋น ๋ชจ๋ํฐ๋ง ์ธํ๋ผ ๊ตฌ์ถ | ์ ์ฒด Observability | Prometheus + Grafana ๋ฉํธ๋ฆญ, LiteLLM Proxy ๋ก๊น , LangFuse tool call ์ถ์ , Docker Compose ์ ํํธ์คํ |