1. 정량 지표와 도메인 문제를 바탕으로 성능·데이터 흐름·보안 UX를 함께 설계하는 프론트엔드 개발자입니다. 2. 인터랙션 성능 최적화로 프레임 드랍 80% 개선 및 INP 80ms대를 달성했으며, 이미지 전달 경로 분리와 `priority` 선요청 전략으로 Cold 기준 LCP 4.69s → 2.81s(약 40% 단축)의 사용자 경험을 구축한 경험이 있습니다. 3. 토큰 갱신 시 발생하는 동시 401 에러를 Singleton Promise와 재시도 큐로 해결해 인증 흐름을 안정화했으며, Client-only 인증 흐름을 BFF 하이브리드 패턴으로 전환해 인증 요청을 same-origin으로 통합하고 서버 간 요청에 x-internal-key 검증 계층을 추가한 경험이 있습니다. 4. RHF + Zod 기반 폼 아키텍처 리팩터링으로 단일 훅에 혼재된 상태·검증·분기를 책임 분리하여 핵심 훅 74%(592→78줄), 조립 컴포넌트 77%(230→53줄) 감소를 달성했으며, FSD 구조와 ESLint/Husky 자동화를 도입해 팀의 코드 품질과 정합성을 유지한 경험이 있습니다. 5. Claude Code·Cursor AI를 실무 워크플로에 통합해 설계 검토·반복 구현·리팩터링을 가속화하고 있습니다. AI 제안을 도메인 컨텍스트와 대조·검증하며 수용 여부를 판단하는 방식으로, 생산성과 코드 품질을 동시에 유지합니다.
Skills Next.js 15, React 18, TypeScript 5, TanStack Query 5, Zustand 4, Axios, React Hook Form, Zod, Tailwind CSS, Radix UI, FCM, Vitest, MSW, Playwright, ESLint 9, Husky
Key Achievements
requestAnimationFrame 기반
스케줄링 적용 → 프레임 드랍 80%+ 개선 및 INP
80ms대 안정화
/api/auth/*) + 미들웨어로 보호 경로 1차
차단 + refreshViewer
Singleton Promise(진입점 간) +
인터셉터 failedQueue(요청 간) 결합 → refresh
5회→1회 수렴, 보호 경로 깜빡임 0회,
외부 인증 도메인 직접 호출 0건
Basic Implementations
Skills Next.js 15, React 19, TypeScript 5, TanStack Query 5, Zustand 5, Supabase(PostgreSQL/Auth/Storage), Tailwind CSS 4, shadcn/ui, Zod
Key Achievements
unstable_cache +
태그 3종
분리(posts·comments·hashtags)로 무효화 범위 제어, cache-tags.ts로
태그·키 중앙화, 목록·검색을
prefetch/dehydrate/HydrationBoundary 단일 계약으로
통일, polling 제거 → mutation 후
revalidateTag +
invalidateQueries 연결 →
캐시 히트 시 DB 쿼리 0건(Supabase
API 로그 기준), 백그라운드 불필요 요청 0건
metadata/
generateMetadata로 페이지별
title/description/OG/JSON-LD를 구성하고
sitemap.xml, robots.txt,
semantic tags를 정리 → Lighthouse SEO
100점
URLSearchParams 동기화와
useInfiniteQuery 기반 검색을 구성하고,
Supabase RPC
get_posts_with_all_hashtags로 다중
해시태그 AND/정렬을 서버 처리 → 동일 조건 재현
Basic Implementations
next/image·GFM·구문 강조·Mermaid 커스텀 컴포넌트로 마크다운 렌더 안정화
Skills Next.js 15, React 19, TypeScript, Tailwind CSS, Supabase(PostgreSQL), ImageKit CDN, Vercel
Key Achievements
next/image
priority/sizes/ 로더 최적화 → 4.69s→2.81s(약
40% 단축), 전송 용량 76KB→26KB로 개선
onMouseEnter/onPointerDown에서
new Image() preload로 네비게이션 전
요청 → ~5.8s→~4.3s로 전환 타임라인 개선
?loc=N URL 파라미터
전달, useSearchParams()로 마운트 시점에
location 동기 확정 (hard navigation은 DB 폴백 유지)
→ soft navigation 경로
Server Action 호출 0건, 모달 이미지
transferSize 0B(캐시 히트) · ~1ms 렌더, skeleton 표시 구간 소멸
Basic Implementations
generateMetadata로 검색/상세 SEO 및 OG
동적 구성