簡単決済アプリの長期運用
決済の頻度が高いモバイル決済アプリを担当し、機能を作って長く運用しました。以前の開発言語で書かれたコードを、既存の動きはそのままに新しい構造へ移しながら、決済リクエストから失敗・再試行までの流れも保ち続けました。決済アプリでは小さな不具合一つがそのままユーザーの信頼の問題になります。作業はコードの転換、決済フロー、カメラでの書類提出、多言語、アプリのエラー収集と修正にわたります。
動いている決済アプリを止めずに移したコードの転換
モバイル決済アプリは以前の開発言語で書かれたコードの上で動いており、このコードを現在の開発言語を中心とした構造へ移しました。実際に決済が行き交うサービスのため、既存の動きはそのままにして、新機能の開発と保守がしやすくなる方向でコードの境界を整理していきました。移している間も決済は続くため、配布は慎重に行い、変えた部分の周辺を毎回確認し直しました。

決済リクエストから再試行まで状態を見失わない決済フロー
モバイル決済は、決済リクエスト・認証・結果処理・失敗応答・再試行とつながる流れです。この流れを実装し保守しながら、各段階で起こりうる例外と状態の処理を細かく点検しました。決済アプリでは、小さな不具合一つでもユーザーの信頼をすぐに揺るがすからです。

カメラでの書類提出と、言語ごとに同じ意味の案内
モバイル決済アプリには、カメラで書類を撮影して提出する機能があります。撮影の権限、撮った画像の品質、アップロードの状態、失敗時の処理まで、実際の利用環境で起こる流れを考慮して実装し保守しました。利用者層が広いため画面の文言は複数の言語で整え、決済・認証・エラーメッセージのように意味が正確であるべき文言は、言語ごとにずれていないかを画面の流れと合わせて確認しました。

アプリのエラーを集めて原因から直した、異常終了ほぼゼロの運用
運用中のモバイル決済アプリのエラーはエラー収集ツールで集めて見守り、原因を追って素早く直しました。運用期間を通じて、アプリの異常終了率をほぼゼロに近く保ちました。同じ基盤の上で動いていた別の決済アプリと並行して運用し、リモートで課題を共有して修正範囲を整理しました。

この仕事のポイント
既存の動きを守りながら古いコードを新しい構造へ移した転換
決済リクエスト・認証・失敗・再試行までつながる決済フローの保守
アプリのエラーを集めて直し、異常終了をほぼゼロに保った運用
インサイト
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…



