Selected Work

세븐픽쳐스

온보딩 퍼널 재설계

2025.08 - 2026.03 · Software Engineer

신규 사용자 전환율 10% 미만 → 20% 이상
FlutterDartAmplitude

Problem

신규 가입 후 첫 동행 예약까지의 전환율이 10% 미만으로, 대다수 사용자가 중간에 이탈

Implementation

  • Amplitude 퍼널 분석으로 가입→프로필→인터뷰→예약 각 단계별 이탈률을 정량 확인 → 프로필 작성 단계가 최대 드롭오프 구간
  • 사용자 입장에서 '아직 서비스 가치를 체감하기 전에 정보 입력을 과도하게 요구'하는 구조가 문제
  • 가설 검증: 입력 필드 축소만 적용(미미한 개선) → 퍼널 순서 자체를 재설계하여 '가치 체감 → 정보 입력' 흐름으로 전환
  • 퍼널 순서 재설계: 간이 프로필(최소 정보)만 먼저 받고, 상세 프로필은 서비스 경험 이후로 이동

Results

전환율20% 이상

세븐픽쳐스

화상 인터뷰 시스템

2025.08 - 2026.03 · Software Engineer

14일 런칭
Next.jsServer ActionsTypeScriptPM2

Problem

외부 화상툴(Zoom/Meet) 기반 운영에서 피드백 연동이 번거로워 내재화 필요

Implementation

  • 인터뷰 1회가 끝날 때마다 발생하는 운영 플로우와 예외 케이스를 모두 나열
  • 업무가 '툴 바깥'에서 수동으로 반복되는 구조 → 누락/지연/오류가 발생
  • Next.js Server Actions: 별도 백엔드 서버 없이 빠르게 구현하고 타입 안정성 확보
  • Result(성공/실패) 기반으로 서버 처리 흐름을 명시해 에러 처리를 일원화

Results

런칭 기간14일

세븐픽쳐스

Flutter OOM 해결

2025.08 - 2026.03 · Software Engineer

메모리 1.5GB → 700MB (53%↓)
FlutterDartCrashlyticsDevTools

Problem

저사양 모바일 기기에서 채팅방 진입 시 앱 크래시(OOM)

Implementation

  • Crashlytics로 OOM 확인 → DevTools 메모리 프로파일링 수행
  • 동일 기기/동일 시나리오(채팅방 진입→스크롤)에서 크래시를 반복 재현
  • DevTools Memory Profiler로 힙 스냅샷 비교 → 원본 해상도 이미지가 캐시에서 해제되지 않고 스크롤 시 누적
  • 이미지 다운샘플링: 화면 표시 크기에 맞춰 리사이즈 후 캐싱

Results

메모리700MB
개선율53%↓

세븐픽쳐스

Bloc → CachedQuery 아키텍처 전환

2025.08 - 2026.03 · Software Engineer

보일러플레이트 3계층을 선언형 캐시 구조로 단순화
FlutterDartCachedQuery

Problem

Bloc의 이벤트·상태·리포지토리 3계층 구조가 기능 추가마다 보일러플레이트를 증가시키고, 캐시 전략 부재로 불필요한 API 호출 발생

Implementation

  • 기능 하나 추가 시 최소 4개 파일(Event/State/Bloc/Repository) 필요 → 개발 속도 저하 + 코드 가독성 하락
  • React Query의 캐시 키 기반 선언적 패턴이 같은 문제를 효과적으로 해결한 사례 참고
  • 점진적 전환: Big-bang 리팩토링 대신 기능 단위로 점진 전환
  • staleTime/캐시 무효화 전략 설계: 데이터 특성별 캐시 정책 분리로 불필요한 API 재요청 감소

Results

전환 완료36개

버즈빌

Web SDK 확장 & 호환성/빌드 안정화

2025.01 - 2025.04 · Frontend Intern

네이티브 앱 전용 광고 SDK를 웹으로 확장
Next.js 15TypeScriptWebpackBabel

Problem

네이티브 앱 전용 광고 SDK를 웹 환경으로 확장해 제품 커버리지 확대 필요

Implementation

  • iOS 13 실기기에서 재현 → Safari 개발자 도구로 실패 지점 특정
  • GitHub Issue 추적으로 알려진 이슈 확인, 자체 우회 방안 탐색
  • iOS 13 Safari 호환성: Polyfill + Babel 타겟 정밀 조정으로 구형 Safari 정상 로드 확보
  • Next.js 15 Turbopack 이슈: Webpack 폴백 빌드 구성으로 안정화 + 팀 내 Turbopack 도입 가이드 공유

Results

iOS 13 Safari정상 로드
빌드/배포안정화

CodeSync

2024.10 - 2024.11 · FE & Team Lead

실시간 동시편집 코드리뷰
ReactTypeScriptYjsWebRTCSocket.ioNginx

Problem

리뷰 과정에서 '설명/맥락 공유' 비용을 줄이기 위해, 동시편집+화상+채팅을 한 화면으로 통합 필요

Implementation

  • Yjs CRDT 변경이 React 렌더 사이클과 동기화되지 않아 UI 지연/불일치 발생
  • useEffect 기반 구독 시도 → 렌더 타이밍 불안정 확인 → React 18의 외부 스토어 동기화 API 적용 결정
  • useSyncExternalStore로 Yjs 문서를 외부 스토어로 구독 → tearing 없이 상태 일관성 확보
  • SocketManager 싱글턴으로 전체 실시간 채널의 연결/해제/재연결/에러 흐름을 중앙화

Results

동시편집상태 일관성 확보
NAT 환경연결 안정화

전남대 주차권 자동화 서비스

2023.10 - 2025.01 · FE Developer

오류 90%+↓ / 1년+ 운영
Next.jsTypeScriptNx Monorepo

Problem

신청 오픈/마감 수동 운영, 신청자 몰림으로 데이터 오류·중복 신청·잘못된 입력 예외 처리 어려움

Implementation

  • 신청 오픈 시 트래픽 몰림으로 중복 요청·입력 오류·만료 등 운영 리스크 발생
  • 요청 상태(pending/success/fail) 기반 중복 차단
  • 오류 유형별 UX 표준화
  • Nx 모노레포로 학생/관리자 앱 분리 + 공통 UI 라이브러리 구축

Results

신청 오류90%+↓
결과 발표15분 단축
운영 기간1년+

Econovation Recruit

2022.10 - 2025.01 · FE Lead

SEO 62→95, LCP 3.2s→1.4s (56%↓)
Next.js (App Router)TypeScriptTanStack QueryVite

Problem

CSR 구조로 SEO/초기 로딩 지연 + Google Forms/Trello 중심 운영 파편화

Implementation

  • Lighthouse 측정으로 SEO 62점, LCP 3.2s 확인
  • 페이지별 렌더링 전략 분리 필요성 파악 → 지원서(SSR), 소개/FAQ(SSG), 칸반(CSR+Optimistic) 전략 수립
  • SSR/SSG 전환 + Hydration 불일치 해결
  • TanStack Query staleTime/gcTime 최적화로 불필요한 재요청 감소

Results

SEO95
LCP1.4s
운영 규모학기당 지원자 100명+