Jaeung Kim Logo
김재웅 (Jae Kim)

김재웅 (Jae Kim)

Frontend Engineer

안녕하세요, 5년차 프론트엔드 개발자 김재웅입니다. 최근에는 자동차 R&D 프로젝트에서 대규모 데이터를 온톨로지로 묶어 시각화하고, 부서마다 흩어져 있던 수천 장의 엑셀과 PDF를 하나로 모아, 자연어로 묻기만 하면 원하는 정보를 바로 추적할 수 있는 솔루션을 만들고 있습니다.

복잡한 도메인일수록 화면 설계가 결과를 좌우합니다. 그래서 기능을 나열하기보다, 실제 사용자가 어떻게 반응하는지를 먼저 보고 UI/UX를 다듬습니다. 별도의 설명 없이도 다음에 할 일이 보이는 화면이 좋은 화면이라고 봅니다.

같은 기준을 동료에게도 적용합니다. 제 코드를 이어받는 개발자가 바로 이해하고 쓸 수 있도록 일관된 구조로 설계하고, 그 의도를 문서로 남깁니다. 지금 프로젝트에서는 프론트엔드 아키텍처와 개발을 맡으면서, 기획 단계부터 디자이너, 백엔드 개발자와 함께 제품의 방향과 프론트엔드 구조를 잡아 갑니다. 디자인의 의도와 구현을 서로의 언어로 옮기고 역할 사이의 빈틈을 메우는 일을 가장 잘하고, 또 가장 즐깁니다.

AI 같은 새로운 도구는 빠르게 익히되 거기서 멈추지 않습니다. 사람과 AI가 함께 일하는 방식을 설계하고, 그 기준을 팀이 함께 쓰도록 만드는 데 더 무게를 둡니다. 혼자 잘 쓰는 개인보다, 팀 전체가 함께 잘 쓰는 환경을 만드는 쪽이 제가 가려는 방향입니다.


Experiences

2024.01 ~ 현재

이에이트

잠실, 대한민국

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

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

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

  • 모노레포, 공용 UI 패키지, Storybook 디자인 시스템, 린트/i18n 템플릿, 브랜치 전략을 단일 표준으로 통합해 신규 프로젝트 셋업 비용 제거
  • CRA에서 Vite + Yarn Berry(PnP)로 전환하고 Jenkins/Docker CI/CD를 도입해 CI 빌드 10분 → 1~2분(약 80%↓)
  • Sentry를 사내 서버에 Self-Hosted로 구축해 분산 오류 로그를 중앙화하고 실시간 알림으로 장애를 즉시 감지
  • 커밋 단계 검증 기준이 없던 프론트엔드팀에 husky, lint-staged, commitlint로 lint/format/type-check와 커밋 규칙을 강제하는 품질 게이트를 직접 수립
  • 커스텀 커맨드와 워크플로 15개, 역할별 서브에이전트와 스킬, 검증 가드레일을 구축해 AI 활용이 예외가 아닌 기본값이 되는 AI-Native 개발 환경으로 확장 중
현대차 R&D 데이터 통합 플랫폼

현대차 R&D 데이터를 온톨로지 기반 지식 그래프로 통합하는 사내 플랫폼. FE 전체 아키텍처를 주도하며 지식 그래프 시각화 SDK, LLM 채팅, 매핑 에디터를 직접 설계하고 구현.

지식 그래프 시각화 SDK

  • 사내 GraphRAG 제품들이 공통으로 사용하는 지식 그래프 시각화 SDK 설계 및 개발. 렌더링과 d3-force 레이아웃 엔진을 React에 의존하지 않는 코어로 분리해 여러 제품에서 재사용
  • 구현 타입을 감춘 명령형 핸들 하나로 엔진을 노출해, 내부 구조를 바꿔도 사용처가 깨지지 않는 안정적 API와 코어 단독 테스트 환경 확보
  • DOM 대신 Canvas 2D 직접 렌더링, 움직임이 있을 때만 다시 그리고 멈춰 있을 땐 렌더링을 멈추는 방식으로 불필요한 연산 제거
  • 라벨을 이미지로 캐싱해 재사용하고 크게 확대되면 직접 그리기로 전환하는 하이브리드 렌더링으로 텍스트 성능과 선명도 개선
  • 자주 바뀌는 상태를 React 밖에서 관리하고 데이터가 실제로 바뀔 때만 갱신을 전파하도록 구성해, 대형 목록의 불필요한 리렌더 차단
  • 노드를 한 번에 불러오지 않고 이웃 단위로 점진 확장, 요청이 겹치면 이전 요청은 취소하고 늦게 온 응답은 버려 항상 최신 결과만 반영

LLM 채팅과 지식 그래프 연동

  • WebSocket 이벤트를 텍스트, 추론 단계, 그래프 근거 타입별 핸들러로 분리 처리하고, 몰려오는 청크는 한 프레임 단위로 모아 반영해 리렌더 최소화
  • 수신과 표시를 분리해 토큰 큐를 타자기처럼 일정 속도로 드레인하되, 큐가 밀리면 자동 가속하고 중단이나 에러 시 현재까지의 답으로 즉시 스냅
  • 완성 구간과 진행 구간을 분리 파싱해 완성분만 마크다운으로 렌더, 닫히지 않은 코드 블록과 수식 깨짐 방지
  • GraphRAG로 그래프의 노드와 관계를 따라 답변을 생성하고, 답변에 동봉된 그래프 쿼리로 '근거 보기' 시 서브그래프를 옆 캔버스에 렌더해 출처 추적

엑셀 매핑 에디터

  • 양식이 제각각인 엑셀을 단일 매핑 모델로 받아 처음 보는 양식도 코드 변경 없이 온톨로지 엔티티로 구조화
  • 단계별 검증과 미리보기, 중복 제거를 내장해 100% 정확도가 필요한 매핑에서 사용자 실수를 구조적으로 차단
  • 기성 그리드 없이 직접 구현하되 조작감은 엑셀과 동일하게 맞추고, 정의한 양식은 템플릿으로 저장해 반복 비용 제거
디지털 트윈 연합 통합 포털

정부 R&D 사업 통합 포털을 1인 풀스택으로 단독 설계 및 구현. 단일 인증/권한/조직 모델 위에 운영 셸을 구축하고, Next.js 15 App Router FE부터 NestJS BE까지 전 영역을 일정 내 완결.

  • 라우트 성격에 따라 SSG, ISR, SSR을 구분 적용하고, 인증이 필요한 페이지는 동적 렌더로 강제해 정적 캐시 오염 차단
  • 서버 컴포넌트에서 prefetch한 데이터를 dehydrate해 클라이언트 TanStack Query 캐시로 hydration, 첫 화면은 로딩 없이 렌더하고 이후 갱신은 클라이언트 쿼리가 이어받음
  • Next.js BFF가 토큰을 HttpOnly 쿠키로만 보관하고 백엔드에는 Bearer로 중계해 XSS가 나도 토큰이 노출되지 않게 처리
  • 토큰 도난을 방어하기 위해 access와 refresh를 분리하고, 토큰 회전과 재사용 탐지, 동시 갱신 요청 병합, 비밀번호 변경 시 전 토큰 무효화까지 적용
  • JWT 검증과 RBAC를 APP_GUARD로 전역 등록해 신규 컨트롤러에서도 인증 누락 불가, 토큰 만료 시 서버는 로그인 이동, 클라이언트는 인터셉터 자동 갱신으로 흐름 유지
  • 보안 설정을 환경 변수로 게이트해 같은 배포 이미지 하나로 HTTPS 운영과 내부망 HTTP를 모두 대응

자사 제품군 (NAXiS, PMIS, NDX Cloud 등)

자사 제품 5개의 프론트엔드 개발을 주도.

NAXiS(온톨로지 모델링 도구)

  • 코드 없이 온톨로지를 만드는 에디터를 React Flow 위에서 구축하며, viewport와 이벤트 같은 인프라는 라이브러리에 위임하고 엔티티 타입, 관계, 직렬화 같은 도메인 로직은 직접 추상화해 라이브러리 업데이트와 도메인 변경의 영향 범위 분리
  • 한 노드에 엣지가 수백 개 몰리는 시각 복잡도를 관계 그룹 노드로 압축하고, 커스텀 SVG 엣지로 동일 관계 자동 병합
  • Dagre를 차용하되 호출 시점과 입출력은 직접 통제하고, 펼침과 접힘 시 부분 재배치로 인터랙션 비용 유지
  • 도메인 로직을 라이브러리와 분리해 둔 덕분에 별도 수정 없이 사내 여러 제품에 채택되어 공통 컴포넌트 자산으로 정착

PMIS(프로젝트 일정과 자원 관리 솔루션)

  • 수천 행 트리를 하위 노드 플래그 기반 lazy load와 가상 스크롤로 재설계해 초기 로딩 12초 → 2초(약 80%↓)
  • 직렬 처리되던 도면 업로드를 mutateAsync와 Promise.all로 병렬화해 19장 4분 → 20초, Optimistic UI와 롤백으로 즉시 피드백

NDX Cloud(대용량 이미지 클라우드 플랫폼)

  • 4단 계층 권한(조직/프로젝트/사이트/데이터셋)을 단일 RBAC 매트릭스로 추상화해 화면 레벨까지 일관된 접근 제어
  • 4천 장 이미지 업로드 병목을 두 축으로 해결, EXIF 추출은 JPEG APP1 마커만 파싱해 메모리 20GB → 800MB, 업로드는 Presigned URL로 브라우저-S3 직접 연결해 20분 → 10분, 서버 부하 70%↓

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