Jaeung Kim Logo
김재웅 (Jae Kim)

김재웅 (Jae Kim)

Frontend Engineer

안녕하세요. 5년차 엔지니어 김재웅입니다. 이에이트에서 프론트엔드 개발자로 일하고 있고, 요즘은 대규모 데이터 시각화와 온톨로지 기반 데이터 정제, 그 위에서 사람과 AI가 함께 일하는 워크플로우를 설계하는 일에 시간을 많이 쓰고 있습니다. 그 결과가 사용자에게 자연스럽게 닿도록 화면과 인터랙션을 다듬는 일도 같이 챙기는 편입니다.

지금은 현대자동차 R&D 데이터 통합 플랫폼을 만들고 있습니다. 부서마다 흩어져 있던 데이터를 온톨로지 기반 지식 그래프로 모으고, 그 위에서 자연어 탐색과 추적이 한 환경에서 이어지도록 설계하는 일에 집중하고 있습니다.

복잡한 도메인을 오래 다루다 보면 자연스레 드는 생각이 있습니다. 복잡함을 없애는 것보다, 그 안에서도 사람이 방향을 잡을 수 있게 만드는 일이 더 중요할 때가 많다는 것입니다. 그래서 데이터 모델이나 알고리즘만큼, 그 위에 올라가는 사용자 경험과 협업 환경을 다듬는 일에도 공을 들이는 편입니다. AI가 결과를 빠르게 만들어주는 시기일수록, 사람이 그 위에서 어떻게 일할 수 있는지가 더 중요해진다고 느낍니다.

사소한 어긋남을 그냥 두지 않고, 좋은 결과물은 좋은 협업에서 나온다고 믿습니다.


Experiences

2024.01 ~ 현재

이에이트

잠실, 대한민국

플랫폼 개발팀 | 선임 연구원

TypeScriptReactNext.jsNest.jsTanStack-QueryZustandRecoilTailwind CSSShadcnMotionD3.jsCanvas APISocket.ioWebRTCStorybookFigmaDockerSentryAWS

프론트엔드 플랫폼 아키텍처 구축 및 표준화

  • 공용 인프라 통합: 모노레포 아키텍처, 공용 UI 패키지, Storybook 기반 디자인 시스템, i18n과 Prettier/ESLint를 포함한 공통 템플릿, 앱별 브랜치 전략을 정립해 매 신규 프로젝트가 반복 작성하던 기반을 단일 표준으로 일원화
  • 빌드 파이프라인 재구성: Jenkins와 Docker 기반 CI/CD 도입, 기존 Create React App 환경을 Vite와 Yarn Berry(PnP)로 전환해 Docker 기반 CI 빌드 시간 10분 → 1~2분 으로 약 80% 단축
  • 운영 가시성 확보: Sentry를 사내 리눅스 서버에 Self-Hosted로 구축, 분산 운영되던 오류 로그를 중앙 집중화하고 실시간 알림으로 장애 대응 속도 향상
  • 커밋 단계 품질 게이트: husky pre-commit hook과 lint-staged로 lint, format, type-check를 커밋 진입점에서 자동 실행, commitlint와 Conventional Commits 규약을 적용해 PR 이전 단계에서 코드 품질과 커밋 메시지의 일관성을 결정적으로 보장
  • AI 코딩 에이전트 협업 시스템 설계: Claude Code, Cursor, OpenAI Codex 어느 도구로 진입해도 동일한 팀 컨벤션을 따르도록 진입점 3종(CLAUDE.md, AGENTS.md, .cursor/rules)을 단일 워크플로 디렉토리로 라우팅, 도메인 워크플로 15개로 분리해 환각, 과도한 추상화, 컨벤션 표류, 검증 누락 4가지 실패 패턴을 시스템 레벨에서 차단
현대자동차 R&D 데이터 통합 플랫폼

부서마다 엑셀과 PDF로 흩어져 관리되던 차량 개발 데이터를 단일 온톨로지 지식 그래프로 통합하는 사내 플랫폼입니다. PoC를 거쳐 섀시 해석팀의 본사업에 진입했고, 7개 차량 성능 영역 전 부서로 단계적으로 확장 중입니다. FE 전체 아키텍처를 주도했고, BE/AI/FE가 공유하는 데이터 스키마와 지식 그래프 시각화 SDK를 직접 설계하고 구현했습니다.

지식 그래프 시각화 SDK

  • WebGL 기반 통합 그래프 라이브러리는 대규모 렌더링에는 강했지만, 한 화면 25노드 점진 탐색에 필요한 인터랙션 정밀도가 나오지 않았습니다. 커스터마이징 비용이 누적되는 구조였기에, 렌더링과 상태, 인터랙션 제어권을 모두 내부에 둔 자체 SDK로 전환했습니다.
  • 레이아웃 안정성은 검증된 물리 시뮬레이션 라이브러리에 위임하고, 도메인 차별화가 필요한 렌더링과 인터랙션만 Canvas로 직접 구현했습니다. 위임과 직접 구현의 경계를 명확히 그어, SDK가 안는 복잡도를 통제 가능한 범위로 유지했습니다.
  • 고빈도로 갱신되는 시뮬레이션 좌표는 React 상태에서 빼고 SDK 내부에서 관리하며, React에는 노드 선택처럼 의미 있는 변화만 콜백으로 노출했습니다. 매 프레임마다 UI 트리가 리렌더되지 않도록 분리해, 노드 수가 늘어도 인터랙션 응답성을 잃지 않도록 했습니다.

BE/AI/FE 공유 데이터 스키마

  • BE와 AI, FE가 같은 JSON 위에서 협업할 수 있도록 입력 표현, 의미 단위, 저장 단위 3단 추상화를 스키마 단계에서 정의했습니다. 각 팀이 자기 레이어만 다루는 구조라, 팀 사이 API 명세 합의 비용이 사라졌습니다.
  • 매핑이 확정되는 순간 의미 단위가 곧 온톨로지 그래프의 노드가 되도록 데이터 모델을 잡았습니다. 파일 업로드부터 GraphRAG 기반 LLM 질의응답까지 변환 단계 없이 같은 데이터가 단일 경로로 흐릅니다.
  • 사용자가 정의한 컬럼명을 그대로 데이터 키로 받아들이는 구조라, 표준 양식을 강제하지 않고도 부서별 양식 차이가 흡수됩니다. 같은 모델을 PDF 같은 비정형 입력에도 그대로 확장했습니다.

엑셀 매핑 에디터

  • R&D 엔지니어가 엑셀 외 새 인터페이스에 적응할 필요가 없도록, 단축키와 마우스 인터랙션은 엑셀 그대로 가져갔습니다. 매핑이라는 새 작업만 색상과 브러시 같은 별도 시각 레이어로 분리해, 기존 동작과 충돌 없이 신규 작업을 흡수했습니다.
  • 매핑 정의는 관리자가 한 번 끝내고 값 입력은 일반 사용자가 N회 반복하도록 화면 단위로 책임을 분리했습니다. 일반 사용자가 매핑 개념을 몰라도 시스템이 돌아가는 구조라, 도입 비용이 사용자 모수에 비례하지 않습니다.

다중 패널 추적성 다이어그램

  • 차량 단위로 설계, 해석, 성능까지 이어지는 워크플로우를 한 화면에서 따라가도록 가로 다중 패널 레이아웃을 설계했습니다. 패널 간 노드 소유권을 사전 분배해 공유 노드는 한 번만 그리고 관계는 엣지로 풀어내, 패널 수가 늘어도 시각 복잡도가 일정하게 유지됩니다.
  • 노드 위치가 갑자기 점프하면 흐름을 따라간다는 추적성의 본질이 깨진다고 판단해, 위치 보간으로 부드럽게 풀어냈습니다. 사용자가 드래그 중일 때는 자동 이동을 멈춰, 수동 조작과 자동 보정이 충돌하지 않게 했습니다.
디지털 트윈 연합 통합 포털

과기정통부 디지털 트윈 연합 핵심 기술 개발 사업 3세부 통합 포털입니다. 인증과 권한이 제각각이거나 부재했던 외부 도구 11개와 연구기관 산출물을 단일 인증, 권한, 조직 레이어 아래로 묶었습니다. NestJS 백엔드와 Next.js 15 BFF, DB 스키마까지 1인 풀스택으로 진행했습니다.

통합 인증, 권한, 조직 레이어

  • 인증, 사용자, 권한, 조직, 게시판, 공지 등 6개 도메인으로 모듈을 분리하고, RBAC는 NestJS 글로벌 가드로 단일화했습니다. 컨트롤러마다 흩어져 있던 인증 코드를 한 지점으로 모은 덕분에, 권한 정책 변경이 가드 한 곳의 수정으로 끝나는 구조가 됐습니다.
  • 토큰을 httpOnly 쿠키와 서버 사이드 프록시 안쪽으로 봉인하고, middleware 단계에서 무인증 진입을 사전 차단했습니다. 클라이언트 코드가 토큰에 접근하는 경로 자체를 없애 XSS 탈취 표면을 제거했고, 보호 페이지 진입 시 발생하던 인증 체크 깜빡임도 함께 사라졌습니다.

렌더링과 캐시 전략

  • Next.js 15에서 부모 layout이 cookies()를 읽는 자식 라우트가 전부 동적으로 분류되면서, 단순한 page-level revalidate 선언이 의도대로 동작하지 않는 상황을 마주했습니다. “캐시는 데이터의 영역에, 동적 검증은 권한의 영역에 둔다”는 원칙으로 정리하고, 라우트별 렌더링 전략을 SSG, ISR, 동적 SSR + 데이터 캐시, RSC + Client Hydration 네 갈래로 분리했습니다.
  • 서버에서 prefetch한 데이터를 클라이언트가 같은 키로 그대로 받아쓸 수 있도록, 도메인별 query key factory를 두고 hydration 경계를 통일했습니다. 같은 페이지가 서버 프리렌더와 클라이언트 인터랙션 사이에서 깜빡임 없이 이어지도록 하기 위함입니다.

이에이트 자사 디지털 트윈 제품군 (NAXiS, PMIS, NDX Cloud 등)

디지털 트윈 데이터 모델링, 시각화, 운영 도메인 5개 제품에 참여

NAXiS(NGSI-LD 기반 온톨로지 비주얼 모델링 도구)

  • 관계 단위 시각 추상화: 수백 개 자식 엔티티가 만드는 엣지 폭증을 동일 관계 그룹 노드로 압축, 사용자 인지 단위를 개별 노드에서 관계 그룹으로 전환
  • 차용과 자체 설계의 경계 분리: React Flow는 viewport와 이벤트 인프라로만 위임, 도메인 시각 추상화는 customNode와 customEdge 위에 직접 구축
  • 엣지 시각화 시스템 자체 구축: 동일 타겟과 레이블의 엣지를 렌더 단계에서 자동 병합하고 카운트 표기, 조상 기준 색상과 점선 애니메이션으로 관계의 방향성과 위계 시각화
  • 레이아웃 비용 제어: Dagre 직접 통합 후 호출 시점과 입출력 통제, 그룹 펼침과 접힘 시 전체 재배치 대신 부분 재배치로 한정해 인터랙션 비용 최소화

PMIS(공정과 시공 통합 관리 솔루션)

  • 대규모 트리 진입 비용 재설계: 수천 행 WBS 트리의 일괄 로드를 하위 노드 플래그 기반 lazy load와 가상 스크롤로 교체, 초기 로딩 12초 → 2초로 단축
  • 선언형 데이터 흐름 도입: 인터랙션 빈도와 지연 허용도에 따라 동기화 전략 분기, 빈번한 트리 조작은 Optimistic UI와 롤백으로, 페이지 진입은 Suspense 기반 병렬 로딩으로 책임 분리

NDX Cloud(드론과 지상 영상 기반 사진측량 클라우드 플랫폼)

  • 권한 모델 화면 단일화: 조직, 프로젝트, 사이트, 데이터셋 4단 계층 권한을 단일 RBAC 매트릭스로 추상화, 역할 기반 노출과 접근 제어를 화면 레벨로 일관화
  • 대용량 업로드 파이프라인 재구성: 4천 장 업로드 병목을 메타데이터 파싱과 서버 경유 두 축으로 분리 진단, JPEG APP1 마커 부분 파싱으로 EXIF 추출 메모리 20GB → 800MB, Presigned URL 기반 브라우저-S3 직접 업로드로 전체 처리 20분 → 10분 단축

2023.06 ~ 2023.10

Flashee

밴쿠버, 캐나다

프론트엔드 개발자

ReactNext.jsReduxTailwind CSSSupabaseShopifyAWS
  • 통합 의류 쇼핑 마켓플레이스(E-Commerce) 스타트업의 첫 번째 개발자로 입사하여 프론트엔드 서비스 전반 기획/개발/배포/운영 담당
  • Shopify Marketplaces 통합을 위한 E-Commerce 플랫폼 아키텍처 설계 및 구축
  • Supabase 및 서드파티(Instagram, TikTok 등) 로그인 키트 통합 아키텍처 설계로 플랫폼 보안 및 사용자 접근성 향상
  • Shopify Payments 결제 게이트웨이 통합 전략 수립 및 구현으로 카트 포기율 감소 및 거래 성공률 개선

2022.07 ~ 2023.06

iClinic Systems Inc.

밴쿠버, 캐나다

풀스택 개발자

AngularNode.jsExpress.jsMongoDBSASSFramer MotionGSAPWebGLThree.jsAWS
  • EMR(Electronic Medical Records) SaaS 스타트업에서 풀스택 개발자로 활동
  • WebGL 기반 마케팅 프로젝트 아키텍처를 독자적으로 설계 및 구현하여 현대적인 웹 경험 제공
  • Framer Motion과 GSAP을 활용한 인터랙션 및 애니메이션 전략 설계로 사용자 경험 개선
  • 기술적 지식이 없는 경영진도 사용 가능한 인력 및 근태 관리 어드민 포털 아키텍처 설계 및 운영
  • 백엔드 API 아키텍처, AWS 인프라 설계, MongoDB 데이터베이스 스키마 설계 및 CI/CD 파이프라인 구축

2021.01 ~ 2022.05

Catalx Management Ltd.

밴쿠버, 캐나다

프론트엔드 개발자

ReactGraphQLAWSFigma
  • 암호화폐 거래소 스타트업에서 React 기반 컴포넌트 아키텍처 설계 및 확장 가능한 시스템 구축
  • 신용카드 결제 시스템 통합 아키텍처 설계 및 암호화폐 구매 플로우 구현
  • AWS Lambda@Edge와 Facebook Open Graph를 활용한 소셜 미디어 URL 미리보기 최적화 전략 수립 및 구현
  • 디자이너와 협업하여 UI/UX 아키텍처 개선 및 사용자 경험 향상

Projects

React Gantt Chart
ReactViteZustand
  • npm에 공개한 오픈소스 Gantt Chart 라이브러리. 수천 개 Task 데이터를 Virtualization과 Lazy Loading 아키텍처로 렌더링 성능 40% 개선.
  • WBS 기반 프로젝트 관리 아키텍처 설계 및 Optimistic UI 패턴을 통한 실시간 구조/일정 수정 시스템 구축
  • 확장 가능한 플러그인 아키텍처와 경량화 설계로 실무 환경에서 활용 중이며, 커뮤니티 피드백을 반영한 지속적 개선
Portfolio Website
Next 15 (App)Tailwind CSSFramer MotionGSAPThree.js
  • Next.js App Router와 SSG를 활용한 정적 사이트 아키텍처 설계 및 프로젝트/기술 블로그 통합 관리 시스템
  • WebGL과 Three.js를 활용한 3D 인터랙션 아키텍처 설계 및 렌더링 성능 최적화
  • 이미지 최적화 전략 및 반응형 디자인 아키텍처를 통한 성능 최적화 및 사용자 경험 개선
BC Government
ReactTailwind CSSNode.jsExpress.jsMongoDBDocker
  • BC 주정부 IS24 Full Stack Competition 과제로 개발한 직원 관리 시스템 아키텍처 설계
  • 조직 계층 구조 관리를 위한 데이터 모델 설계 및 효율적인 UI/UX 아키텍처 구현
  • React 프론트엔드, Node.js 백엔드, PostgreSQL 데이터베이스 아키텍처 설계 및 Docker 기반 컨테이너화 배포
Lost Ark Discord Bot
Node.jsDiscord.jsHerokuJavaScript
  • Discord.js 기반의 Lost Ark 파티/레이드 모집 봇 아키텍처 설계로 게임 커뮤니티의 매칭 효율성 개선
  • 명령어 기반 이벤트 핸들링 아키텍처 및 자동 알림 시스템 설계로 사용자 편의성 향상
  • 실제 커뮤니티에서 운영되며 사용자 피드백을 반영한 지속적인 아키텍처 개선 및 유지보수

Education

2020.04

University of British Columbia

Bachelor of Science - Major in Computer Science