포트폴리오

인범진

Mobile Product Engineer · React Native

주어진 개발에 그치지 않고 기획부터 디자인 · 개발 · 운영까지 직접 맡아 제품을 만들고, 비즈니스 지표로 결과를 확인합니다. 부드러운 인터랙션과 애니메이션 같은 디테일이 사용자 경험을 만든다고 믿어 화면의 움직임 하나까지 집요하게 다듬습니다. React Native를 중심으로, 필요하면 AI 자동화와 팀 도구까지 직접 만들어 문제를 해결합니다.

React Native · TypeScript · iOS/Android · Product Engineering · AI-assisted Development

경력

  1. RoutineryNow

    2025.08 – Present

    React Native Engineer · 전 세계 200여 개국에서 누적 500만 건 이상 다운로드된 루틴 관리 앱

    iOS 구독 전환율 4.7% → 7.6%앱 시작 시간 ↓40%크래시율 0.1% 미만월평균 MAU 13만

    아키텍처 · 성능

    • –RN 신규 아키텍처(New Architecture) 전환 · 최신 버전 업그레이드 주도, 레거시 라이브러리를 자체 컴포넌트로 내재화
    • –MobX → Zustand와 RN 0.73 → 0.80 전환을 가로막던 순환 의존성 약 140개를 madge로 추적하고 모듈 간 직접 참조를 분리해 0개로 정리
    • –핵심 타이머 시스템을 상태 · 렌더링 분리 구조로 전면 재설계해 확장성 확보
    • –헤비 유저 데이터로 시작 지연을 재현하고 메인 스레드의 알림 취소 · 중복 검사 병목을 제거해 앱 시작 시간 중앙값 2.0초 → 1.2초로 40% 단축
    • –타이머 애니메이션을 클래스 컴포넌트에서 훅 · Reanimated 기반으로 전환하고 누적되던 타이머 · 애니메이션 참조를 정리해, Xcode Instruments 전후 비교에서 메모리 · 배터리 사용량 50% 이상 감소
    • –React DevTools Profiler로 반복 리렌더링 구간을 찾아 넓게 구독하던 Store를 Zustand selector 단위 구독으로 바꾸고, 비활성 화면은 react-freeze로 멈춰 불필요한 리렌더링 제거 (1분 타이머 기준 약 5,700회 → 100회 안팎)
    • –타이머 등 핵심 로직에 유닛 테스트를 작성해 리팩토링 시 회귀 방지

    프로덕트 성장 · 운영

    • –온보딩 전면 개편을 기획부터 주도하고 추천 루틴 · 프로필 · 관심사 · 알림 설정 단계를 가설별 A/B 테스트로 반복 개선해 iOS 구독 전환율(A2T) 4.7% → 7.6% 개선
    • –디자인 시스템 도입 주도, 공통 컴포넌트화로 UI 일관성 · 유지보수성 향상
    • –Sentry · Crashlytics 모니터링으로 크래시율 0.1% 미만 유지

    인프라 · OS 확장

    • –반복 푸시 예약 방식의 iOS 알람을 AlarmKit 기반 네이티브 알람으로 전환하고, 일정 변경이 없을 때 재예약을 생략해 알림 경로의 성능 병목 해소
    • –평균 31MB 전체 번들을 매번 내려받던 OTA의 사용자·비용 부담을 해결하기 위해 번들을 절반 수준으로 축소하고 변경 파일 diff 다운로드를 6MB까지 절감
    • –CloudFront 캐시 정책 개선 후 Cloudflare 기반 전달 구조로 전환, 번들 축소와 함께 월 50~60만 원이던 OTA · CDN 비용을 거의 0으로 절감
    • –Apple Watch 앱의 상태 동기화 · 햅틱 개선과 iOS 잠금 화면 위젯의 루틴 실행 · 기록 조회 기능 개발

    AI 에이전트 · 자동화

    • –2인 개발 · 1인 QA 환경에서 반복되던 VoC 티켓 작성 · 우선순위 판단 · 처리 · 검증 흐름을 Hermes 에이전트로 자동화
    • –GitHub Issues 기반 사내 업무 관리 도구 '루니어'를 직접 개발해 전사 도입, 외부 서비스 Linear 구독 종료
    • –GitHub · Linear · Amplitude 등 8개 도구 연동, 단일 정본(SSOT) 저장소로 정책 · 권한 일원화
    • –코드 리뷰 AI 에이전트를 만들어 GitHub PR마다 자동 리뷰가 달리도록 적용
    • –팀원이 AI를 실무에 활용할 수 있도록 개발 환경 설정, Git 기본 개념, AI 도구 사용법을 안내하며 온보딩 지원
    • –스토어 리뷰를 Slack · 시트로 자동 수집 · 정리해 CS 팀 반복 업무 제거

    React Native · TypeScript · Zustand · Firebase · Amplitude · CodePush · AI Agents

  2. Kitworks

    2024.07 – 2025.08

    Frontend Engineer · 스터디모아 · 현대자동차 캐스퍼 · 오늘의 행복

    스터디모아 개발 리드RN 0.64 → 0.74앱 · 관리자 웹 개발OTA · 모니터링

    개발 리드 · 아키텍처

    • –스터디카페 검색 · 좌석 결제 · 모임 커뮤니티를 제공하는 스터디모아 앱 개발을 리드하고 관리자 페이지까지 개발
    • –React Native 0.64 → 0.74 업그레이드와 모바일 아키텍처 재설계
    • –WebView로 구현된 모임 기능을 네이티브 컴포넌트로 전환
    • –JavaScript → TypeScript, 클래스 컴포넌트 → 훅 전환을 단계적으로 적용
    • –주니어 개발자의 코드 리뷰를 맡아 진행

    인터랙션 · 결제

    • –좌석 선택 Zoom View와 Reanimated · Gesture Handler 기반 인터랙션 개발
    • –토스 결제를 포함한 좌석 예약 · 결제 흐름 개발
    • –외부 광고 팝업 · 피드 · 배너와 광고 전환 추적을 구현하고, 사내 운영팀과 광고주가 노출 · 클릭 · 전환 지표를 확인하는 광고 성과 대시보드 개발
    • –디자인 시스템이 없던 환경에서 재사용 가능한 공통 컴포넌트 구조 정립

    배포 · 운영

    • –소규모 팀에서 스터디모아 기능 기획부터 개발 · 배포까지 전 과정을 주도
    • –릴리스 프로세스를 맡아 OTA 배포를 자동화
    • –Crashlytics · Sentry를 도입해 출시 후 오류를 추적 · 수정하는 운영 체계 구축

    멀티 프로젝트

    • –현대자동차 캐스퍼 임직원 구매 웹(Vue2)의 구매 · 결제 · 관리자 기능 개발
    • –서울대 행복연구센터와 협업한 '오늘의 행복' 앱을 처음부터 새로 개발해 리뉴얼
    • –리뉴얼 과정에서 RN 0.64 → 0.76 업그레이드와 Recoil → Redux 이전, JSON 데이터 기반 PDF 생성 · 다운로드 기능 구현

    React Native · TypeScript · Reanimated · Redux · Next.js · Vue2 · Firebase

  3. W3Company

    2023.06 – 2024.04

    Frontend Engineer · Moji · Books AI · MoonDoor · 4Hire

    초기 1인 개발자 → 팀 구성DAU 약 500% 증가인앱 구독 출시 · 수익 모델 구축평점 2점대 → 4.0+API 호출 −30%

    팀 · 리드

    • –글로벌 언어 교환 앱 Moji에 초기 1인 개발자로 합류해 React Native 앱과 Next.js 웹 · Node.js 서버 기능을 담당
    • –이후 개발팀 구성과 개발자 채용을 주도
    • –입사 후 약 3개월 만에 DAU 약 500% 증가에 기여

    성능 · 안정화

    • –API 호출을 약 30% 줄이고 Latency를 개선해 채팅 딜레이 단축과 서버 비용 절감
    • –불안정하던 상태 관리 구조를 Redux로 재구성하고, 낙관적 업데이트와 리렌더링 최소화로 채팅 반응 속도 개선
    • –성능 · 안정화 작업으로 스토어 평점 2점대 → 4.0+ 개선에 기여
    • –Crashlytics · Sentry로 크래시율 0.1% 이하 유지
    • –React Native 0.70 → 0.73 업그레이드하며 최신 RN 버전 유지

    수익화 · 그로스

    • –구독 상품이 없고 광고 수익이 하루 약 $1이던 서비스에 인앱 구독을 출시하고 AdMob 운영 구조를 개선, 재직 기간 광고 · 구독 합산 월 수익 $1,000 규모로 성장
    • –K-pop 팬 앱 → Moji 유입 규모를 확인하기 위해 Branch.io 딥링크 · 설치 어트리뷰션을 연동하고, 설치 · 앱 진입 수치를 추적해 유입 채널 성과 측정

    제품 · 글로벌

    • –실시간 채팅 · 보이스챗 · 번역 · OpenAI 챗봇, 본인 인증 · 랜덤 채팅 등 언어 교환 핵심 기능 개발
    • –Mapbox 기반 위치 변경 감지와 키워드 경고로 스캠 사용자 대응 기능 개발
    • –10개 언어 리소스를 운영하는 글로벌 서비스 다국어 대응
    • –OpenAI 책 요약 앱 Books AI를 Flutter에서 React Native로 재구축해 출시하고, AI 점성술 앱 MoonDoor 초기 앱 · 인앱 결제 개발
    • –4Hire 채용 매칭 반응형 웹 개발

    React Native · TypeScript · Redux Toolkit · Next.js · Nest.js · Firebase · AdMob

  4. Medgo

    2022.02 – 2023.05

    React Native & Node.js Developer · 바로필 · 비대면 진료 · 약 배달 서비스

    Expo → RN CLI 전환실시간 배달 위치 추적진료 · 복약 기능 개발

    아키텍처

    • –Expo의 네이티브 기능 · 빌드 제어 한계로 앱을 React Native CLI로 마이그레이션
    • –Redux를 도입하고 앱 구조를 리팩토링

    핵심 기능

    • –WebSocket · 지도 API로 실시간 배달 기사 위치 추적 구현
    • –진료 예약부터 복약 알람 · 복약 지도, 맞춤형 영양제 추천까지 주요 화면과 기능 개발
    • –Apple · Kakao 소셜 로그인과 Deep Linking 구현
    • –Appsflyer 마케팅 연동

    백엔드

    • –Express · Node.js로 진료 예약 · 약 배달 신청 · 복약 관리 · 실시간 배달 현황 기능의 백엔드 개발 병행

    React Native · TypeScript · Node.js · Firebase · Redux

일하는 방식

  1. 011인 개발자로 합류해 개발팀 구성과 채용을 주도했고, 지금은 기획 · 디자인 · 개발 · 배포 전 과정을 직접 맡습니다. 처음 해 보는 일도 '못 한다'보다 '어떻게 하면 된다'를 먼저 찾습니다
  2. 02New Architecture 전환부터 OTA 배포 체계 구축, 장애 대응까지 출시 이후의 운영을 책임집니다
  3. 03Reanimated · Gesture Handler · Skia를 통해 부드러운 인터랙션을 구현하고, 사용자가 체감하는 디테일을 끝까지 다듬습니다
  4. 04빠르게 발전하는 AI를 일하는 방식에 바로 녹여 AI Native한 팀을 만들고, 불필요한 반복 업무는 자동화합니다. VoC 처리 멀티 에이전트부터 사내 업무 관리 도구 · 출퇴근 · 연차 관리 앱까지 필요한 도구는 직접 만들어 사용합니다

주요 성과

성능 병목 해결 · Routinery

헤비 유저의 앱 시작 지연 원인을 찾아 구조적으로 해결

앱 시작 시간 중앙값 40% 단축

문제 루틴이 많은 사용자의 앱 시작이 느렸지만 기존 계측에는 병목이 드러나지 않아 체감 제보와 지표가 어긋났습니다.

접근 헤비 유저 데이터를 실제 기기로 옮겨 재현하고 시작 구간을 다시 계측했습니다. 메인 스레드에서 알림 개수에 비례해 실행되던 취소 · 중복 검사 로직을 찾아 수정했습니다.

임팩트 앱 시작 시간 중앙값을 약 2.0초에서 1.2초로 단축하고, 루틴이 많은 사용자와 일반 사용자 사이의 시작 속도 격차를 줄였습니다.

메모리 · 배터리 최적화 · Routinery

장시간 타이머 사용 시 누적되던 메모리와 배터리 소모를 절반 이하로

메모리 · 배터리 사용량 50% 이상 감소

문제 타이머를 오래 켜 둘수록 메모리가 쌓이고 배터리 소모가 커졌습니다. 타이머 상태 · 화면 · 설정 로직이 클래스 컴포넌트 하나에 얽혀 있어 원인을 떼어 보기 어려웠습니다.

접근 타이머 스토어에서 매초 바뀌는 값을 분리해 필요한 컴포넌트만 구독하게 하고, 정리되지 않던 interval · timeout과 애니메이션 참조를 해제했습니다. 클래스 컴포넌트를 훅 기반으로 전환해 상태 · 화면 · 설정 로직을 나누고, 타이머 애니메이션은 Reanimated로 옮겨 UI 스레드에서 실행되게 했습니다.

임팩트 1분 타이머 기준 리렌더링을 약 5,700회에서 100회 안팎으로 줄였고, Xcode Instruments 전후 비교에서 메모리 · 배터리 사용량을 50% 이상 낮춰 오래 켜 두어도 가볍게 동작하는 타이머를 만들었습니다.

온보딩 개편 · 애니메이션 · Routinery

이탈을 막는 온보딩 플로우와 애니메이션을 A/B 테스트로 반복 개선해 구독 전환율 상승

iOS 구독 전환율 4.7% → 7.6%

문제 첫 경험인 온보딩에서 사용자가 중간에 이탈하기 쉬웠고, 끊기는 전환 애니메이션이 체감 품질을 떨어뜨리고 있었습니다.

접근 사용자가 이탈하지 않고 끝까지 진행하도록 추천 루틴 · 프로필 · 관심사 · 알림 설정 흐름을 재설계하고, 가설별 A/B 테스트로 반복 개선했습니다. 상태 변경과 애니메이션 실행을 분리해 끊김을 없애고 전환 애니메이션을 고도화했습니다.

임팩트 A/B 테스트에서 iOS 구독 전환율(A2T)을 4.7%에서 7.6%로 끌어올렸습니다.

OTA 배포 · 비용 절감 · Routinery

OTA 번들 구조를 바꿔 다운로드 용량과 CDN 비용을 함께 절감

OTA 다운로드 용량 31MB → 6MB

문제 OTA 업데이트마다 평균 31MB 전체 번들을 내려받아 사용자 다운로드 부담이 컸고, 월 50~60만 원의 CDN 비용이 발생했습니다.

접근 S3 · CloudFront 기반 자체 CodePush에 환경별 rollout · rollback과 Sentry sourcemap 업로드를 연결했습니다. 번들을 절반 수준으로 줄이고 변경된 파일만 내려받는 diff 다운로드를 적용한 뒤, CloudFront 캐시 정책 개선과 Cloudflare 전환을 이어 갔습니다.

임팩트 diff 다운로드를 6MB까지 낮추고, 월 50~60만 원이던 OTA · CDN 비용을 거의 0으로 줄였습니다.

아키텍처 · 의존성 정리 · Routinery

상태 관리 전환과 RN 업그레이드를 막던 순환 의존성을 모두 제거

순환 의존성 약 140개 → 0개

문제 MobX → Zustand 전환과 RN 0.73 → 0.80 업그레이드 과정에서 약 140개의 순환 의존성이 전환을 가로막고 있었습니다.

접근 madge로 모듈 간 순환 경로를 추적하고, Store · Action · Utility · Service 사이의 직접 참조를 분리했습니다.

임팩트 순환 의존성을 0개로 정리해 상태 관리 전환과 RN 0.80 업그레이드를 마무리했고, 이후 New Architecture(Fabric) 기반 RN 0.84까지 올릴 토대를 만들었습니다.

AI 에이전트 · 자동화 · Routinery

VoC 처리 흐름을 AI 에이전트로 자동화하고 사내 도구를 직접 개발

역할별 AI 에이전트 6개

문제 2인 개발 · 1인 QA 환경에서 VoC 이슈마다 티켓 작성 · 우선순위 판단 · 수정 · 검증을 사람이 반복해야 했습니다.

접근 역할별 에이전트 6개가 티켓 작성부터 검증까지 나눠 맡는 파이프라인을 만들고, GitHub Issues 기반 사내 업무 관리 도구 '루니어'와 연동했습니다. 이슈 변경과 코드 병합 · 배포에는 사람 승인 단계를 유지했습니다.

임팩트 반복되던 VoC 처리 업무를 자동화했고, 루니어를 전사에 도입해 외부 서비스 Linear 구독을 종료했습니다.

채팅 성능 · 상태 관리 · W3Company

상태 관리 구조를 바꿔 Moji 채팅의 호출량과 지연을 줄임

API 호출량 약 30% 감소

문제 초기 1인 개발자로 웹 · 앱 · 서버를 담당했습니다. 상태 관리 구조가 불안정해 실시간 채팅 지연과 앱 안정성 문제가 이어졌습니다.

접근 상태 관리를 Redux 기반으로 재구성하고, 낙관적 업데이트로 서버 응답을 기다리지 않고 화면에 먼저 반영했습니다. 불필요한 리렌더링을 줄이고 호출 구조를 정리해 API 호출을 약 30% 줄였습니다.

임팩트 채팅 딜레이를 단축했고, 호출량이 줄면서 서버 호출 비용도 함께 낮췄습니다. 성능 · 안정화 작업으로 스토어 평점이 2점대에서 4.0 이상으로 오르는 데 기여했습니다.

수익화 · 그로스 · W3Company

구독 상품이 없던 서비스에 수익 모델을 만들어 월 $1,000 규모로 성장

광고 · 구독 합산 월 수익 $1,000

문제 입사 당시 구독 상품이 없었고, 광고 수익은 하루 약 $1 수준이었습니다.

접근 인앱 구독 상품을 직접 기획 · 개발해 출시하고, AdMob 미디에이션과 광고 운영 구조를 개선했습니다. Branch.io로 유입 경로별 설치 · 앱 진입 수치를 추적했습니다.

임팩트 재직 기간 광고 · 구독 합산 월 수익을 $1,000 규모로 키웠습니다.

사이드 프로젝트

Payto

AI 가계부 · 개인 프로젝트

2026.04.04 출시

  • –초대 코드로 멤버를 연결하고 지출 내역을 함께 관리하는 공유 가계부를 App Store에 출시하고 ASO 진행
  • –AI 채팅에서 소비 내역을 조회하고 자연어로 지출을 기록하도록 Gemini Function Calling 파이프라인을 구현
  • –컨텍스트 캐싱을 설계하고 잘못된 도구 호출을 막는 검증 로직을 구현
  • –백그라운드에서 지출을 분석해 AI 인사이트를 제공하고, 분석 결과를 캐싱해 응답 속도와 비용을 최적화

React Native · Gemini · Function Calling

App StoreWebsite

Atto

티켓팅 서버시간 타이머 · 개인 프로젝트

2026.09.16 출시

  • –예매 서버의 HTTP Date 헤더(초 단위)를 여러 번 샘플링해 서버 시계를 밀리초 단위로 추정하고, 추정 오차 범위까지 보여주는 드롭 타이머를 Swift로 개발해 App Store에 출시
  • –기기 시간 변경 · 슬립에 흔들리지 않는 단조 시계 기준 동기화, 캐시 응답 · 이상치 샘플 제거와 드리프트 보정
  • –PiP 카운트다운과 단축어(App Intents) 연동 구현

Swift · SwiftUI · PiP

App Store

Pickee

사진 정리 · AI 앨범 · 식단·쿠폰 관리 앱 · 개인 프로젝트

2026.09.27 출시

  • –사진을 스와이프해 보관·삭제 후보로 분류하고 최종 확인 후 삭제하는 iOS 앱을 1인 기획·디자인·개발해 App Store에 출시
  • –기기 내 Vision 이미지·텍스트 분석으로 AI 앨범, 식단 사진, 기프티콘·쿠폰을 정리
  • –MapKit으로 촬영 위치별 사진을 탐색하고 App Intents로 일괄 정리 기능을 제공

SwiftUI · PhotoKit · Vision

App Store

Triplog

여행 계획 기록 앱 · 개인 프로젝트

2025.02.12 출시

  • –여행 가계부 · 체크리스트 · 날씨 · 일정을 통합한 여행 기록 앱, App Store 단독 출시

React Native · App Store

App Store

기술 스택

Core
React Native · TypeScript
Mobile
New Architecture · Native Modules · Reanimated · Gesture Handler · Skia
State
Zustand · Redux Toolkit · TanStack Query
Backend
Next.js · Node.js · Nest.js
AI
Gemini · OpenAI API · AI 에이전트 워크플로
Delivery
Sentry · Crashlytics · Amplitude · CodePush · GitHub Actions · Jest

학력 · 자격

충남대학교

전파정보통신공학과 학사 · 2016.03 – 2022.02

TOEIC 805

2021.03