はじめに
こんにちは。
タイトルの通りですが、まず URL を共有します。
https://flag-similarity.nimowagukari.net/
いっぱい遊んでみて、フィードバックや改善要望などをもらえると嬉しいです。
以下は、開発した背景など諸々を書いているだけなので、興味のある方は読んでいただけると嬉しいです。
開発に至った背景
私は最近、世界各国の様々な情報を学ぶことに興味を持ち始めており、その取り組みの一つとして各国の国旗と国名の対応を覚える、ということをしていました。
ネット上に既に存在する国旗クイズをいくつか試しましたが、なかなか覚えられませんでした。
なんとなく、これが正解かな?と回答して偶然正解することはありますが、明確に他の選択肢との違いを言語化できるレベルには至っていません。
そこで、より難易度を高めたクイズを実装することで国旗ごとの特徴を高い解像度で捉えて区別できるようになると面白いかも、と思いました。
難易度を調整するには、国旗画像の類似度を判定し、似た国旗を選択肢として出すといったやり方を思いつきました。
そんな中で、画像の類似度判定、特徴量といった技術・用語に触れることで興味を持ち、今回の開発に踏み切りました。
開発・実装にあたって意識した点
AI 活用
昨今では AI の活用可否が自身の市場価値を大きく変化させる時代である、と私は感じています。
これまで自分なりに AI を活用してきましたが、アプリ開発の用途として使うことはあまりなかったので、これをよい機会と捉えて思い切って Claude Code 有料プランを契約し本腰を入れて取り組みました。
個人サービス公開・運用におけるコスト・リスク
個人サービスを公開するといったことはこれまでほぼ経験がなく、公開後の運用観点で想定される様々なリスクへの備えが必要だと感じました。
取り急ぎ意識した点としては、大量アクセスなどによるコスト高騰による破産やモチベーション低下が懸念だと思い、その対処もスコープ内として進めました。
実装詳細と学び
本アプリは、アプリだけでなくインフラ定義(Terraform) についても Public Repository として公開しています。
https://github.com/nimowagukari/flag-similarity
インフラの実装は AWS Lambda&API Gateway を採用しました。
- 低コストかつ柔軟にスケール可能
- レート制限により大量アクセス時も安心
- ※別リポジトリで監視・通知も実装しており、何かあったら気付いて止められる
アプリについては、作りたいものの要件整理を AI と壁打ちしつつ、具体的なコードの大部分も生成してもらいました。
今回の要件程度であれば本当に楽にサクッと作ってもらえて、とても助かりました。
今後は下記など様々な改修をしてゆきたいと思います。
- 個人の識別&回答履歴の統計表示
- 様々な分析設計・実装
- 国旗ごとの正答率
- 回答までの所要時間
- 出題ごとの選択肢の組み合わせ
- 内部処理ごとの所要時間の Tracing
ここまで読んでいただきありがとうございました。