박우찬

iOS Engineer · 5년차

핀다에서 대출 비교 서비스를 맡아 개발·운영하고 있습니다. 돌아가는 서비스를 멈추지 않고 레거시 구조를 걷어내는 점진적 전환과, 크래시·메모리·빌드 시간 문제를 측정으로 규명해 해결하는 일을 해왔습니다.

63개 화면 MVI 전환 35개 화면 모듈화 99.9% crash-free users 약 40MB 한도조회 회당 누수 제거 20% 전체 빌드 시간 단축

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

Experience

(주) 핀다

금융상품 팀 · iOS Engineer

2022.08 - Present

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

대출 비교 서비스를 개발·운영하며 주택담보대출·사업자 대출과 국민은행 전용관 등 상품·제휴 채널별 가심사 플로우를 추가·개선했습니다. 차세대 40개 API를 연동하고, 레거시와 분리한 50여 개 신규 화면을 구축하는 iOS 전환을 담당했습니다.

  • 레거시에 구현된 대출 신청 정책을 기준으로 동작을 재현하되, 불필요한 코드는 이관하지 않고 구조는 개선하는 마이그레이션 원칙을 수립해 신규 화면 구축에 일관되게 적용했습니다.
  • 신규 화면을 레거시와 별도 계열로 구축하고 Router 등 플로우 진입 계층에서만 경로를 선택하도록 해, 두 계열이 섞이지 않으면서도 레거시로 복귀할 수 있는 점진적 전환 구조를 설계했습니다.
  • 서버 DTO가 도메인·화면 계층까지 그대로 전파되던 구조를 분리하고, 앱 도메인 모델과의 변환 책임을 Repository 경계에 고정해 화면 계층의 서버 스펙 의존과 중복 매핑을 제거했습니다.

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

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

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

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

운영 안정성 지표를 분석·개선해 최근 6개월 평균 99.9% crash-free users 수준 유지에 기여했습니다.

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

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