民泊可否判定システムの設計と落とし穴
中小企業や個人がSaaSなどの月額費用を払い続けている背景には、「自力で作れないから借りている」という構造がある。しかし、AI技術の進展で一人でもシステムを構築できるようになった今、作れるなら借りる必要はない。私は固定費を削り、買い切りで自分のサーバーで動くものを作ることを信条としている。今回の民泊可否判定システムの開発も、まさにその思想に基づき、外部サービスに依存せず最小のコストで最大限の機能を実現するための試行錯誤の記録だ。
このシステムでは、住所から用途地域と自治体独自の条例を判定する機能を、PHP1ファイルとSQLiteだけで実現した。開発において最も時間を割いたのは、実はロジックの実装よりもデータの選定とライセンスの確認だった。国土数値情報のデータを使おうとした際、自治体ごとに異なる利用条件を精査したところ、肝心な自治体の多くが有償や再配信不可となっていた。この事実を見逃せば、製品として提供した時点で規約違反になるため、最終的には無償で全国分が整備されている都市計画決定GISデータへの切り替えを決断した。
私は1995年から業務システム開発に携わり、パッケージの販売やオフショア開発の会社経営も経験してきた。その中で学んだのは、現場の課題を解くには「動くこと」と同じくらい「持続可能な構造」が重要だということだ。今回の開発でも、手元では動くR*Treeインデックスが本番環境で動かなかった際、性能を追わず、あえて汎用性の高い索引方法に変更した。これは「作れる技術があるからこそ、あえて制約の中で最適な解を選ぶ」という、私のこれまでの経験とAI時代の開発手法の融合である。
データ軽量化においては、ダグラス・ポイカーによる間引きや座標の整数化を組み合わせ、1.9GBあったGeoJSONデータを57MBまで削減した。これにより、必要な県だけを置くことで数MBでの運用が可能になった。また、条例の解釈で事故を起こさないよう、PDFから抽出した原文をそのまま出す設計にこだわった。このように、技術を正しく使いこなし、データの制約やライセンスという「見落としがちな壁」を泥臭く突破することで、外部への依存を断ち切り、真の意味で所有できるシステムを構築している。
この記事は、次の動画をつくったときに考えたことです。
動画: https://kurage.exbridge.jp/kuragev.php?id=f4a37735ffa146b0
出典: https://katsushi2441.github.io/vwork/articles/2026-09-23-minpaku-youto-jorei-check.html
コメント
最初のコメントを投稿できます。