김영인

사용자 경험 개선에 집중하는 프론트엔드 개발자

Summary

1. 정량 지표와 도메인 문제를 바탕으로 성능·데이터 흐름·보안 UX를 함께 설계하는 프론트엔드 개발자입니다. 2. 인터랙션 성능 최적화로 프레임 드랍 80% 개선 및 INP 80ms대를 달성했으며, 이미지 전달 경로 분리와 `priority` 선요청 전략으로 Cold 기준 LCP 4.69s → 2.81s(약 40% 단축)의 사용자 경험을 구축한 경험이 있습니다. 3. 토큰 갱신 시 발생하는 동시 401 에러를 Singleton Promise와 재시도 큐로 해결해 인증 흐름을 안정화했으며, 보안 리스크를 고려한 HttpOnly 쿠키 방식 전환을 제안해 시스템 보안성을 높인 경험이 있습니다. 4. 도메인별 DTO 불일치 문제를 Swagger/노션 문서화로 체계화하여 협업 비용을 낮추고, FSD 구조와 ESLint/Husky 자동화를 도입해 팀의 코드 품질과 정합성을 유지하는 데 기여한 경험이 있습니다.

Skills

Languages
TypeScript, JavaScript(ES6+)
Frontend
React, Next.js(App Router), HTML5, CSS3
Styling
Tailwind CSS, Styled Components
Data/State
TanStack Query(React Query), Zustand, Redux Toolkit
Backend/DB
Supabase(PostgreSQL), MySQL
DevOps/Tools
Git, GitHub, Vercel, AWS(S3)

Projects

Harvesters-LALA Service Link | Private Repo
2026.01 ~ 진행 중 | 팀 프로젝트(6명) | 프론트엔드(인증, 시나리오 UI, 레이아웃 구조 설계)
댓글 수집 및 AI 분석 기반으로, 사용자의 추가 관여 없이 평판을 자동 수집·분석·관리하는 B2B 웹 서비스

Skills Next.js 15, React 18, TypeScript 5, TanStack Query 5, Zustand 4, Axios, Tailwind CSS, Radix UI, ESLint 9, Husky

Key Achievements

Basic Implementations

  • App Router + FSD 레이어 표준화 및 ESLint로 의존성 방향 고정
  • WAI-ARIA(role/aria-*) 및 키보드 조작 핸들러 반영
  • FCM 알림 파이프라인 통합 + BroadcastChannel 멀티탭 동기화
  • Vitest+MSW로 유닛→통합→E2E 인증 테스트 인프라 구축 및 회귀 차단
Myblog Service Link | GitHub
2025.08 ~ 2025.09 | 개인 프로젝트(100%) | 기획·설계·구현·배포 전담
"다른 사람은 읽을 수 있지만, 업로드는 나만 가능한" 기술 블로그로, 기존 블로그 플랫폼에서 부족했던 해시태그 기반 분류·검색을 직접 구현해 내가 쓴 글을 위키처럼 빠르게 다시 찾을 수 있도록 설계한 서비스

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

  • [성능/캐시] 읽기 요청이 매번 DB 조회로 이어져 중복 fetch 및 SSR Hydration 계약 불일치 발생 → Next.js Data Cache(unstable_cache)와 태그 기반 무효화로 읽기 스냅샷을 공유하고, TanStack prefetch/dehydrate/HydrationBoundary로 queryKey를 정렬 → 재방문 시 DB 접근/중복 요청 감소
  • [SEO] 검색 유입을 위해 색인 품질을 높일 필요 → App Router metadata/ generateMetadata로 페이지별 title/description/OG/JSON-LD를 구성하고 sitemap.xml, robots.txt, semantic tags를 정리 → Lighthouse SEO 100점
  • [검색/필터 UX] 뒤로가기·새로고침·URL 공유 후에도 동일 필터 조합 재현이 어려워 탐색 흐름이 끊김 → URLSearchParams 동기화와 useInfiniteQuery 기반 검색을 구성하고, Supabase RPC get_posts_with_all_hashtags로 다중 해시태그 AND/정렬을 서버 처리 → 동일 조건 재현

Basic Implementations

  • useInfiniteQuery + IntersectionObserver 무한 스크롤, Suspense/Skeleton
  • Supabase OAuth/RLS/Middleware/Server Actions로 Admin-only 쓰기·수정·삭제 권한 제어
  • 마크다운 실시간 미리보기, 드래그&드롭 이미지 업로드, Zod 검증으로 입력 신뢰도 확보
  • QueryClient 분리 및 쿼리 키 팩토리로 캐시 invalidate 키를 일관화하고 좋아요 동기화 정책 적용
승룡이네집 도서 검색 시스템 Service Link | GitHub
2025.03 ~ 2025.04 | 개인 프로젝트(100%) | 프론트엔드 (기획·설계·구현·배포)
군 복무 중 700~800권 규모 도서에 대한 검색 시스템이 없고, 수기/분산 관리로 자료와 실제 위치가 어긋나던 문제를 해결하기 위해 개발한 도서 위치 안내 서비스

Skills Next.js 15, React 19, TypeScript, Tailwind CSS, Supabase(PostgreSQL), ImageKit CDN, Vercel

Key Achievements

  • [성능(LCP)] Cold Start에서 LCP가 4.69s 까지 지연 → ImageKit CDN 경로 분리 + next/image priority/sizes/ 로더 최적화 → 4.69s→2.81s(약 40% 단축), 전송 용량 76KB→26KB로 개선
  • [전환 성능] 검색 후 상세 페이지 진입 후 지도 이미지 요청이 늦게 시작돼 전환 직후 체감 지연 → onMouseEnter/onPointerDown에서 new Image() preload로 네비게이션 전 요청 → ~5.8s→~4.3s로 전환 타임라인 개선
  • [UX] Hard navigation으로 맥락이 끊겨 탐색 효율 저하 → Intercepting/Parallel route 모달과 스크롤 잠금, 모달 top 보정 적용 → 연속 검색/위치 확인 UX 안정화

Basic Implementations

  • URL query로 검색 상태 유지(새로고침/공유 재현)
  • Suspense/Skeleton + 반응형 레이아웃과 모달 스크롤 잠금
  • generateMetadata로 검색/상세 SEO 및 OG 동적 구성
  • ImageKit/next/image 전달 최적화 + 터치 대응(preload onPointerDown)

Education

동국대학교(서울) 식품생명공학과 졸업 2018.02 ~ 2023.07