박우찬

iOS Engineer · 5년차

대출 비교 플랫폼에서 상품마다 심사·예외 흐름이 다른 신청 플로우를 설계·구현해왔습니다. 차세대 API 전환·MVI·모듈화로 변경에 강한 구조를 만들고, 메모리 누수·크래시 대응과 빌드·네트워크 성능 개선, WebKit 기반 Native-Web 연동까지 제품 흐름 안에서 다뤘습니다.

61개 API 전환 63개 화면 MVI 전환 35개 화면 모듈 구성 99.9% crash-free rate 20% 전체 빌드 시간 단축

[email protected] +82 10-5131-9925

Experience

(주) 핀다

금융상품 팀 · iOS Engineer

2022.08 - Present

차세대 API 전환과 대출 신청 플로우 구현 담당

비교대출, 주택담보대출, 사업자 대출, 국민은행 전용관 등 금융상품별 신청 흐름을 담당했습니다.

  • 비교대출 플로우의 61개 API를 차세대 API 서비스 기준으로 전환하고, 50여개 영향 화면의 응답 구조·에러 처리·화면 분기 로직을 새 기준에 맞춰 구현했습니다. 843개 수동 개발자 테스트 케이스로 긴 신청 과정의 상태 전환을 검증하고 운영 환경에 배포했습니다.
  • 상품별 심사 상태와 예외 분기가 다른 대출 신청 플로우를 구현했습니다. 한도조회 진행 화면에는 폴링 기반 상태 갱신과 실패·에러·백그라운드 복구 흐름을 반영했습니다.
  • 금융상품 전체 플로우의 이벤트 로그 250여개를 전수 조사해 주요 전환 지점의 누락·오류를 개선하고 퍼널 분석 신뢰도를 높였습니다.

대출 신청 화면 모듈화와 MVI 구조 전환

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

  • 120개 이상 모듈로 구성된 Tuist 기반 Multi-module 환경에서 35개 화면 모듈의 경계를 정의했습니다. Interface/Implementation 분리로 컴파일 타임 의존성 방향을 통제했습니다.
  • API 호출, 상태 분기, 화면 전환 로직이 ViewController에 집중되어 있던 63개 대출 신청 화면을 ReactorKit 기반 MVI 구조로 전환했습니다.
  • 반복 가능한 모듈화 작업 체계를 설계했습니다. Claude Skills로 의존성·영향도 분석과 모듈 구성 작업을 자동화해 반복 모듈화 리드타임을 1.4md에서 0.3md로 단축했습니다.

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

Sentry 기반 운영 지표와 사용자 안정성, 개발 생산성에 직접 닿는 지표를 분석하고 개선했습니다.

  • 런타임 누수 탐지 체계로 확인된 메모리 누수 15건을 해결해 최근 6개월 평균 crash-free rate 99.9% 수준 유지에 기여했습니다. 그중 원인이 외부 SDK였던 retain cycle은 벤더사에 원인·수정안을 문서화해 라이브러리 차원의 개선을 이끌어냈고, 화면 진입·이탈 회당 약 45MB 누수를 제거했습니다(Instruments 세대 분석 검증).
  • 앱 내 여러 Sentry 캡처 경로(AppsFlyer·웹뷰)의 네트워크 실패 오탐을 직접 설계한 필터 기준으로 통일했습니다. 최근 90일 실이벤트 데이터로 오탐 코드셋을 확정하고, 서버 다운·SSL 등 회색지대는 실제 문제 신호가 묻히지 않도록 블랭킷 필터 대신 별도 조사로 분리해 Sentry error 스트림의 노이즈를 줄였습니다.
  • Swift 컴파일 로그에서 타입 검사 병목을 찾아 코드 구조를 개선해 전체 빌드 시간을 20% 단축했습니다.
  • 중복 생성되던 URLSession 인스턴스를 단일 공유 인스턴스로 통합해 동일 도메인 연속 요청의 커넥션 오버헤드를 제거하고, 앱 실행 직후 57개 Task 기준 요청 시간을 평균 33%·총 36% 단축했습니다.

WebKit 기반 Native-Web 연동 경험

FE팀과 협업해 하이브리드 앱 화면의 Native-Web 메시지 처리, 웹 컨텐츠 로딩, 네이티브 제스처 처리 경계를 다뤘습니다.

  • FE팀과 협업해 공통 handler와 화면 전용 handler를 정의·문서화하고 Native-Web 메시지의 화면별 노출 범위를 제한했습니다. 이 과정에서 미사용 JavaScript handler 25개를 식별·제거해 불필요한 Native 기능 호출 경로를 줄였습니다.
  • HTML 오버레이가 표시된 WebView에서 WebKit 내부 제스처 인식기와 ViewController 제스처 인식기 사이의 터치 시퀀스 경합을 해결해, 오버레이 상태에서도 의도한 제스처만 동작하도록 처리 우선순위를 조정했습니다.
  • WKUIDelegate의 JS alert·confirm 패널 completion handler가 호출되지 않아 화면 전환·팝업 해제 시 발생하던 WebKit fatal 크래시를 Sentry로 원인 분석하고, completion handler를 정확히 한 번만 호출하도록 보장하는 가드를 적용해 해결했습니다(관련 크래시로 특정 기간 860여 명 영향).

오누이

Product 팀 · iOS Engineer

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

2021.12 - 2022.07