Frontend Engineer
42dot
WE ARE LOOKING FOR THE BEST
About Us
42dot์ ์ํํธ์จ์ด์ AI๋ก ๋ชจ๋น๋ฆฌํฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ ๋ชจ๋น๋ฆฌํฐ AI ๊ธฐ์ ์ ๋๋ค. ํ๋์๋์ฐจ๊ทธ๋ฃน ๊ธ๋ก๋ฒ ์ํํธ์จ์ด ์ผํฐ๋ก์, 42dot์ ์ํํธ์จ์ด ์ ์ ์ฐจ๋ ๊ฐ๋ฐ์ ์ ๋ํ๋ฉฐ ๋ฏธ๋ ๋ชจ๋น๋ฆฌํฐ๋ฅผ ๊ฐ์ฒํ๊ณ ์์ต๋๋ค.
Agentic AI Platform ํ์ LLM ๊ธฐ๋ฐ ์๋น์ค์ ์ด์ ๊ฐ์์ฑ(Observability)์ ํ๋ณดํ๊ณ , ๋น์ฉยท์๋ยทํ์ง ์งํ๋ฅผ ์ค์๊ฐ์ผ๋ก ๊ด์ธกยท์ ์ดํ๋ Agentic AI Console ํ๋ซํผ์ ์ค๊ณยท๊ฐ๋ฐํ๊ณ ์์ต๋๋ค. ๊ด๋ฆฌ์ ๋์๋ณด๋, RBAC ๊ธฐ๋ฐ ์ด๋๋ฏผ ์ฝ์, Grafana ์๋ฒ ๋ฉ ์๊ฐํ ๋ฑ ๋ณต์กํ ์ด์ ๋๊ตฌ์ ํ๋ก ํธ์๋๋ฅผ ์ฃผ๋์ ์ผ๋ก ์ค๊ณํ๊ณ ๊ตฌํํ ํ๋ก ํธ์๋ ์์ง๋์ด๋ฅผ ์ฐพ๊ณ ์์ต๋๋ค.
Responsibilities
- Next.js 14+ (App Router, TypeScript) ๊ธฐ๋ฐ Agentic AI Console ์น ์ ํ๋ฆฌ์ผ์ด์ ์ค๊ณ ๋ฐ ๊ฐ๋ฐ
- ๋์๋ณด๋ UI ๊ตฌํ (Grafana IFrame ์๋ฒ ๋ฉ + Recharts ์ปค์คํ ์ฐจํธ)
- RBAC(SuperAdmin/Admin/Operator/Viewer) ๊ธฐ๋ฐ ์ด๋๋ฏผ ๊ด๋ฆฌ ํ์ด์ง ๊ฐ๋ฐ
- TanStack Query(์๋ฒ ์ํ) + Zustand(ํด๋ผ์ด์ธํธ ์ํ) ๊ธฐ๋ฐ ์ํ ๊ด๋ฆฌ ์ค๊ณ
- Console API(FastAPI)์์ RESTful/JSON:API ์ฐ๋ ๋ฐ BFF ํจํด ์ ์ฉ
- ํ์ ๊ด๋ฆฌ, ๋ฏธํฐ๋ง ์กฐํ, ์๋ฆผ ์ค์ , ๋ฆฌํฌํธ ๋ทฐ์ด ๋ฑ ๋๋ฉ์ธ๋ณ UI ๊ตฌํ
- SSE/WebSocket ๊ธฐ๋ฐ ์ค์๊ฐ ๋ฐ์ดํฐ ์คํธ๋ฆฌ๋ฐ UI ์ฒ๋ฆฌ
- Google IAM(OIDC/JWT) ๊ธฐ๋ฐ ์ธ์ฆ ํ๋ก์ฐ ๊ตฌํ
- ๋์์ธ ์์คํ ์๋ฆฝ ๋ฐ ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ตฌ์ถ
- ํ๋ก ํธ์๋ ๋น๋ยท๋ฐฐํฌ ํ์ดํ๋ผ์ธ ์ต์ ํ (Turbopack, Docker)
Qualifications
- ํ๋ก ํธ์๋ ๊ฐ๋ฐ 7๋ ์ด์ ๊ฒฝํ
- Next.js (App Router) ๋ฐ TypeScript ๊ธฐ๋ฐ ํ๋ก๋์ ์๋น์ค ๊ฐ๋ฐยท์ด์ ๊ฒฝํ
- React ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ (TanStack Query, Zustand, Redux ๋ฑ) ์ค๋ฌด ํ์ฉ ๊ฒฝํ
- RESTful API ์ฐ๋ ๋ฐ ๋น๋๊ธฐ ๋ฐ์ดํฐ ํจ์นญ ํจํด์ ๋ํ ๊น์ ์ดํด
- ๋ณต์กํ ๋ฐ์ดํฐ ํ ์ด๋ธ, ํผ, ํํฐ๋ง UI ๋ฑ ์ด๋๋ฏผ/๋์๋ณด๋ ๋๊ตฌ ๊ฐ๋ฐ ๊ฒฝํ
- ๋ฐ์ดํฐ ์๊ฐํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Recharts, D3.js, Chart.js ๋ฑ) ํ์ฉ ๊ฒฝํ
- ์น ์ฑ๋ฅ ์ต์ ํ (SSR/CSR ํผํฉ, ์ฝ๋ ์คํ๋ฆฌํ , ๋ฒ๋ค ์ต์ ํ) ๊ฒฝํ
- ๋ฐ์ํ ์น ๋ฐ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ ์ฒ๋ฆฌ ๊ฒฝํ
- ๋ฌธ์ ํด๊ฒฐ์ ์ํ ๋ ผ๋ฆฌ์ ์ฌ๊ณ ์ ๊ธฐ์ ์ ๋ฆฌ๋์ญ
- ์ ๊ทน์ ์ผ๋ก ์๊ฒฌ์ ์ ์ํ๊ณ ํ์๋ค๊ณผ ์ํํ ์ํตํ ์ ์๋ ๋ฅ๋ ฅ
Preferred Qualifications
- Grafana ๋์๋ณด๋ ์๋ฒ ๋ฉ ๋๋ IFrame ๊ธฐ๋ฐ ์ธ๋ถ ์๊ฐํ ๋๊ตฌ ํตํฉ ๊ฒฝํ
- RBAC ๊ธฐ๋ฐ ๊ถํ ์ ์ด UI ์ค๊ณ ๋ฐ ๊ตฌํ ๊ฒฝํ
- SSE(Server-Sent Events) ๊ธฐ๋ฐ ์ค์๊ฐ ์คํธ๋ฆฌ๋ฐ UI ๊ตฌํ ๊ฒฝํ
- JSON:API ์คํ ๊ธฐ๋ฐ API ์ฐ๋ ๊ฒฝํ
- OAuth 2.0 / OIDC ๊ธฐ๋ฐ ์ธ์ฆ ํ๋ก์ฐ ๊ตฌํ ๊ฒฝํ
- ๋์์ธ ์์คํ ๋๋ UI ์ปดํฌ๋ํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค๊ณยท๊ตฌ์ถ ๊ฒฝํ
- Storybook ๋ฑ ์ปดํฌ๋ํธ ๋ฌธ์ํ ๋๊ตฌ ํ์ฉ ๊ฒฝํ
- ๋ชจ๋ ธ๋ ํฌ(Turborepo ๋ฑ) ํ๊ฒฝ์์์ ํ๋ก ํธ์๋ ํ๋ก์ ํธ ๊ด๋ฆฌ ๊ฒฝํ
- GitOps(ArgoCD, Flux ๋ฑ) ๊ธฐ๋ฐ ๋ฐฐํฌ ํ๊ฒฝ ๊ฒฝํ
- Docker/Kubernetes ํ๊ฒฝ์์์ ํ๋ก ํธ์๋ ๋น๋ยท๋ฐฐํฌ ๊ฒฝํ
- E2E ํ ์คํธ (Playwright, Cypress ๋ฑ) ๊ตฌ์ถ ๊ฒฝํ
- ์ ์์ผ(Agile) ๋ฐ ์คํฌ๋ผ(Scrum) ๋ฐฉ์์ ํ์ ๊ฒฝํ
Interview Process
- ์๋ฅ์ ํ - ์ฝ๋ฉํ ์คํธ - ํ์๋ฉด์ (1์๊ฐ ๋ด์ธ) - ๋๋ฉด ํน์ ํ์๋ฉด์ (3์๊ฐ ๋ด์ธ) - ์ต์ข ํฉ๊ฒฉ
- ์ ํ์ ์ฐจ๋ ์ง๋ฌด๋ณ๋ก ๋ค๋ฅด๊ฒ ์ด์๋ ์ ์์ผ๋ฉฐ, ์ผ์ ๋ฐ ์ํฉ์...
Share this job: