(주)뱅크샐러드
2019.03.25 ~ 2022.02.09
iOS Engineer 정규직
사용 기술: RxSwift, RxCocoa, Swift, Cocoapod, MVVM, Snapkit, Jenkins, Firebase
주요 프로젝트 및 성과
1. 마이데이터 전환 프로젝트 2021.04 ~ 2022.01
업무 배경
2021년 회사에서 마이데이터 사업자 자격을 취득하였고, 2022년 1월부터 스크래핑 데이터 수집이 법적으로 금지될 예정에 따라 기존 스크래핑 기반 서비스를 마이데이터 API 기반 서비스로 변경해야 했습니다. 이 과정에서 설계 및 iOS개발, Frontend 파트 리딩을 맡았습니다.
업무 내용
스크래핑 기반의 데이터 업데이트 프로세스를 마이데이터 기반으로 앱 서비스 아키텍처를 변경했습니다. 데이터 업데이트의 시작/종료 글로벌 이벤트, 업데이트 진행률 계산, 더 이상 가져올 수 없는 데이터에 대한 기능 Fade-Out 등 앱 내 변경이 필요한 부분들을 찾고, 의사결정을 통해 가장 합리적인 대응방안을 만들고 적용하는 업무를 진행했습니다.
마이데이터 프로젝트에서 타 네이티브 엔지니어(iOS 엔지니어 3명, Android 엔지니어 2명)의 업무 우선순위 조정 및 업무분배, 기술 스펙 논의를 도우며 기간 내 안정적인 결과물을 만들 수 있도록 리딩했습니다.
성과
2021년 10월 28일 핀테크 기업 중 뱅크샐러드가 마이데이터 기능 출시를 위한 단계인 “마이데이터 적합성 심사”에 가장 빠르게 통과했습니다.
2021년 12월 1일, FeatureFlag를 통해 점진적으로 마이데이터 서비스를 배포했고 2022년 1월 뱅크샐러드 모든 유저에게 마이데이터 서비스를 안정적으로 출시할 수 있었습니다.
2. 뱅크샐러드 2.0 프로젝트 2020.06 ~ 2020.08
업무 배경
회사의 성장과 함께 구성원이 증가하면서 스쿼드 체제로 조직개편이 진행되었고, 각 스쿼드에서 담당 도메인별 화면을 주도적으로 개발할 수 있도록 앱을 전면 리뉴얼하는 프로젝트입니다.
업무 내용
효율적인 업무를 위해 mock json generator 스크립트를 개발하여 서버 API를 활용하여 mock json 을 만들어 개발에 활용했습니다. mock json 사용으로 다양한 UI 케이스를 모두 점검할 수 있었고, 서버의 개발 상황으로 인한 병목을 제거할 수 있었습니다.
BPL(Banksalad Product Language)이라는 디자인 시스템을 만들어 공통 UI를 통해 뱅크샐러드 2.0개편에 사용했습니다. 뱅크샐러드 전반적인 UI 개편이었지만 공통 컴포넌트를 설계하고 사용하므로써 다양한 화면에 재활용하여 전반적인 개발 생산성 향상을 만들어냈습니다.
실험플랫폼을 통한 배포 전략을 만들고 제안하여 앱 전반을 재개발하는 큰 규모의 프로젝트를 안정적으로 배포하는데 기여했습니다. 이 배포 전략은 사내 기술 블로그에 포스팅했으며 이후 뱅크샐러드에서 기능 개발 과정에서 계속 사용되고 있습니다.
성과
3. 오픈뱅킹(카카오뱅크 연결) 프로젝트 2019.11 ~ 2019.12
업무 배경
금융사 웹 페이지 스크래핑을 통해 데이터를 가져오는 특성상 모바일 서비스만 제공하는 카카오뱅크 데이터를 얻어오지 못했고, 매일 40여건의 카카오뱅크 연결 문의 VoC가 들어오는 우선순위 높은 문제였습니다.
2019년 12월 18일 핀테크에 오픈뱅킹 플랫폼이 오픈되면서 카카오뱅크의 데이터를 가져올 수 있는 환경이 되었고 뱅크샐러드 내에 오픈뱅킹 서비스를 활용해 카카오뱅크를 연결하는 프로젝트를 진행했습니다.
업무 내용
Product Spec(기획서)리뷰를 통해 오픈뱅킹 연결 Flow 구현에 필요한 IDL(Interface Description Language) 명세를 작성하여 서버 엔지니어와 클라이언트 엔지니어가 개발에만 집중할 수 있는 환경을 만들었습니다.
카카오뱅크 연결 과정 중 EDD/CDD 과정 (이메일, 주소, 영문이름 입력) Flow 를 개발했습니다.
성과
CS문의 중 가장 많은 비율을 차지했던 “카카오뱅크는 언제 연동되나요?” 해결.
4. 기타 성과
•
오픈소스 기여
Webview 관련 작업중 RxWebkit 오픈소스에 메모리 누수 발견 및 Contribution
•
Jenkins CI/CD 도입 및 유지보수
Jenkins(빌드머신) 유지보수 업무를 통해 iOS 팀의 CI/CD 프로세스 효율성을 높였습니다. 맥프로 1대로 운영하던 것을 master-node 구조로 변경하여 scalability를 확보했습니다. iOS 팀원 증원과 함께 빌드서버를 구성하는 Node도 증설하여 Block 없이 테스트를 수행하고 Firebase 배포 업무를 할 수 있도록 지원했습니다. 또한, 누구나 쉽게 Node를 추가할 수 있도록 신규 Node 추가 시 해야하는 일들을 문서화했습니다.
•
Charles (Mobile Proxy Debugging Tool) 도입
Charles를 활용하여 서버와 업무적으로 Blocker가 되지 않는 방식을 공유하고, 더 나아가 status code 변조를 통해 에러 케이스를 확인하는 방법, 만들기 어려운 UI 케이스를 만들어 테스트하는 방법, 그리고 Throttle 기능으로 네트워크 속도가 느린 케이스를 재현하는 방법을 공유하여, 효율적이고 안정적인 앱을 만드는 데 일조했습니다.