海外株式取引サービス
海外の現地投資家が相場の確認・注文・保有銘柄の管理・市場ニュースの確認に使う証券会社の株式取引アプリで、機能開発と保守を担当しました。相場と注文がずれて見えれば投資家はアプリを信頼できず、認証で止まれば取引を始めることもできません。SMSで届く認証番号で入るログインと、現地の行政区画に合わせた住所入力を新たに作り、リアルタイム相場・お気に入り銘柄・注文画面を行き来する際に起きる不具合を見つけて直しました。同じ会社の他国向けアプリと同じ期間に並行して担当し、共通で直すものとこの国にだけ必要な処理を分けて反映しました。
認証番号が遅れても次の行動が分かるログイン
株式取引アプリのログインは、携帯のSMSで受け取った認証番号を入力して完了します。認証番号の要求、入力、検証、期限切れ、再送、失敗回数の制限まで、ユーザーが実際に出会う状態を一つずつ画面の流れに整理しました。残り時間と再送できるようになる時点を示し、再送時には入力した番号を消し、同じ要求が二度送られないようにしました。ネットワークが切れたりサーバーの応答が遅れたりしても次に何をすればよいか分かるよう、エラー文言とボタンの状態を状況ごとに分けました。

上位の地域を選ぶと下位の一覧が絞られる住所入力
証券アプリが使われる現地の住所は、省・市・郡・坊の4段階の行政区画に分かれます。住所を文字で受け取るのではなく、上位の地域を選ぶとその下の地域だけが次の一覧に出る従属選択にしました。上位の値を変えると合わなくなった下位の選択を消し、存在しない組み合わせが残らないようにしました。地名の現地表記や選ぶ順序、必須入力の条件もアプリ画面に合わせて加工しました。

画面を行き来しても相場と注文がずれないよう整えた取引フロー
株式取引アプリでは、リアルタイム相場、お気に入り銘柄、注文への移動、注文画面の切り替えが一つの流れでつながります。投資家は相場を見ながらその場で注文を出し、現金口座と信用口座の注文も同じアプリで出します。この流れで起きる問題を分析して直しました。相場データが届いて画面が変わるタイミング、別の画面から戻ったときの状態の食い違い、例外応答の処理など、投資家がアプリを信頼できるかに直結する部分が中心でした。この流れの上に、メニューを移らずに取引モードを切り替え、目標金額を入れると数量が埋まる注文画面があります。

他国のアプリと並行しながら分けた共通修正と現地専用の処理
株式取引アプリの保守は、同じ証券会社の他国向け投資アプリと同じ期間に並行して進めました。二つのアプリのコードと機能の違いを比べ、両方に同じく入れる修正と、この国のアプリにだけ必要な処理を分けて反映しました。新しい要件を入れた後は、既存のログイン、注文、相場照会の流れに影響がないかも併せて確認しました。

この仕事のポイント
認証番号の要求から再送・回数制限までを整理したSMS認証ログイン
省・市・郡・坊の4段階で絞り込んで選ぶ現地住所入力
相場更新・画面復帰時にずれる状態を正した取引画面の保守
インサイト
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…



