화면에 빈 공간이 보이면 불안했던 시절이 있었어요. 여백을 '구분선 없는 구분선'으로 바라보게 된 과정을 공유합니다.
디자인과 코드를 잇는 프론트엔드 개발자
디자인을 전공하고, 직접 만들어보고 싶어서 개발을 시작했습니다.
React와 TypeScript 기반으로 웹 프론트엔드를 개발합니다.
프리랜서로 직접 설계하고 만들어 실제 서비스에 올린 제품들입니다.




공연·레저·숙박 등 다양한 티켓 상품을 판매·관리하는 올인원 티켓 커머스 플랫폼의 풀스택 개발을 담당했습니다. 쇼핑몰(고객용), 관리자 대시보드, 현장 관리자 시스템까지 3개 시스템을 단일 React 앱으로 설계·구현했습니다.

호주 멜버른 포토부스 브랜드의 레거시 WPF 시스템을 Electron + React + NestJS 기반으로 전면 리빌드했습니다. 부스 키오스크 앱, 관리자 대시보드, 백엔드 서버까지 pnpm 모노레포로 개발했습니다.

기존 오프라인 종이 계약 프로세스를 아이패드·태블릿 전용 웹앱으로 디지털 전환하는 프로젝트를 단독으로 개발했습니다. 계약 등록부터 전자서명, 진행 관리까지 전 과정을 실시간으로 연동했습니다.

보안 자산관리 솔루션 Keyrke의 프론트엔드를 혼자 맡아 개발하고 있습니다. 현대모비스, 현대오토에버, 현대케피코 등에 납품되어 실제 운영 중인 제품입니다.

처음에는 사내 웹 퍼블리셔로 근무하였고, 이후 외주 프리랜서로 전환하여 계약관리 시스템과 물류 서비스 웹 페이지 개발을 지속적으로 담당했습니다.
시각디자인과 웹디자인을 배우면서 UI 감각을 익혔고, 졸업 후 프론트엔드 개발로 전향했습니다.

호주 포토부스 브랜드의 레거시 WPF 시스템을 Electron + React + NestJS로 풀 리빌드한 풀스택 키오스크 관리 시스템

티켓·바우처 판매부터 현장 검증까지, 멀티채널 기반의 올인원 티켓 커머스 플랫폼

아이패드·태블릿 환경에 최적화된 계약 등록·전자서명·진행 관리 솔루션

보안 자산관리 솔루션의 프론트엔드 개발 전반을 담당

React + Supabase 기반 포트폴리오. 관리자 페이지에서 모든 콘텐츠를 CRUD할 수 있는 미니 CMS로 발전했어요.

매일의 루틴을 관리하고 달성률을 추적하는 모바일 앱

별도 앱 설치 없이 브라우저에서 바로 사진을 찍고 프레임을 입혀 저장할 수 있는 웹 포토부스

말 한마디로 청년 지원금·정책·훈련·임대공고를 찾아주는 카카오톡 AI(MCP) 서버

링크 하나로 친구를 초대해 실시간으로 타이핑 속도를 겨루는 멀티플레이 레트로 타자 대결 게임

방 코드로 친구를 초대해 상대방의 비밀 숫자를 추리하는 실시간 멀티플레이 숫자야구 웹 게임
화면에 빈 공간이 보이면 불안했던 시절이 있었어요. 여백을 '구분선 없는 구분선'으로 바라보게 된 과정을 공유합니다.
매번 눈으로 보면서 색을 고르다가 화면마다 미묘하게 다른 회색이 쓰이게 됐어요. 색상을 시스템으로 전환한 경험을 공유합니다.
포트폴리오 히어로 파티클 애니메이션을 만들면서 고민한 인터랙션 철학과 기능적/표현적 애니메이션의 차이를 정리했어요.
디자인을 하던 시절의 감각과 개발자로서의 구조적 사고가 만났을 때, UI를 만드는 방식이 어떻게 달라졌는지를 이야기합니다.
시각적으로 만족스러운 상품 페이지에서 구매 버튼을 못 찾는 문제를 겪고 나서, 화면 설계의 첫 질문을 바꾼 경험을 공유합니다.
정적 파일로 시작한 포트폴리오가 Supabase + 관리자 페이지까지 갖추게 된 과정을 기록했어요.
73개의 페이지 파일이 뒤섞인 구조를 도메인 기반으로 재편하고, React.lazy + Suspense로 초기 번들을 79% 줄인 경험을 공유합니다.
여러 독립 모듈이 공존하는 대시보드를 메타 데이터 기반 동적 렌더링과 공통 상태 관리로 구조화한 경험을 공유합니다.
API가 배열을 바로 반환하는데 response.data.content로 접근하면 undefined가 됩니다. 그 undefined가 useMemo까지 전파되어 크래시를 일으킨 과정을 기록했습니다.
개발자를 위한 아름답고 접근성 높은 React 컴포넌트 라이브러리
8가지 핵심 데이터 컴포넌트를 제공하는 전문 React 라이브러리