ナビゲーションサービスの内製化
通信キャリアが運営する大型ナビゲーションサービスで、外部への依存が大きかった開発を社内の開発体制へ移す内製化作業に参加しました。このサービスはリアルタイムの交通情報で経路を案内し、危険区間の通知、公共交通の検索、よく行く目的地までの予想所要時間を一つのアプリにまとめています。利用者が非常に多く、小さな不具合一つでも多くのドライバーの経路案内にそのまま届きます。経路案内、地図画面、検索から案内までの流れといった主要機能の実装と保守、安定化と検証を担当し、複数のバージョンにわたって部署をまたぐコードレビューと短い周期の反復開発の中で仕事をしました。
外部に頼っていた開発を社内に取り込んだ内製化
ナビゲーションの内製化は、外部への依存が大きかった開発領域を社内の開発体制へ移す作業です。すでに多くのドライバーが毎日使っているアプリなので、開発の担い手が変わる間もサービスは動き続ける必要がありました。複数のバージョンにわたって内製化開発に参加し、主要機能の実装と保守を担当しました。

検索から経路、案内までつながる主要画面
大規模ナビゲーションアプリの主要機能である経路案内、地図画面、検索から案内までの流れの開発に参加しました。ドライバーは目的地を探し、経路を選び、案内を受けます。この三つの段階が一つの流れでつながります。同じ時期のアップデートでは、周辺情報と公共交通の検索にはダウンロードして表示する地図を、経路案内には端末に保存した地図を使うよう分け、自宅・会社のようなよく行く目的地までの所要時間を最初の画面に表示しました。実際の利用者が多いサービスなので、機能そのものと同じくらい安定性と例外への対応を重視しました。

部署をまたぐコードレビューと変更履歴の管理
内製化開発では、部署をまたぐコードレビューと変更履歴の管理(構成管理)が基本の手順でした。コードの品質を個人ではなくチーム単位で管理し、何がいつ変わったかを基準に協業しました。アジャイルの方式を取り入れて短い周期に分けて開発し、課題管理と日程調整を繰り返しながら、チームに合う進め方を一緒に探りました。

二つのプラットフォームの開発者が一つのチームで固めた安定化
ナビゲーションアプリの開発人員が足りず、別のプラットフォームを担当していた開発者と一つのチームで開発を進めました。プラットフォームごとの違いを互いに共有し、それぞれの視点を取り入れながら問題を解きました。小さな不具合も多くのドライバーにすぐ届くサービスなので、機能開発に劣らず安定化と検証に力を注ぎました。プロジェクトを終えた後、チーム全員が表彰を受けました。

この仕事のポイント
稼働中の大型ナビゲーションの開発を社内の体制へ移行
経路案内・地図・検索の流れの開発と安定化
部署をまたぐコードレビュー、変更履歴の管理、短い周期の反復開発
インサイト
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…



