手机银行应用全面改版
一款数百万人使用的手机银行应用进行全面改版,要把银行、银行卡、证券、保险服务都装进一个应用,我们在其中负责登录与认证部分。登录一旦卡住,客户既不能查询账户也不能转账;而认证横跨众多界面和外部模块,牵一发而动全身。我们用新的界面编写方式重写了旧式的登录与认证界面,并把身份确认、生物识别认证和身份证认证按业务单元拆分整理。我们把外部人脸识别解决方案接入应用和认证流程,还设计了调用方式,让其他开发者能方便地调用认证功能。
新旧界面并存期间重写的登录
我们用新的界面编写方式(声明式)重写了手机银行应用的登录与认证界面。界面状态、输入值、校验结果和认证进度被整理到同一处管理,让界面何时、为何变化更容易追踪。改版期间,旧界面与新界面同时存在于一个应用中,因此我们按界面评估影响范围,并一并检查既有流程可能断开的地方。另一平台的应用也在同一时期更换界面方式,我们与之对齐:实现方式不同,但用户流程和认证策略看起来一致。

将登录、身份确认、生物识别与身份证按业务拆分的认证结构
银行应用的认证中,登录、身份确认、生物识别认证和身份证认证横跨众多界面和外部模块交织在一起。我们把这条流程按业务单元拆分,并把界面跳转与认证状态分开管理。各界面负责人只需挑选所需的认证功能,就能稳定调用。

人脸识别或相机失败时也不中断的身份确认
手机银行应用的人脸识别身份确认,是把外部人脸识别解决方案接入应用做成的。我们把它直接接入登录与认证流程,并把初始化、相机权限、拍摄结果、失败响应和重试与应用的认证状态关联起来,即使中途失败,客户的流程也不会中断。我们还追踪了因机型和系统版本而异的相机问题,逐一找出并稳定了权限状态、相机启动、界面切换时相机的释放与重新进入,以及拍摄结果传递中的异常。

其他开发者无需了解内部即可调用的认证模块
在大型银行应用中,认证功能由多位负责登录的开发者和众多界面共同使用。为降低他们之间的协作成本,我们亲自设计并提供了认证模块的调用方式。内部实现被隐藏,只明确规定输入什么、返回什么以及如何通知结果,让其他界面也能轻松接入认证功能。

项目亮点
按业务拆分登录、身份确认、生物识别与身份证认证的认证结构
接入外部人脸识别模块,并稳定各机型与系统版本的相机问题
其他开发者无需了解内部即可调用的认证模块接口
洞察
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



