박우찬
iOS Engineer
[email protected] +82 10-5131-9925
대출 비교 서비스에서 복잡한 금융상품 플로우, Native-Web 연동, API 전환을 설계·구현하며 모듈화·성능·안정성 개선으로 변경에 강한 iOS 앱 구조를 만들어왔습니다.
Experience
(주) 핀다
2022.08 - Present
대출 비교 플랫폼 · 금융상품 팀
금융상품 핵심 플로우 개발
- 비교대출 플로우에서 사용하던 61개 API를 차세대 API 서비스 기준으로 이관하며, 50여개 영향 화면의 신규 응답 구조, 에러 처리 로직, 테스트 케이스를 설계하고 구현했습니다.
- 주택담보대출, 사업자 대출, 국민은행 전용관 등 상품별 심사 상태와 예외 분기가 다른 핵심 대출 비교 플로우를 설계·구현하고, 긴 신청 과정에서 반복되는 심사 상태 변경과 화면 분기 흐름을 안정적으로 처리했습니다.
- 대출 한도조회 진행 화면에서 폴링 기반 상태 갱신과 실패·에러·백그라운드 전환 후 복구 흐름을 구현해 심사 진행 중 상태 불일치와 사용자 이탈 리스크를 줄였습니다.
- 금융상품 전체 플로우의 이벤트 로그 250여개를 전수 조사하여 주요 전환 지점의 누락·오류 로그를 개선하고, 대출 신청 퍼널 분석의 신뢰도를 높였습니다.
WebKit 기반 하이브리드 안정성 개선
- FE팀과 협업해 미사용 JavaScript handler 25개를 식별·제거하고, 공통 handler와 화면 전용 handler를 정의해 Native-Web 메시지의 화면별 노출 범위를 제한했습니다.
- HTML 오버레이가 표시된 WebView에서 WebKit 내부 제스처 인식기와 WebView를 담은 ViewController의 제스처 인식기가 터치 시퀀스를 경쟁 처리하던 문제를 분석하고, WKWebView loading 상태와 제스처 인식 조건을 조정해 화면 진행 차단을 해결했습니다.
보안 취약점 대응
- 모의해킹 결과에 따른 iOS 앱 보안 취약점 대응 과정에서 URLSession 캐시 정책과 Cache-Control no-store를 적용하고, cache.db와 cache.db-wal 직접 조회로 민감 정보가 로컬 캐시에 남지 않음을 검증했습니다.
아키텍처 설계 및 모듈화
- 120개 이상 모듈로 구성된 Tuist 기반 Multi-module 환경에서 35개 화면 모듈의 경계 정의와 Interface/Implementation 분리를 수행해 컴파일 타임 의존성 방향을 통제하고, 기능 변경의 영향 범위를 화면 단위로 좁혔습니다.
- API 호출, 상태 분기, 화면 전환 로직이 ViewController에 집중되어 있던 63개 대출 신청 화면을 ReactorKit 기반 MVI 구조로 전환하고, 비즈니스 로직을 계층 분리해 변경 영향 범위와 테스트 대상을 명확히 했습니다.
- 핀다 프로젝트 화면 모듈화 과정에서 모듈 의존성·영향도 분석과 모듈 구성 작업을 자동화해 반복 작업 리드타임을 1.4md에서 0.3md로 단축했습니다.
성능 및 안정성 개선
- Swift 컴파일 로그 분석으로 타입 검사 병목을 식별하고 코드 구조를 개선해 빌드 시간을 20% 단축했습니다.
- HTTP 세션 간 비효율적인 통신 구조를 개선해 네트워크 지연 시간을 최대 36% 감소시켰습니다.
- Sentry에서 WKUIDelegate completionHandler 누락으로 발생한 WebKit 크래시를 분석·수정하고, 메모리 누수 15건 해결과 didReceiveMemoryWarning 로깅 추가 등 주요 안정성 이슈 대응을 통해 iOS 앱 non-crash rate 99.9% 수준 유지에 기여했습니다.