박우찬

iOS Engineer · 5년차

금융상품별 심사·예외 분기가 다른 대출 비교 플로우를 설계·구현하고, API·화면 구조 전환과 WebKit 연동을 담당해왔습니다. 크래시·메모리·빌드 시간처럼 운영 안정성과 생산성에 직접 닿는 지표는 Sentry·Instruments 등 측정을 바탕으로 원인을 규명해 개선합니다.

61개 API 무중단 점진 전환 63개 화면 MVI·35개 모듈 전환 95% Sentry 최다 fatal 오탐 규명 99.9% crash-free users 약 40MB 한도조회 회당 누수 제거 20% 전체 빌드 시간 단축

woozzaang@gmail.com +82 10-5131-9925

Experience

(주) 핀다

금융상품 팀 · iOS Engineer

2022.08 - Present

차세대 API 전환과 대출 비교 서비스 개발·운영

대출 비교 서비스의 개발·운영을 담당하며, 주택담보대출·사업자 대출과 국민은행 전용관 등 상품·제휴 채널별 가심사 플로우를 추가·개선했습니다.

  • 매출 핵심 대출 비교 플로우에서 사용하던 61개 API를 차세대 API로 이관하고, 레거시와 분리된 신규 화면 계열의 응답 구조·에러 처리·화면 분기 로직을 새 기준에 맞춰 구현했습니다. 서버 AB 그룹 비율로 신구 사용자 비중을 조절해 운영 환경에 점진 배포하고 앱 배포 없이 되돌릴 수 있게 했으며, 분기는 플로우 진입 계층에만 두어 하나의 가심사 플로우 안에서 두 계열이 섞이지 않도록 설계했습니다.
  • 상품·심사 상태·예외 응답·앱 생명주기 조건을 축으로 843개 수동 개발자 테스트 케이스를 설계·수행해 여러 화면에 걸친 가심사 플로우의 상태 전환을 검증했습니다. 한도조회 진행 화면에는 폴링 기반 상태 갱신과 실패·에러 처리를 구현하고, 백그라운드 복귀 시 로컬 상태를 신뢰하지 않고 서버 상태를 다시 조회해 복구하도록 했습니다.

대출 비교 서비스의 화면 모듈화와 MVI 구조 전환

상태 관리와 화면 전환 로직을 계층화하고, 기능 변경의 영향 범위를 화면 단위로 줄였습니다.

  • 120개 이상 모듈로 구성된 Tuist 기반 Multi-module 환경에서 담당 범위인 35개 화면의 모듈화를 진행했습니다. Interface/Implementation 분리로 컴파일 타임 의존성 방향을 통제했습니다.
  • 상태 관리와 이벤트 처리 방식이 화면마다 달랐던 63개 MVC·MVVM 기반 화면을 ReactorKit 기반 MVI 구조로 전환했습니다.
  • 반복 가능한 모듈화 작업 체계를 설계했습니다. Claude Skills로 의존성·영향도 분석과 모듈 구성 작업을 자동화해 반복 모듈화 리드타임을 1.4md에서 0.3md로 단축했습니다.

운영 안정성, 성능·생산성 개선

운영 안정성, 성능과 개발 생산성에 직접 닿는 지표를 분석하고 개선했습니다.

  • 런타임 누수 탐지 체계로 확인된 메모리 누수 15건을 해결하고, 최근 6개월 평균 99.9% crash-free users 수준 유지에 기여했습니다.
  • Sentry 최다 fatal 이슈였던 WatchdogTermination의 90일 이벤트 388건을 전수 분류해 95%가 오탐(QA 자동화 강제종료·인앱 exit(0))임을 규명했습니다. 자동화 세션 트래킹 제외와 graceful exit 도입으로 오탐원을 원천 차단해, 지표를 실사용자 OOM 베이스라인(월 4~5건) 기준으로 회귀 감지 가능한 상태로 정상화했습니다.
  • 외부 SDK의 retain cycle 원인을 분석해 벤더사에 원인과 수정안을 문서로 전달하고 라이브러리 차원의 개선을 이끌어냈습니다. 수정된 SDK를 적용해 한도조회 1회마다 기준 메모리 사용량(64MB)의 약 60%에 해당하는 40MB가 누적되던 메모리 누수를 제거했고, Instruments로 동일 시나리오의 세대 분석을 반복해 검증했습니다.
  • Swift 컴파일 로그에서 타입 검사 병목을 찾아 코드 구조를 개선해 전체 빌드 시간을 20% 단축했습니다.
  • 중복 생성되던 URLSession 인스턴스를 단일 공유 인스턴스로 통합해 동일 도메인 연속 요청의 커넥션 오버헤드를 제거하고, 앱 실행 직후 57개 Task 기준 요청 시간을 평균 33%·총 36% 단축했습니다.

WebKit 기반 Native-Web 연동 경험

FE팀과 협업해 하이브리드 앱의 Native-Web 메시지 처리 기준과 화면별 Native 기능 노출 범위를 정리했습니다.

  • 공통·화면 전용 JavaScript handler의 노출 경계를 정의·문서화하고, 미사용 handler 25개를 제거해 불필요한 Native 기능 호출 경로를 줄였습니다.
  • Sentry에서 WKUIDelegate completionHandler 호출 누락으로 발생한 WebKit 크래시를 분석하고, JavaScript alert/confirm 처리에 call-once guard를 적용해 완료 콜백이 정확히 한 번 호출되도록 수정했습니다.

오누이

Product 팀 · iOS Engineer

비대면 과외 iPad 앱 설탭의 서비스 개발 및 운영 대응을 담당했습니다.

2021.12 - 2022.07