Frontend Developer
10초의 로딩을 500ms로, 끊기던 화면을 60FPS로. React, React Native, Electron을 활용해 웹·앱·데스크톱을 아우르는 크로스플랫폼 프론트엔드를 개발하며, 사용자 경험의 병목을 수치로 진단하고 해소해왔습니다. 프론트엔드를 넘어, 메이커의 시선에서 설계·구현·인프라까지 제품 전체의 품질을 높이는 데 기여하고 있습니다.

전기차 충전기 및 충전소 인프라 제공에 필요한 기술들을 웹과 모바일 등 여러 방법을 활용하여 문제를 해결하고 있습니다.
프로젝트의 초기 구축부터, 배포, 설계 고도화까지의 전 과정에 참여했으며, 프론트엔드 파트를 전담하고 있습니다.
전기차 충전기 펌웨어와 소프트웨어 간 바이너리 통신을 위한 터미널 어플리케이션을 크로스 플랫폼으로 개발했습니다.
터미널 이외에도 실시간 3D 테스트 및 부품 진단 프로그램과 사내 칸반 기반 프로젝트 일정 관리 소프트웨어를 개발하고 데이터 구조를 설계하였습니다.
React Native/Electron에서 동시에 사용 가능한 브릿지 패키지를 구현해 브라우저/데스크탑/안드로이드 크로스 플랫폼 구축 및 핵심 코드는 React에서 한 번만 작성하는 구조로 개발 공수를 절감했습니다.Deflate 방식으로 패킷을 압축하여 200ms마다 발송되는 패킷 용량을 건당 140Byte → 15Byte로 90% 절감하고 현장에 나가지 않고도 충전기를 점검 가능한 환경을 구축했습니다.ProtocolBuilder 에서 적절한 변환기를 호출하도록 구현하여 변환 로직의 확장성과 가독성을 개선했습니다.Orval 등 OpenAPI 자동화에 어려움이 존재했습니다. 서버 레포지토리 기반으로 zod 스키마, Http 통신, 쿼리 팩토리를 자동 생성하는 Claude Skill을 구축하여 API 연동 작업 시간을 단축하고 백엔드 변경에 대한 프론트엔드 의존성을 해소했습니다.lingui로 자동 래핑·추출·번역하는 Claude Skill을 구축하고 CI에서 번역 커버리지를 측정하여 번역 누락을 사전 차단하고 수동 번역 작업을 자동화했습니다.Command/Wait/Expect로 구조화한 자동 테스트 러너를 구축하여 진단 과정을 자동화하고 테스트 재현성을 확보했습니다.국내 및 북미 전기차 운전자들에게 자사의 충전소 인프라를 제공하는 어플리케이션을 React Native로 개발하고 있습니다.
기존에 Flutter 기반 외주로 개발한 앱을 React Native로 마이그레이션 중입니다.
Next.js를 고려했지만 인프라 관리 비용과 디바이스에 따른 실제 성능에 대한 추가적인 고려가 필요했습니다. 슬로우 쿼리를 포함한 Mocking API, Amplify, S3/CloudFront 데모 클라이언트를 리전별로 배포 후 Catchpoint를 통해 리전/디바이스/네트워크에 따른 퍼포먼스 테스트를 진행해 총 16개의 퍼포먼스 데이터를 수집했습니다. 분석결과 SSR Amplify/Nextjs의 지표가 1.5배 가량 낮았고, 유저 인터랙션 중심의 어플리케이션 성향을 고려하여 S3/CloudFront를 최종 선정하였습니다.Terraform 대비 러닝커브가 낮고 Typescript 기반으로 확장과 유지보수가 용이한 Pulumi기반 IaC 환경을 도입했습니다. 인프라를 코드로 표준화하고 재사용성을 확보함으로써 배포 자동화, 일관성, 안정성을 강화했습니다.AWS SDK 기반 배포 CLI를 구축하여 환경·국가별 배포 및 롤백을 커맨드 한 줄로 수행 가능하도록 운영 편의성을 개선했습니다.Cloudfront KeyValueStore로 웹뷰 아티팩트 버전과 브릿지 버전을 매핑하고, Serve CLI에서 브릿지 버전별로 제공할 웹뷰 버전을 지정 가능하게 했습니다. 네이티브에서 웹뷰 요청시 쿠키에 브릿지 버전을 담아 Cloudfront Functions에서 해당 브릿지에 따라 적절한 아티팩트를 서빙하도록 구현하여 안정적인 브릿지 인터페이스를 보장하는 배포 환경을 구축했습니다.Changeset 기반 버전 관리와 Preview 자동 배포 파이프라인을 구축하여 PR 단위로 즉시 QA가 가능한 환경을 확보, 피드백 사이클을 단축했습니다.StyleSheet와 vanilla-extract가 참조하도록 해 크로스플랫폼 UI 컴포넌트 라이브러리를 구축하여 앱/웹 간 UI 불일치를 제거하고 동일한 사용성을 제공하도록 개선했습니다.Naver Maps API를, 북미향은 호출 비용 최소화를 위해 Google Maps를 네이티브 레이어에서 사용하고 iOS는 빌트인 Apple Maps를 선택하여 리전별 비용과 사용성을 동시에 최적화했습니다.Dev/Prod 환경의 앱 식별자가 동일하여 스토리지 등 어플리케이션 컨텍스트가 오염되는 문제가 있었습니다. Prebuild시 환경별 네이티브 컨텍스트를 주입해 하나의 디바이스에 Dev/Prod 동시 설치 가능, 환경 간 데이터 오염을 차단했습니다.자사 충전소 인프라 관리 및 고객사의 충전소 관리를 위한 전기차 충전소 B2B SaaS 백오피스의 프론트엔드를 개발했습니다.
Turborepo로 설계하여 빌드 설정만으로 한국/북미 등 다국가 서비스를 배포 가능하도록 구축했습니다.@tanstack/virtualizer 리스트 가상화 테이블 컴포넌트를 구현하여 해결했습니다.XLSX 등 대용량 모듈의 코드 스플리팅과 React.lazy 동적 임포트로 엔트리 청크 크기를 60% 감소시켰습니다.turbo prune으로 CI에서 빌드를 완료하고 아티팩트만 전송하는 구조로 전환하여 10분 → 1분으로 90% 단축했습니다.선불 결제 후 사용량에 따른 부분 취소 방식의 충전기 결제 웹앱의 프론트엔드 및 백엔드를 개발했습니다.
Kafka 전송 실패, DB 에러, PG사 결제 실패 등 실패 시나리오별 에러 코드를 체계적으로 정의하고 사용자에게 원인과 대처 방법을 안내하여 결제 관련 CS 문의를 감소시키고 사용자 셀프 해결율을 향상시켰습니다.반응형 디자인과 다국어 지원, SEO 최적화, 리소스 매니징 작업.
next-intl로 한국어/영어/독일어 다국어 페이지를 개발하여 신규 시장 진출 시 별도 사이트 구축 없이 즉시 현지화 대응이 가능하도록 했습니다. URL 경로 기반 로케일 라우팅과 hreflang 태그 자동 생성으로 각 언어 페이지의 글로벌 검색 노출을 확보했습니다.i18n-scanner로 JSON과 스프레드시트를 자동 동기화하여 담당자가 스프레드시트에서 수정하면 스크립트 한 번으로 코드에 반영 가능하도록 하여 번역 관련 커뮤니케이션 비용을 대폭 절감했습니다.VIP 인원 수송 및 산불 진화, 전술강하 등 임무 수행
중앙제어실 Distributed Control Operator
온프레미스 인프라 및 네트워크 이해도 향상을 위해 베어메탈 x86 서버 3대로 구성된 (Master 1, Worker 2) 홈 서버를 경량 Kubernetes 배포판인 k3s를 사용하여 클러스터를 구축 및 운영하며 블로그, 웹 이력서, 기타 개인 프로젝트들을 셀프호스팅하고 있습니다.
Cloudflare Tunnel을 통해 퍼블릭 IP 노출 및 인바운드 포트 개방 없이 외부에서 안전하게 접속 가능한 환경을 구성했습니다.ArgoCD를 활용하여 Git 레포지토리 기반의 GitOps CD 파이프라인을 구축했습니다.Tailscale 기반 VPN을 구축하여 외부 네트워크에서도 클러스터 내부 서비스에 직접 접근 가능한 환경을 마련했습니다.